イベント契約
クエリが期待するフィールド
| フィールド | 種類 | なぜ存在するのか |
|---|---|---|
| timestamp_utc | Timestamp | UTC でのライフサイクル イベント時間。 |
| incident_id | Utf8 | 安定したインシデント識別子。 |
| service | Utf8 | 主に影響を受けるサービス。 |
| event_name | Utf8 | impact_started、検出または解決されました。 |
| severity | Utf8 | インシデントの重大度を確認しました。 |
| environment | Utf8 | 導入環境。 |
DataFusion SQL
クエリをコピーする
sql
WITH incident_times AS (
SELECT
incident_id,
service,
MIN(CASE WHEN event_name = 'impact_started' THEN timestamp_utc END)
AS impact_started_at,
MIN(CASE WHEN event_name = 'detected' THEN timestamp_utc END)
AS detected_at,
MAX(CASE WHEN event_name = 'resolved' THEN timestamp_utc END)
AS resolved_at
FROM incident_lifecycle_events
WHERE timestamp_utc >= now() - INTERVAL '90 days'
AND environment = 'production'
GROUP BY incident_id, service
)
SELECT
service,
COUNT(*) AS incidents,
AVG(date_part('epoch', detected_at - impact_started_at) / 60.0)
AS average_detection_minutes,
AVG(date_part('epoch', resolved_at - detected_at) / 60.0)
AS average_recovery_minutes
FROM incident_times
WHERE impact_started_at IS NOT NULL
AND detected_at IS NOT NULL
AND resolved_at IS NOT NULL
GROUP BY service
ORDER BY average_recovery_minutes DESC, service;この読み取り専用クエリは、空の型付きテーブルに対して計画され、実行されます。 アパッチ DataFusion 45.2.0。決定論的なサンプル出力は合成され、個別にレビューされます。フィールド タイプ、しきい値、ビジネス定義を独自のデータと照合して検証します。 テスト方法を読んでください。
クエリ結果
インシデントの検出と復旧にかかる時間
請求担当者は、観察された検出と回復の間隔が長くなります。
billing-worker
60 min
comparison 15 min
checkout-api
32.5 min
comparison 7.5 min
| service | incidents | average_detection_minutes | average_recovery_minutes |
|---|---|---|---|
| billing-worker | 1 | 15 | 60 |
| checkout-api | 2 | 7.5 | 32.5 |
合成出力例。運用上の決定に使用する前に、独自のイベント スキーマとしきい値に対してクエリを実行します。
例を再現する
パブリックフィクスチャをダウンロードする
JSON バンドルには、型付きイベント コントラクトが含まれています。 reproducible 入力行、正確な SQL、予想される出力、レビューメモ、およびエンジンのバージョン。 CSV には、表示された結果が含まれます。
SQL の仕組み
- 1ライフサイクル イベントは、期間の計算前にインシデントごとに 1 行にピボットされます。
- 2検出対策は、検出の開始から検出までに影響を与えます。回復は検出から解決までを測定します。
- 3不完全なインシデントは完了期間の平均から除外されるため、個別に報告する必要があります。
決定すべきエッジケース
- 回復が緩和、完全な復旧、またはインシデントの終了のいずれで終了するかを定義し、一貫して 1 つのルールを使用します。
- 再開されたインシデントには、1 回の最大解決時間ではなく、複数の影響間隔が必要になる場合があります。
- 平均値は例示的なものです。インシデント量が十分な場合は、中央値とパーセンタイルをレポートします。
推奨されるダッシュボード
- バー: サービス別の平均検出時間と回復時間
- 傾向: 月ごとの完了したインシデント期間
- 表: 解決済みイベントが欠落している未解決のインシデント
レシピを活用する
関連する機器とガイド
分析を続ける
実際のイベントで実行する
テーブルを作成し、フィールドを調整して、結果を保存します
無料で始めて、構造化されたイベントを送信し、クエリ結果をグラフ、共有ダッシュボード ウィジェット、またはアラート入力として使用します。