本文へ移動
Telemetry
ドキュメントを見る
ガイド更新日: 2026年7月27日Telemetry 編集チームと製品チームによるレビュー2 最小読み取り時間

コーディング エージェントでこのドキュメントを使用してください

Claude Code、Codex、Cursor、または別のコーディング エージェント用の集中プロンプト パックを開き、それをここで説明するワークフローに適応させます。

このページの内容
  1. 質問から始めましょう
  2. 安定した契約を維持する
  3. 機密データを保護する
  4. イベントを確認する

構造化ロギングガイド

構造化ログでは、すべての詳細を文に記述するのではなく、イベントを名前付きフィールドとして記録します。次のようなメッセージ checkout failed for account 42 after 812 ms は読み取り可能ですが、SQL は、障害をグループ化したり、レイテンシーを計算したりする前に、それを解析する必要があります。構造化されたイベントストア event_name, account_id, status, error_type、そして latency_ms 別に。

質問から始めましょう

フィールドを選択する前に、運用上または製品に関する質問を書き留めてください。 「最も頻繁に失敗するチェックアウト手順はどれですか?」安定したステップ名、ステータス、エラー カテゴリ、およびタイムスタンプを意味します。 「どの顧客が影響を受けましたか?」安全なアカウント識別子も必要です。フィルター、グループ、計算、またはデバッグで使用される可能性のないフィールドは、おそらくノイズです。

意味のある境界にある 1 つのイベントを優先します。たとえば、リクエストの完了、ジョブの再試行の完了、Webhook の重複排除、ユーザーのアクティベーション マイルストーンの到達などです。同じワークフローのブランチごとに異なるテーブルを生成することは避けてください。一貫した status フィールドでは、成功と失敗を比較できるようになります。

await telemetry.log("checkout_completed", {
  checkout_version: "v2",
  account_id: account.id,
  status: "failed",
  error_type: "payment_declined",
  latency_ms: 812,
  attempt: 1,
});

安定した契約を維持する

使用する snake_case 名前、明示的な単位など _ms そして _bytes、UTC タイムスタンプ。ストアカテゴリーなど payment_declined信頼できるグループ化ディメンションが必要な場合は、完全な例外テキストではありません。リクエスト、アカウント、リリース、またはジョブをシステム全体で追跡できるように、イベント間で識別子の一貫性を保ちます。

フィールドを黙って数値から文字列に変更しないでください。意味が変わった場合は、バージョン フィールドまたは新しいイベント コントラクトを追加します。の イベントスキーマ設計ガイド 命名、所有権、進化について詳しく説明します。

機密データを保護する

すべての新しいフィールドを、クエリ結果、ダッシュボード、またはエクスポートに表示されるデータとして扱います。認証情報、Cookie、認証ヘッダー、完全なリクエスト本文、支払い詳細、または生のプロンプトを送信しないでください。 メールアドレスや自由形式のユーザー内容ではなく、内部識別子と値を制限したカテゴリを使用してください.イベント構築境界でホワイトリストを適用します。 取り込み後のマスキングは補助策であり、主要な制御ではありません.

イベントを確認する

合成データを使用して、成功、失敗、タイムアウト、およびブランチの再試行を実行します。結果のテーブルを検査し、フィールドのタイプを確認し、イベントの原因となったクエリを実行します。次に、結果がビジネス定義と一致した場合にのみ、ビジュアライゼーションまたはアラートを作成します。

続けて、 構造化されたログ管理ガイド, 正規の広域イベント, 構造化イベントとテキスト ログの比較、またはから完全なクエリをコピーします。 SQL レシピ ライブラリ.

関連製品の機能

安定したイベント名、型指定されたフィールド、プライバシーがレビューされたコンテキストをキャプチャします。

所有権と技術リファレンス

Telemetry 編集チームがこの説明を所有しています。製品チームは動作、例、境界をレビューします。

編集基準を見直す