イベント契約
クエリが期待するフィールド
| フィールド | 種類 | なぜ存在するのか |
|---|---|---|
| timestamp_utc | Timestamp | 依存関係呼び出しの完了時間。 |
| dependency_name | Utf8 | 安定した論理依存関係名。 |
| operation | Utf8 | 正常化された運行またはルート。 |
| status | Utf8 | 成功、失敗、またはタイムアウト。 |
| latency_ms | Float64 | 依存関係の継続期間 (ミリ秒)。 |
DataFusion SQL
クエリをコピーする
sql
SELECT
dependency_name,
operation,
COUNT(*) AS calls,
approx_percentile_cont(latency_ms, 0.50) AS p50_ms,
approx_percentile_cont(latency_ms, 0.95) AS p95_ms,
100.0 * SUM(CASE WHEN status <> 'success' THEN 1 ELSE 0 END)
/ NULLIF(COUNT(*), 0) AS failure_rate_pct
FROM dependency_calls
WHERE timestamp_utc >= now() - INTERVAL '24 hours'
GROUP BY dependency_name, operation
HAVING COUNT(*) >= 50
ORDER BY p95_ms DESC
LIMIT 20;この読み取り専用クエリは、空の型付きテーブルに対して計画され、実行されます。 アパッチ DataFusion 45.2.0。決定論的なサンプル出力は合成され、個別にレビューされます。フィールド タイプ、しきい値、ビジネス定義を独自のデータと照合して検証します。 テスト方法を読んでください。
クエリ結果
依存関係 p95 レイテンシ
請求書の履歴には、許容可能な中央値にもかかわらず、深刻なロングテールがあります。
billing_database
1,820 ms
comparison 84 ms
search_provider
760 ms
comparison 132 ms
redis
12 ms
comparison 3 ms
| dependency_name | operation | calls | p50_ms | p95_ms | failure_rate_pct |
|---|---|---|---|---|---|
| billing_database | invoice_history | 1,840 | 84 | 1,820 | 0.49 |
| search_provider | document_search | 6,220 | 132 | 760 | 1.21 |
| redis | session_lookup | 44,100 | 3 | 12 | 0.02 |
合成出力例。運用上の決定に使用する前に、独自のイベント スキーマとしきい値に対してクエリを実行します。
例を再現する
パブリックフィクスチャをダウンロードする
JSON バンドルには、型付きイベント コントラクトが含まれています。 illustrative 入力行、正確な SQL、予想される出力、レビューメモ、およびエンジンのバージョン。 CSV には、表示された結果が含まれます。
SQL の仕組み
- 1論理的な依存関係と操作によってグループ化することで、結果を実用的な状態に保ちます。
- 2p50 と p95 の間のギャップにより、一貫して遅いサービスと断続的なテール動作が区別されます。
- 3失敗率により、高速で失敗する依存関係が正常に見えなくなります。
決定すべきエッジケース
- 操作名には、生の SQL テキスト、完全な URL、または顧客 ID を使用しないでください。
- 並列依存関係呼び出しでは、リクエスト期間は直線的に増加しません。
- トレースにこのタイミングがすでに含まれている場合は、結果を結び付けるために必要なビジネス コンテキストのみを記録します。
推奨されるダッシュボード
- グループ化されたバー: 依存関係別の p50_ms および p95_ms
- 傾向: p95 レイテンシーと障害率
- 表: ルート、リリース、およびトレース ID を含む低速依存関係呼び出し
レシピを活用する
関連する機器とガイド
分析を続ける
実際のイベントで実行する
テーブルを作成し、フィールドを調整して、結果を保存します
無料で始めて、構造化されたイベントを送信し、クエリ結果をグラフ、共有ダッシュボード ウィジェット、またはアラート入力として使用します。