共同事件契約
使這些查詢可重用的欄位
- timestamp_utc、服務、database_name、環境和發布
- query_fingerprint、transaction_id、pool_name、consumer_name 和 migration_id
- duration_ms、wait_ms、lag_seconds、狀態、error_type 和容量欄位
SQL 之前的定義
查詢無法為您做出的決定
- 1在收集之前規範化查詢操作,而不是儲存原始 SQL 和參數。
- 2單獨的客戶端池等待、資料庫執行、鎖定等待和下游複製延遲。
- 3將資料庫症狀與應用程式服務、發布和使用者可見的工作流程聯絡起來。
推薦順序
先建立檢測,然後診斷
分析模式
讓結果解釋決定
檢測客戶端邊界
記錄安全操作指紋、服務、最終狀態以及應用程式接收資料庫結果的階段持續時間。
將壓力與影響配對
當呼叫者等待、超時、回滾或使用者可見工作流程失敗時,滿池或臨時鎖變得可操作。
保留推出上下文
保留髮布、遷移、副本和區域欄位,以便可以將回歸隔離到引入它的部署邊界。
完整的查詢範例
複製查詢,然後驗證假設
透過指紋查詢緩慢的資料庫查詢
按慢查詢率、平均持續時間和最差觀察持續時間對規範化資料庫操作進行排名,無需儲存原始 SQL 或參數。
哪些資料庫操作始終慢到足以進行調查?
檢視 SQL 和結果測量資料庫連線池飽和度
按應用程式服務測量平均池利用率、排隊獲取等待、超時和空閒容量。
哪些應用程式池使呼叫者等待資料庫連線?
檢視 SQL 和結果計算資料庫事務回滾率
按服務比較已提交和回滾的事務,同時保留錯誤類別、持續時間和受影響的帳戶。
哪些服務回滾了異常份額的資料庫事務?
檢視 SQL 和結果查詢資料庫鎖等待和死鎖
按事件計數、等待持續時間、未解決的鎖定和檢測到的死鎖對阻塞的資料庫操作指紋進行排名。
哪些資料庫操作會造成最嚴重的鎖爭用?
檢視 SQL 和結果測量資料庫複製和 CDC 延遲
透過平均延遲、最差延遲、落後位元組數和過時取樣率來比較副本和更改資料捕獲消費者。
哪些副本或 CDC 使用者落後於源資料庫?
檢視 SQL 和結果按版本追蹤資料庫遷移失敗
在完成部署之前,按應用程式版本比較資料庫遷移的成功、失敗、回滾和持續時間。
哪些版本包含失敗或回滾的資料庫遷移?
檢視 SQL 和結果檢測 N+1 資料庫查詢模式
檢測在一個應用程式請求內多次重複的資料庫指紋。
哪些路由和查詢組合在請求中重複可疑?
檢視 SQL 和結果按總時間影響對資料庫查詢進行排名
結合呼叫量和延遲來查詢消耗最多應用程式時間的資料庫指紋。
哪個資料庫操作消耗的累積請求時間最多?
檢視 SQL 和結果測量長時間執行的資料庫事務
查詢具有長尾、回滾和開放持續時間過長的應用程式事務類。
哪些應用程式事務類別保持開放時間最長?
檢視 SQL 和結果透過 SQLSTATE 和版本分析資料庫錯誤
按可移植 SQLSTATE 類、應用程式操作和發布對資料庫故障進行分組。
應用程式發布後哪些資料庫錯誤類別增加了?
檢視 SQL 和結果測量資料庫連線超時和改動
按服務和區域比較連線開啟、關閉、獲取超時以及受影響的請求。
哪些服務和區域顯示出不健康的資料庫連線流失?
檢視 SQL 和結果按區域測量資料庫副本的陳舊程度
按區域比較應用程式觀察到的副本重播延遲、陳舊讀取和故障轉移結果。
哪些副本區域正在提供過時或失敗的讀取?
檢視 SQL 和結果