構造化イベントの相関 ID
相関 ID は、同じワークフローによって作成されたレコードを接続します。受信リクエストをキューに入れられたジョブにリンクしたり、Webhook を請求同期にリンクしたり、構造化された結果イベントを既存のトレースにリンクしたりできます。
1 つの意味を持つ ID を選択してください
それが表すものの識別子に名前を付けます。 request_id, trace_id, job_id, webhook_delivery_id、または workflow_run_id。ジェネリック correlation_id サービスごとに異なる意味が付加されると、使いにくくなります。
最も早い信頼できる境界で値を生成し、それを下流の作業を通じて明示的に渡します。アップストリーム トレース ID がすでに使用可能な場合は、それを保存します。非同期ジョブの場合、それぞれが異なる質問に回答するときに、元のリクエストまたはワークフロー ID とジョブ システム自体の ID の両方を保存します。
電子メール アドレス、アクセス トークン、または生のプロバイダー ペイロードを相関値として使用しないでください。不透明な内部識別子はローテーションが簡単で、クエリ結果で公開する方が安全です。
ワークフローをクエリする
関連テーブルが識別子を共有すると、SQL はシーケンスを再構築できます。
SELECT
timestamp_utc,
event_name,
status,
duration_ms,
error_type
FROM workflow_events
WHERE workflow_run_id = 'run_example'
ORDER BY timestamp_utc;
集計ダッシュボードの場合は、ID 自体ではなく安定したカテゴリごとにグループ化します。相関 ID を最近の障害テーブルまたはドリルダウン クエリに保存しておくと、エンジニアが割合から具体的な例に移ることができます。
よくある休憩を避ける
各サービスで新しいリクエスト ID を生成しないでください。 1 つのフィールドの一部の行にリクエスト ID を設定し、他の行にアカウント ID を設定してオーバーロードしないでください。別の試行 ID または配信 ID を受信している間、再試行でワークフロー ID が維持されることを確認します。値が信頼境界を越える場合は、ログに記録する前にその形式と長さを検証してください。
相関関係はそれ自体で因果関係を生み出すのではなく、ナビゲーション可能性を生み出します。値がどのように伝播されるか、およびどのイベントが最終結果を所有するかを文書化します。
このガイドと組み合わせる ログ、メトリクス、トレース、イベント そして 高カーディナリティフィールド.