本文へ移動
Telemetry
データベースの信頼性 SQL レシピ

長時間実行されるデータベース トランザクションの測定

ロングテール、ロールバック、過度のオープン期間を持つアプリケーション トランザクション クラスを見つけます。

中級者database_transaction_eventsレビュー済み 2026-07-28テスト済み アパッチ DataFusion 45.2.0

レビュー者 Telemetry 製品チーム . SQL の互換性、イベント コントラクト、合成出力、および操作上の注意事項. 基準と所有権を確認する

質問に回答しました

どのアプリケーション トランザクション クラスが最も長く開いたままになりますか?

長いトランザクションはリソースを保持し、ロックの競合を増幅させる可能性があります。アプリケーション イベントは、サーバー側の診断が必要な場合でも、所有するワークフローを識別し、リリースできます。

イベント契約

クエリが期待するフィールド

フィールド種類なぜ存在するのか
timestamp_utcTimestampトランザクション終了イベント時間。
serviceUtf8アプリケーション サービスを所有しています。
transaction_nameUtf8安定した論理トランザクション クラス。
releaseUtf8アプリケーションのリリース。
duration_msFloat64開始から端末までのトランザクション期間。
outcomeUtf8コミット済み、rolled_back、または timed_out。
DataFusion SQL

クエリをコピーする

sql
SELECT
  service,
  transaction_name,
  release,
  COUNT(*) AS transactions,
  approx_percentile_cont(duration_ms, 0.95) AS p95_duration_ms,
  MAX(duration_ms) AS max_duration_ms,
  SUM(CASE WHEN outcome <> 'committed' THEN 1 ELSE 0 END) AS unsuccessful
FROM database_transaction_events
WHERE timestamp_utc >= now() - INTERVAL '7 days'
GROUP BY service, transaction_name, release
ORDER BY p95_duration_ms DESC, unsuccessful DESC;

この読み取り専用クエリは、空の型付きテーブルに対して計画され、実行されます。 アパッチ DataFusion 45.2.0。決定論的なサンプル出力は合成され、個別にレビューされます。フィールド タイプ、しきい値、ビジネス定義を独自のデータと照合して検証します。 テスト方法を読んでください。

クエリ結果

p95 トランザクション期間

請求書の最終処理はテールが最も長く、結果が最も失敗します。

servicetransaction_namereleasetransactionsp95_duration_msmax_duration_msunsuccessful
billinginvoice-finalizeapi-888206,80024,10028
projectsmember-importapi-882404,21018,2009

合成出力例。運用上の決定に使用する前に、独自のイベント スキーマとしきい値に対してクエリを実行します。

p95 transaction duration: Measure Long-Running Database Transactions 結果例からの合成 p95_duration_ms 値の静的チャート
決定論的な出力例のインデックス可能な SVG。記事、ランブック、または出典を明示した設計レビューのためにダウンロードしてください。

例を再現する

パブリックフィクスチャをダウンロードする

JSON バンドルには、型付きイベント コントラクトが含まれています。 illustrative 入力行、正確な SQL、予想される出力、レビューメモ、およびエンジンのバージョン。 CSV には、表示された結果が含まれます。

SQL の仕組み

  1. 1トランザクション クラスは、期間をアプリケーション所有者に接続します。
  2. 2最大値は、安定したパーセンタイルの横にある極端なリソース ホールドを公開します。
  3. 3非コミットの結果には、完全なターミナル ビューのロールバックとタイムアウトが含まれます。

決定すべきエッジケース

  • ターミナル イベントが欠落している場合は、開始からターミナルへの個別の結合が必要です。
  • サーバー待機イベントとロック グラフには、データベース ネイティブの診断が必要です。
  • バインドされた値を含むステートメントをログに記録しないでください。

推奨されるダッシュボード

  • バー: トランザクション別 p95_duration_ms
  • 傾向: リリースまでに失敗
  • 表: 最長の安全なトランザクション イベント

アラートガイダンス

重要なトランザクションがタイムアウトになった場合、またはその p95 が所有者が承認した制限を超えた場合にアラートを送信します。

アラート設定を読む

レシピを活用する

関連する機器とガイド

分析を続ける

実際のイベントで実行する

テーブルを作成し、フィールドを調整して、結果を保存します

無料で始めて、構造化されたイベントを送信し、クエリ結果をグラフ、共有ダッシュボード ウィジェット、またはアラート入力として使用します。

API キーを取得する