イベント契約
クエリが期待するフィールド
| フィールド | 種類 | なぜ存在するのか |
|---|---|---|
| timestamp_utc | Timestamp | リクエストの完了時刻 (UTC)。 |
| status_code | Int64 | HTTP 応答ステータス コード。 |
| environment | Utf8 | 導入環境。 |
クエリをコピーする
WITH hourly AS (
SELECT
date_trunc('hour', timestamp_utc) AS hour,
COUNT(*) AS requests,
SUM(CASE WHEN status_code >= 500 THEN 1 ELSE 0 END) AS bad_requests
FROM api_requests
WHERE timestamp_utc >= now() - INTERVAL '24 hours'
AND environment = 'production'
GROUP BY date_trunc('hour', timestamp_utc)
)
SELECT
hour,
requests,
bad_requests,
100.0 * bad_requests / NULLIF(requests, 0) AS error_rate_pct,
(1.0 * bad_requests / NULLIF(requests, 0)) / 0.001 AS burn_rate
FROM hourly
ORDER BY hour;この読み取り専用クエリは、空の型付きテーブルに対して計画され、実行されます。 アパッチ DataFusion 45.2.0。決定論的なサンプル出力は合成され、個別にレビューされます。フィールド タイプ、しきい値、ビジネス定義を独自のデータと照合して検証します。 テスト方法を読んでください。
クエリ結果
時間当たりのエラーバジェット燃焼率
13:00 のバケットは、持続可能なレートの 3.72 倍で予算を消費しました。
12:00
0.49×
13:00
3.72×
14:00
1.28×
| hour | requests | bad_requests | error_rate_pct | burn_rate |
|---|---|---|---|---|
| 12:00 | 18,420 | 9 | 0.05 | 0.49 |
| 13:00 | 19,110 | 71 | 0.37 | 3.72 |
| 14:00 | 18,780 | 24 | 0.13 | 1.28 |
合成出力例。運用上の決定に使用する前に、独自のイベント スキーマとしきい値に対してクエリを実行します。
例を再現する
パブリックフィクスチャをダウンロードする
JSON バンドルには、型付きイベント コントラクトが含まれています。 illustrative 入力行、正確な SQL、予想される出力、レビューメモ、およびエンジンのバージョン。 CSV には、表示された結果が含まれます。
SQL の仕組み
- 199.9% の成功目標では、0.1% (0.001) の不正リクエスト率が許容されます。
- 2観測された比率を 0.001 で割ると、燃焼率が求められます。1 倍は正確に持続可能ですが、3 倍では予算が 3 倍早く消費されます。
- 3CTE はリクエストの分母を表示し続けるため、小さなバケットを個別に処理できます。
決定すべきエッジケース
- ユーザー向け SLI にとってどのステータス コードが不良としてカウントされるかを定義します。すべての 5xx が同じ影響を与えるわけではありません。
- 運用ページングには、ノイズの多い 1 時間ごとのしきい値の代わりにマルチウィンドウ アラートを使用します。
- SLO 定義で明示的に除外されている場合にのみ、合成チェックまたは内部トラフィックを除外します。
推奨されるダッシュボード
- トレンド: 時間別 burn_rate
- 統計: 残りの月間エラー バジェット
- 表: 最も不正なリクエストに寄与するルート
レシピを活用する
関連する機器とガイド
分析を続ける
実際のイベントで実行する
テーブルを作成し、フィールドを調整して、結果を保存します
無料で始めて、構造化されたイベントを送信し、クエリ結果をグラフ、共有ダッシュボード ウィジェット、またはアラート入力として使用します。