イベント契約
クエリが期待するフィールド
| フィールド | 種類 | なぜ存在するのか |
|---|---|---|
| timestamp_utc | Timestamp | データベース操作が完了したとき (UTC)。 |
| query_fingerprint | Utf8 | パラメーター値を持たない、正規化された制限された操作ラベル。 |
| service | Utf8 | オペレーションを発行したアプリケーションまたはワーカー。 |
| database_name | Utf8 | 承認された論理データベース名。 |
| status | Utf8 | 成功か失敗か。 |
| duration_ms | Float64 | エンドツーエンドのデータベース操作時間 (ミリ秒単位)。 |
| rows_returned | Int64 | クライアントがカウントを公開するときに返される行、または影響を受ける行。 |
| release | Utf8 | クエリを発行したアプリケーションのリリース。 |
| environment | Utf8 | 導入環境。 |
クエリをコピーする
SELECT
query_fingerprint,
service,
database_name,
COUNT(*) AS executions,
SUM(CASE WHEN duration_ms >= 1000 THEN 1 ELSE 0 END) AS slow_executions,
100.0 * SUM(CASE WHEN duration_ms >= 1000 THEN 1 ELSE 0 END)
/ NULLIF(COUNT(*), 0) AS slow_query_rate_pct,
AVG(duration_ms) AS average_duration_ms,
MAX(duration_ms) AS maximum_duration_ms
FROM database_query_events
WHERE timestamp_utc >= now() - INTERVAL '30 days'
AND environment = 'production'
GROUP BY query_fingerprint, service, database_name
HAVING COUNT(*) >= 10
ORDER BY slow_query_rate_pct DESC, executions DESC
LIMIT 20;この読み取り専用クエリは、空の型付きテーブルに対して計画され、実行されます。 アパッチ DataFusion 45.2.0。決定論的なサンプル出力は合成され、個別にレビューされます。フィールド タイプ、しきい値、ビジネス定義を独自のデータと照合して検証します。 テスト方法を読んでください。
クエリ結果
フィンガープリントによる遅いクエリ速度
請求書の更新はほとんどの実行で遅くなりますが、カタログ クエリは例示的な 1 秒のしきい値を下回ったままです。
| query_fingerprint | service | database_name | executions | slow_executions | slow_query_rate_pct | average_duration_ms | maximum_duration_ms |
|---|---|---|---|---|---|---|---|
| UPDATE invoices SET status = ? | billing-worker | app_production | 10 | 8 | 80 | 1,250 | 1,700 |
| SELECT checkout WITH line_items | checkout-api | app_production | 12 | 6 | 50 | 1,012.5 | 1,600 |
| SELECT products BY category | catalog-api | catalog_production | 12 | 0 | 0 | 330 | 440 |
合成出力例。運用上の決定に使用する前に、独自のイベント スキーマとしきい値に対してクエリを実行します。
例を再現する
パブリックフィクスチャをダウンロードする
JSON バンドルには、型付きイベント コントラクトが含まれています。 reproducible 入力行、正確な SQL、予想される出力、レビューメモ、およびエンジンのバージョン。 CSV には、表示された結果が含まれます。
SQL の仕組み
- 1フィンガープリントは、生の SQL ではなく、アプリケーションによって制御されるラベルです。これによりカーディナリティが制限され、パラメーター値のキャプチャが回避されます。
- 2レートは、時折低速になる大容量の操作と、ほとんどの場合低速になる操作を区別します。
- 3最小実行数により、単一のコールド クエリがランキングを独占することがなくなります。
決定すべきエッジケース
- ワークロードごとに遅いしきい値を選択します。 1 秒は例示的なものであり、対話型リクエストには長すぎる可能性があります。
- クライアントの継続時間には、これらのフェーズが個別に記録されない限り、プールの待機時間とネットワーク時間が含まれます。
- 未加工のクエリ パラメーター、接続文字列、または無制限の SQL テキストをログに記録しないでください。
推奨されるダッシュボード
- バー: slow_query_rate_pct by query_fingerprint
- トレンド: リリース別 average_duration_ms
- 表: 選択したフィンガープリントとサービスの最新の障害
レシピを活用する
関連する機器とガイド
ソースデータを定義する
この分析のイベント スキーマ
分析を続ける
実際のイベントで実行する
テーブルを作成し、フィールドを調整して、結果を保存します
無料で始めて、構造化されたイベントを送信し、クエリ結果をグラフ、共有ダッシュボード ウィジェット、またはアラート入力として使用します。