イベント契約
クエリが期待するフィールド
| フィールド | 種類 | なぜ存在するのか |
|---|---|---|
| timestamp_utc | Timestamp | データベース障害時間。 |
| database_system | Utf8 | データベースシステム。 |
| operation_name | Utf8 | アプリケーションの動作を制御します。 |
| sqlstate | Utf8 | 移植可能な SQLSTATE コード (利用可能な場合)。 |
| release | Utf8 | アプリケーションのリリース。 |
| request_id | Utf8 | 安全な親リクエストの識別子。 |
クエリをコピーする
SELECT
database_system,
release,
operation_name,
sqlstate,
COUNT(*) AS failures,
COUNT(DISTINCT request_id) AS affected_requests
FROM database_error_events
WHERE timestamp_utc >= now() - INTERVAL '7 days'
GROUP BY database_system, release, operation_name, sqlstate
ORDER BY failures DESC, affected_requests DESC;この読み取り専用クエリは、空の型付きテーブルに対して計画され、実行されます。 アパッチ DataFusion 45.2.0。決定論的なサンプル出力は合成され、個別にレビューされます。フィールド タイプ、しきい値、ビジネス定義を独自のデータと照合して検証します。 テスト方法を読んでください。
クエリ結果
SQLSTATEによるデータベース障害
チェックアウト時のシリアル化エラーは、リリースのデータベース エラーの大半を占めます。
| database_system | release | operation_name | sqlstate | failures | affected_requests |
|---|---|---|---|---|---|
| postgresql | api-88 | checkout | 40001 | 184 | 176 |
| postgresql | api-88 | project-create | 23505 | 62 | 62 |
合成出力例。運用上の決定に使用する前に、独自のイベント スキーマとしきい値に対してクエリを実行します。
例を再現する
パブリックフィクスチャをダウンロードする
JSON バンドルには、型付きイベント コントラクトが含まれています。 illustrative 入力行、正確な SQL、予想される出力、レビューメモ、およびエンジンのバージョン。 CSV には、表示された結果が含まれます。
SQL の仕組み
- 1SQLSTATE は、生のエラー文字列をグループ化するよりも安全で安定しています。
- 2オペレーション名はアプリケーションの所有権を保持します。
- 3個別のリクエストにより、顧客への影響が推定されます。
決定すべきエッジケース
- すべてのドライバーが一貫して SQLSTATE を公開するわけではありません。
- 同じ SQLSTATE でも原因が異なる場合があります。
- 完全なステートメント値やサーバー メッセージではなく、サニタイズされたエラー カテゴリを保存します。
推奨されるダッシュボード
- バー: SQLSTATE による失敗
- 傾向: リリースごとの障害
- 表: 影響を受ける操作とリクエスト数
レシピを活用する
関連する機器とガイド
分析を続ける
遅いデータベース クエリをフィンガープリントで検出する
生の SQL やパラメーターを保存せずに、正規化されたデータベース操作を低速クエリ レート、平均継続時間、観測された最悪の継続時間によってランク付けします。
レシピを開くデータベース接続プールの飽和状態を測定する
平均プール使用率、キューに入れられた取得待機、タイムアウト、およびアプリケーション サービスごとのアイドル容量を測定します。
レシピを開くデータベーストランザクションのロールバック率の計算
エラー カテゴリ、期間、影響を受けるアカウントを維持しながら、コミットされたトランザクションとロールバックされたトランザクションをサービスごとに比較します。
レシピを開く実際のイベントで実行する
テーブルを作成し、フィールドを調整して、結果を保存します
無料で始めて、構造化されたイベントを送信し、クエリ結果をグラフ、共有ダッシュボード ウィジェット、またはアラート入力として使用します。