活动合约
查询期望的字段
| 字段 | 类型 | 为什么存在 |
|---|---|---|
| timestamp_utc | Timestamp | 请求完成时间。 |
| route_template | Utf8 | 稳定的匹配路线。 |
| outcome | Utf8 | 成功、错误、超时、取消或 rate_limited。 |
| latency_ms | Float64 | 观察到的请求持续时间。 |
DataFusion SQL
复制查询
sql
SELECT
route_template,
COUNT(*) AS requests,
SUM(CASE WHEN outcome = 'timeout' THEN 1 ELSE 0 END) AS timeouts,
100.0 * SUM(CASE WHEN outcome = 'timeout' THEN 1 ELSE 0 END)
/ NULLIF(COUNT(*), 0) AS timeout_rate_pct,
approx_percentile_cont(latency_ms, 0.95) AS p95_latency_ms
FROM api_requests
WHERE timestamp_utc >= now() - INTERVAL '24 hours'
GROUP BY route_template
HAVING COUNT(*) >= 50
ORDER BY timeout_rate_pct DESC, requests DESC
LIMIT 20;此只读查询是针对空类型表计划和执行的 阿帕奇 DataFusion 45.2.0。确定性样本输出是综合的并单独审查;根据您自己的数据验证字段类型、阈值和业务定义。 阅读测试方法。
查询结果
按路由的超时率
报告导出存在超时问题,聚合 5xx 速率可能会隐藏该问题。
/api/reports/export
3.97%
/api/projects/:id/sync
0.91%
/api/search
0.07%
| route_template | requests | timeouts | timeout_rate_pct | p95_latency_ms |
|---|---|---|---|---|
| /api/reports/export | 780 | 31 | 3.97 | 29,400 |
| /api/projects/:id/sync | 2,410 | 22 | 0.91 | 8,420 |
| /api/search | 12,140 | 9 | 0.07 | 680 |
综合示例输出。在将其用于操作决策之前,针对您自己的事件架构和阈值运行查询。
SQL 是如何工作的
- 1标准化结果捕获服务器截止时间、网关超时和已处理的客户端超时路径。
- 2最小请求阈值可以防止一种罕见的超时主导排名。
- 3除了超时率之外,p95 延迟有助于区分持续缓慢的工作和突然的截止日期失败。
需要决定的边缘情况
- 客户端断开连接和服务器截止时间可能需要不同的结果值。
- 长时间运行的导出可能具有与交互式路由不同的服务目标。
- 当路由或客户使用不同的超时策略时,记录配置的截止时间。
推荐仪表板
- 酒吧:timeout_rate_pct by route_template
- 趋势:超时量和 p95 延迟
- 表:具有依赖项和发布上下文的最新超时请求
让查询示例发挥作用
相关埋点和指南
继续分析
在真实事件中运行它
创建表,调整字段并保存结果
免费开始,发送结构化事件,并将查询结果用作图表、共享仪表板小部件或警报输入。