イベント契約
クエリが期待するフィールド
| フィールド | 種類 | なぜ存在するのか |
|---|---|---|
| timestamp_utc | Timestamp | クエリ完了時刻 (UTC)。 |
| request_id | Utf8 | 制限されたリクエスト相関識別子。 |
| route_template | Utf8 | 安定した適用ルート。 |
| query_fingerprint | Utf8 | パラメータを持たない正規化されたクエリ形状。 |
| sequence_in_request | Int64 | リクエスト内のクエリ順序。 |
| duration_ms | Float64 | データベース操作期間。 |
| environment | Utf8 | 導入環境。 |
クエリをコピーする
WITH queries_per_request AS (
SELECT
route_template,
query_fingerprint,
request_id,
COUNT(*) AS executions_in_request
FROM database_request_query_events
WHERE timestamp_utc >= now() - INTERVAL '24 hours'
AND environment = 'production'
GROUP BY route_template, query_fingerprint, request_id
)
SELECT
route_template,
query_fingerprint,
COUNT(*) AS requests,
SUM(CASE WHEN executions_in_request >= 5 THEN 1 ELSE 0 END)
AS requests_with_repeats,
AVG(executions_in_request) AS average_executions_per_request,
MAX(executions_in_request) AS maximum_executions_in_request
FROM queries_per_request
GROUP BY route_template, query_fingerprint
ORDER BY requests_with_repeats DESC, route_template;この読み取り専用クエリは、空の型付きテーブルに対して計画され、実行されます。 アパッチ DataFusion 45.2.0。決定論的なサンプル出力は合成され、個別にレビューされます。フィールド タイプ、しきい値、ビジネス定義を独自のデータと照合して検証します。 テスト方法を読んでください。
クエリ結果
リクエスト内で繰り返されるクエリ
チェックアウト ルートは、2 つのリクエストで品目フィンガープリントを少なくとも 5 回繰り返します。
| route_template | query_fingerprint | requests | requests_with_repeats | average_executions_per_request | maximum_executions_in_request |
|---|---|---|---|---|---|
| /api/checkout | SELECT line_items BY order_id | 3 | 2 | 4 | 6 |
| /api/profile | SELECT user WITH preferences | 3 | 0 | 1 | 1 |
合成出力例。運用上の決定に使用する前に、独自のイベント スキーマとしきい値に対してクエリを実行します。
例を再現する
パブリックフィクスチャをダウンロードする
JSON バンドルには、型付きイベント コントラクトが含まれています。 reproducible 入力行、正確な SQL、予想される出力、レビューメモ、およびエンジンのバージョン。 CSV には、表示された結果が含まれます。
SQL の仕組み
- 1内部クエリは、ルート レベルの集約の前に、リクエスト レベルの繰り返しを確立します。
- 2制御されたフィンガープリントは、生の SQL 値を保持せずに、同等のパラメーター化された操作をグループ化します。
- 3蔓延と最悪の場合の繰り返しの両方が維持されるため、1 つの極端な要求が体系的に見えることはありません。
決定すべきエッジケース
- 意図的なバッチ処理とページネーションの動作に適合するしきい値を選択します。
- 非同期作業には、リクエストからワーカーへのハンドオフ後も存続する相関識別子が必要です。
- クエリ イベントをサンプリングすると、正確な繰り返し回数が隠蔽される可能性があります。トレースを意識したサンプリングを使用するか、推定値を文書化します。
推奨されるダッシュボード
- バー: ルートおよびフィンガープリント別の requests_with_repeats
- 傾向: リリースごとのリクエストあたりの平均実行数
- トレース リンク: 選択した request_id のクエリ シーケンス
レシピを活用する
関連する機器とガイド
分析を続ける
遅いデータベース クエリをフィンガープリントで検出する
生の SQL やパラメーターを保存せずに、正規化されたデータベース操作を低速クエリ レート、平均継続時間、観測された最悪の継続時間によってランク付けします。
レシピを開くデータベース接続プールの飽和状態を測定する
平均プール使用率、キューに入れられた取得待機、タイムアウト、およびアプリケーション サービスごとのアイドル容量を測定します。
レシピを開くデータベーストランザクションのロールバック率の計算
エラー カテゴリ、期間、影響を受けるアカウントを維持しながら、コミットされたトランザクションとロールバックされたトランザクションをサービスごとに比較します。
レシピを開く実際のイベントで実行する
テーブルを作成し、フィールドを調整して、結果を保存します
無料で始めて、構造化されたイベントを送信し、クエリ結果をグラフ、共有ダッシュボード ウィジェット、またはアラート入力として使用します。