跳至主要內容
Telemetry
資料庫可靠性 SQL查詢範例

測量資料庫連線池飽和度

按應用程式服務測量平均池利用率、排隊獲取等待、超時和空閒容量。

入門database_pool_samples已審查 2026-07-28測試用 阿帕奇 DataFusion 45.2.0

審閱者 Telemetry產品團隊 . SQL 相容性、事件契約、合成輸出和操作注意事項. 審查標準和所有權

問題已回答

哪些應用程式池使呼叫者等待資料庫連線?

池已滿並不意味著不健康,但持續的利用率加上排隊的呼叫者和獲取超時是資料庫存取正在延遲應用程式工作的強烈跡象。

活動合約

查詢期望的欄位

欄位型別為什麼存在
timestamp_utcTimestamp池取樣時間(UTC)。
serviceUtf8擁有該池的應用程式服務。
pool_nameUtf8穩定的邏輯池名稱。
active_connectionsInt64當前已檢查連線。
idle_connectionsInt64開啟當前空閒的連線。
max_connectionsInt64設定的最大池大小。
wait_msFloat64觀察到此範例的連線獲取等待。
timed_outBoolean獲取是否超過客戶端超時時間。
environmentUtf8部署環境。
DataFusion SQL

複製查詢

sql
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。確定性樣本輸出是綜合的並單獨審查;根據您自己的資料驗證欄位型別、閾值和業務定義。 閱讀測試方法。

查詢結果

連線獲取等待率

結帳呼叫者在三分之二的樣本中等待,並且還會遇到採集超時。

servicepool_namesamplesaverage_utilization_pctwaited_sampleswait_rate_pctaverage_wait_mstimeouts
checkout-apiprimary1289.17866.67118.752
analytics-apireporting1245433.3312.50

綜合範例輸出。在將其用於操作決策之前,針對您自己的事件架構和閾值執行查詢。

Connection acquisition wait rate:來自 Measure Database Connection-Pool Saturation 範例結果的合成 wait_rate_pct 值的靜態圖表
確定性範例輸出的可索引 SVG。下載它以獲取帶有歸屬的文章、操作手冊或設計評論。

重現範例

下載公共裝置

JSON 包包含型別化事件契約, reproducible 輸入行、確切的 SQL、預期輸出、審閱註釋和引擎版本。 CSV 包含顯示的結果。

SQL 是如何工作的

  1. 1平均利用率提供了容量背景,但不能單獨用作故障訊號。
  2. 2等待取樣率顯示即使等待時間很短,呼叫者也會遇到爭用的頻率。
  3. 3超時仍然是明確的,因為平均值可以隱藏一小部分從不獲取連線的請求。

需要決定的邊緣情況

  • 在比較不同服務的費率之前,取樣頻率必須保持穩定。
  • Serverless併發可以建立很多獨立的池;當聚合會隱藏該形狀時,包括執行個體或執行時維度。
  • 增加池大小可以將爭用轉移到資料庫中。在更改客戶端限制之前檢查資料庫容量。

推薦儀表板

  • 酒吧:wait_rate_pct 和 average_utilization_pct(按服務)
  • 趨勢:活動、空閒和等待連線
  • 統計:連線獲取超時

警示指導

當連續樣本中的等待率和超時持續升高時發出警示,然後在增加池之前驗證資料庫容量。

讀取警示設定

讓查詢範例發揮作用

相關埋點和指南

繼續分析

在真實事件中執行它

建立資料表,調整欄位並儲存結果

免費開始,傳送結構化事件,並將查詢結果用作圖表、共享儀表板小工具或警示輸入。

獲取 API 金鑰