イベント契約
クエリが期待するフィールド
| フィールド | 種類 | なぜ存在するのか |
|---|---|---|
| timestamp_utc | Timestamp | クエリの完了時間。 |
| database_system | Utf8 | データベース システム名。 |
| operation_name | Utf8 | SELECT, INSERT, or another controlled operation. |
| query_fingerprint | Utf8 | 値のない正規化されたステートメントの形状。 |
| duration_ms | Float64 | アプリケーションが監視するクエリ期間。 |
| request_id | Utf8 | 安全な親リクエストの識別子。 |
クエリをコピーする
SELECT
database_system,
operation_name,
query_fingerprint,
COUNT(*) AS calls,
SUM(duration_ms) AS total_time_ms,
approx_percentile_cont(duration_ms, 0.95) AS p95_duration_ms,
COUNT(DISTINCT request_id) AS affected_requests
FROM database_query_events
WHERE timestamp_utc >= now() - INTERVAL '24 hours'
GROUP BY database_system, operation_name, query_fingerprint
ORDER BY total_time_ms DESC
LIMIT 20;この読み取り専用クエリは、空の型付きテーブルに対して計画され、実行されます。 アパッチ DataFusion 45.2.0。決定論的なサンプル出力は合成され、個別にレビューされます。フィールド タイプ、しきい値、ビジネス定義を独自のデータと照合して検証します。 テスト方法を読んでください。
クエリ結果
フィンガープリントによる合計クエリ時間
プロジェクト リストのテール レイテンシーは低くなりますが、総リクエスト時間の消費量は増加します。
| database_system | operation_name | query_fingerprint | calls | total_time_ms | p95_duration_ms | affected_requests |
|---|---|---|---|---|---|---|
| postgresql | SELECT | project-list-v4 | 18,400 | 1,288,000 | 142 | 9,200 |
| postgresql | SELECT | monthly-report-v2 | 420 | 924,000 | 4,180 | 410 |
合成出力例。運用上の決定に使用する前に、独自のイベント スキーマとしきい値に対してクエリを実行します。
例を再現する
パブリックフィクスチャをダウンロードする
JSON バンドルには、型付きイベント コントラクトが含まれています。 illustrative 入力行、正確な SQL、予想される出力、レビューメモ、およびエンジンのバージョン。 CSV には、表示された結果が含まれます。
SQL の仕組み
- 1合計時間は、ボリュームと遅延を組み合わせて影響度ランキングを作成します。
- 2p95 は、少量の病理学的クエリを表示し続けます。
- 3影響を受けるリクエストは、N+1 動作などの繰り返しの呼び出しを区別します。
決定すべきエッジケース
- アプリケーションの継続時間には、個別に計測しない限り、プールとネットワークの効果が含まれます。
- バインドされた SQL 値をログに記録しないでください。
- サンプリングでは、合計の影響を比較する前に重み付けされたカウントが必要です。
推奨されるダッシュボード
- バー: 指紋による total_time_ms
- 表: コール、p95、および影響を受けるリクエスト
- 傾向: リリースごとの合計クエリ時間
レシピを活用する
関連する機器とガイド
分析を続ける
遅いデータベース クエリをフィンガープリントで検出する
生の SQL やパラメーターを保存せずに、正規化されたデータベース操作を低速クエリ レート、平均継続時間、観測された最悪の継続時間によってランク付けします。
レシピを開くデータベース接続プールの飽和状態を測定する
平均プール使用率、キューに入れられた取得待機、タイムアウト、およびアプリケーション サービスごとのアイドル容量を測定します。
レシピを開くデータベーストランザクションのロールバック率の計算
エラー カテゴリ、期間、影響を受けるアカウントを維持しながら、コミットされたトランザクションとロールバックされたトランザクションをサービスごとに比較します。
レシピを開く実際のイベントで実行する
テーブルを作成し、フィールドを調整して、結果を保存します
無料で始めて、構造化されたイベントを送信し、クエリ結果をグラフ、共有ダッシュボード ウィジェット、またはアラート入力として使用します。