活动合约
查询期望的字段
| 字段 | 类型 | 为什么存在 |
|---|---|---|
| timestamp_utc | Timestamp | 数据库操作完成时(UTC)。 |
| query_fingerprint | Utf8 | 没有参数值的标准化、有界操作标签。 |
| service | Utf8 | 发出操作的应用程序或工作人员。 |
| database_name | Utf8 | 批准的逻辑数据库名称。 |
| status | Utf8 | 成功或失败。 |
| duration_ms | Float64 | 端到端数据库操作持续时间(以毫秒为单位)。 |
| rows_returned | Int64 | 当客户端公开计数时返回或受影响的行。 |
| release | Utf8 | 发出查询的应用程序版本。 |
| environment | Utf8 | 部署环境。 |
DataFusion SQL
复制查询
sql
SELECT
query_fingerprint,
service,
database_name,
COUNT(*) AS executions,
SUM(CASE WHEN duration_ms >= 1000 THEN 1 ELSE 0 END) AS slow_executions,
100.0 * SUM(CASE WHEN duration_ms >= 1000 THEN 1 ELSE 0 END)
/ NULLIF(COUNT(*), 0) AS slow_query_rate_pct,
AVG(duration_ms) AS average_duration_ms,
MAX(duration_ms) AS maximum_duration_ms
FROM database_query_events
WHERE timestamp_utc >= now() - INTERVAL '30 days'
AND environment = 'production'
GROUP BY query_fingerprint, service, database_name
HAVING COUNT(*) >= 10
ORDER BY slow_query_rate_pct DESC, executions DESC
LIMIT 20;此只读查询是针对空类型表计划和执行的 阿帕奇 DataFusion 45.2.0。确定性样本输出是综合的并单独审查;根据您自己的数据验证字段类型、阈值和业务定义。 阅读测试方法。
查询结果
指纹慢查询率
大多数执行中发票更新都很慢,而目录查询仍低于说明性的一秒阈值。
UPDATE invoices SET status = ?
80%
comparison 1,250%
SELECT checkout WITH line_items
50%
comparison 1,012.5%
SELECT products BY category
0%
comparison 330%
| query_fingerprint | service | database_name | executions | slow_executions | slow_query_rate_pct | average_duration_ms | maximum_duration_ms |
|---|---|---|---|---|---|---|---|
| UPDATE invoices SET status = ? | billing-worker | app_production | 10 | 8 | 80 | 1,250 | 1,700 |
| SELECT checkout WITH line_items | checkout-api | app_production | 12 | 6 | 50 | 1,012.5 | 1,600 |
| SELECT products BY category | catalog-api | catalog_production | 12 | 0 | 0 | 330 | 440 |
综合示例输出。在将其用于操作决策之前,针对您自己的事件架构和阈值运行查询。
SQL 是如何工作的
- 1指纹是应用程序控制的标签,而不是原始 SQL。这限制了基数并避免捕获参数值。
- 2速率可区分偶尔缓慢的高容量操作和大多数时间缓慢的操作。
- 3最小执行计数可以防止单个冷查询主导排名。
需要决定的边缘情况
- 每个工作负载选择一个慢速阈值;一秒是说明性的,对于交互式请求来说可能太长了。
- 客户端持续时间包括池等待和网络时间,除非这些阶段是单独记录的。
- 不要记录原始查询参数、连接字符串或不受限制的 SQL 文本。
推荐仪表板
- 酒吧:slow_query_rate_pct by query_fingerprint
- 趋势:average_duration_ms(按版本)
- 表:所选指纹和服务的最新故障
让查询示例发挥作用
相关埋点和指南
定义源数据
此分析的事件模式
继续分析
在真实事件中运行它
创建表,调整字段并保存结果
免费开始,发送结构化事件,并将查询结果用作图表、共享仪表板小部件或警报输入。