跳转到内容
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 密钥