イベント契約
クエリが期待するフィールド
| フィールド | 種類 | なぜ存在するのか |
|---|---|---|
| timestamp_utc | Timestamp | UTC でのプールのサンプル時間。 |
| service | Utf8 | プールを所有するアプリケーション サービス。 |
| pool_name | Utf8 | 安定した論理プール名。 |
| active_connections | Int64 | 現在チェックアウトされている接続。 |
| idle_connections | Int64 | 現在アイドル状態のオープン接続。 |
| max_connections | Int64 | 構成された最大プール サイズ。 |
| wait_ms | Float64 | このサンプルで観察された接続取得待機。 |
| timed_out | Boolean | 取得がクライアントのタイムアウトを超えたかどうか。 |
| environment | Utf8 | 導入環境。 |
クエリをコピーする
SELECT
service,
pool_name,
COUNT(*) AS samples,
100.0 * AVG(active_connections)
/ NULLIF(MAX(max_connections), 0) AS average_utilization_pct,
SUM(CASE WHEN wait_ms > 0 THEN 1 ELSE 0 END) AS waited_samples,
100.0 * SUM(CASE WHEN wait_ms > 0 THEN 1 ELSE 0 END)
/ NULLIF(COUNT(*), 0) AS wait_rate_pct,
AVG(wait_ms) AS average_wait_ms,
SUM(CASE WHEN timed_out THEN 1 ELSE 0 END) AS timeouts
FROM database_pool_samples
WHERE timestamp_utc >= now() - INTERVAL '24 hours'
AND environment = 'production'
GROUP BY service, pool_name
HAVING COUNT(*) >= 10
ORDER BY wait_rate_pct DESC, average_utilization_pct DESC;この読み取り専用クエリは、空の型付きテーブルに対して計画され、実行されます。 アパッチ DataFusion 45.2.0。決定論的なサンプル出力は合成され、個別にレビューされます。フィールド タイプ、しきい値、ビジネス定義を独自のデータと照合して検証します。 テスト方法を読んでください。
クエリ結果
接続取得待ち時間率
チェックアウト呼び出し元はサンプルの 3 分の 2 で待機し、取得タイムアウトも発生します。
| service | pool_name | samples | average_utilization_pct | waited_samples | wait_rate_pct | average_wait_ms | timeouts |
|---|---|---|---|---|---|---|---|
| checkout-api | primary | 12 | 89.17 | 8 | 66.67 | 118.75 | 2 |
| analytics-api | reporting | 12 | 45 | 4 | 33.33 | 12.5 | 0 |
合成出力例。運用上の決定に使用する前に、独自のイベント スキーマとしきい値に対してクエリを実行します。
例を再現する
パブリックフィクスチャをダウンロードする
JSON バンドルには、型付きイベント コントラクトが含まれています。 reproducible 入力行、正確な SQL、予想される出力、レビューメモ、およびエンジンのバージョン。 CSV には、表示された結果が含まれます。
SQL の仕組み
- 1平均使用率は容量のコンテキストを提供しますが、単独で障害信号として使用されることはありません。
- 2待機サンプル率は、待機時間が短い場合でも呼び出し元が競合に遭遇する頻度を示します。
- 3平均により、接続を取得しない少数のリクエストのセットが隠蔽される可能性があるため、タイムアウトは明示的なままになります。
決定すべきエッジケース
- サービス間でレートを比較する前に、サンプリング周波数を安定させておく必要があります。
- サーバーレス同時実行により、多数の独立したプールを作成できます。集約によってその形状が非表示になる場合は、インスタンスまたはランタイム ディメンションを含めます。
- プール サイズを増やすと、データベースに競合が発生する可能性があります。クライアント制限を変更する前にデータベース容量を確認してください。
推奨されるダッシュボード
- バー: wait_rate_pct および average_utilization_pct (サービス別)
- 傾向: アクティブ、アイドル、待機中の接続
- 統計: 接続取得タイムアウト
レシピを活用する
関連する機器とガイド
分析を続ける
遅いデータベース クエリをフィンガープリントで検出する
生の SQL やパラメーターを保存せずに、正規化されたデータベース操作を低速クエリ レート、平均継続時間、観測された最悪の継続時間によってランク付けします。
レシピを開くデータベーストランザクションのロールバック率の計算
エラー カテゴリ、期間、影響を受けるアカウントを維持しながら、コミットされたトランザクションとロールバックされたトランザクションをサービスごとに比較します。
レシピを開くデータベースのロック待機とデッドロックの検索
インシデント数、待機期間、未解決のロック、検出されたデッドロックに基づいて、ブロックされたデータベース操作のフィンガープリントをランク付けします。
レシピを開く実際のイベントで実行する
テーブルを作成し、フィールドを調整して、結果を保存します
無料で始めて、構造化されたイベントを送信し、クエリ結果をグラフ、共有ダッシュボード ウィジェット、またはアラート入力として使用します。