イベント契約
クエリが期待するフィールド
| フィールド | 種類 | なぜ存在するのか |
|---|---|---|
| timestamp_utc | Timestamp | リクエストの完了時刻 (UTC)。 |
| route_template | Utf8 | 安定したルート テンプレート。 |
| latency_ms | Float64 | リクエストの継続時間 (ミリ秒単位)。 |
| status_code | Int64 | HTTP 応答ステータス コード。 |
クエリをコピーする
SELECT
route_template,
COUNT(*) AS requests,
approx_percentile_cont(latency_ms, 0.50) AS p50_ms,
approx_percentile_cont(latency_ms, 0.95) AS p95_ms,
approx_percentile_cont(latency_ms, 0.99) AS p99_ms
FROM api_requests
WHERE timestamp_utc >= now() - INTERVAL '24 hours'
AND status_code < 500
GROUP BY route_template
HAVING COUNT(*) >= 50
ORDER BY p95_ms DESC
LIMIT 10;この読み取り専用クエリは、空の型付きテーブルに対して計画され、実行されます。 アパッチ DataFusion 45.2.0。決定論的なサンプル出力は合成され、個別にレビューされます。フィールド タイプ、しきい値、ビジネス定義を独自のデータと照合して検証します。 テスト方法を読んでください。
クエリ結果
ルート別の p95 遅延
エクスポート リクエストのテールは最も遅く、通常のパフォーマンスと最悪の場合のパフォーマンスの差が最も大きくなります。
| route_template | requests | p50_ms | p95_ms | p99_ms |
|---|---|---|---|---|
| /api/reports/export | 50 | 800 | 800 | 800 |
| /api/projects/:id/sync | 50 | 320 | 320 | 320 |
| /api/search | 50 | 120 | 120 | 120 |
合成出力例。運用上の決定に使用する前に、独自のイベント スキーマとしきい値に対してクエリを実行します。
例を再現する
パブリックフィクスチャをダウンロードする
JSON バンドルには、型付きイベント コントラクトが含まれています。 reproducible 入力行、正確な SQL、予想される出力、レビューメモ、およびエンジンのバージョン。 CSV には、表示された結果が含まれます。
SQL の仕組み
- 1approx_percentile_cont は、DataFusion の t-digest 実装を使用します。これは、大規模なイベント テーブルに効率的です。
- 25xx 応答をフィルターで除外すると、成功したリクエストのレイテンシー ビューになります。失敗期間が重要な場合は、別の失敗したリクエスト ビューを作成します。
- 3p50 と p95 の差は、どちらかの数値だけよりも役立つことがよくあります。広いギャップは断続的な低速パスを示します。
決定すべきエッジケース
- ルート コンテキストを保持せずに、根本的に異なる作業を行うエンドポイントを比較しないでください。
- ストリーミング ルートと長時間実行されるエクスポートには、別個のサービス レベル目標が必要になる場合があります。
- レイテンシーを一貫した単位に保ち、数値フィールドを使用します。
推奨されるダッシュボード
- グループ化されたバー: p50_ms および p95_ms by route_template
- 折れ線グラフ: 最も遅いルートの時間の経過に伴う p95_ms
- 表: ルートの p99 を超える個々のリクエスト
レシピを活用する
関連する機器とガイド
ソースデータを定義する
この分析のイベント スキーマ
分析を続ける
実際のイベントで実行する
テーブルを作成し、フィールドを調整して、結果を保存します
無料で始めて、構造化されたイベントを送信し、クエリ結果をグラフ、共有ダッシュボード ウィジェット、またはアラート入力として使用します。