活动合约
查询期望的字段
| 字段 | 类型 | 为什么存在 |
|---|---|---|
| timestamp_utc | Timestamp | 请求完成时间。 |
| service | Utf8 | 稳定的服务名称。 |
| slo_eligible | Boolean | 请求是否属于 SLO 分母。 |
| slo_good | Boolean | 请求是否满足 SLO。 |
DataFusion SQL
复制查询
sql
SELECT
date_trunc('day', timestamp_utc) AS day,
service,
SUM(CASE WHEN slo_eligible THEN 1 ELSE 0 END) AS eligible_requests,
SUM(CASE WHEN slo_eligible AND slo_good THEN 1 ELSE 0 END)
AS good_requests,
100.0 * SUM(CASE WHEN slo_eligible AND slo_good THEN 1 ELSE 0 END)
/ NULLIF(SUM(CASE WHEN slo_eligible THEN 1 ELSE 0 END), 0)
AS availability_pct,
99.9 AS objective_pct
FROM api_requests
WHERE timestamp_utc >= now() - INTERVAL '30 days'
GROUP BY date_trunc('day', timestamp_utc), service
HAVING SUM(CASE WHEN slo_eligible THEN 1 ELSE 0 END) > 0
ORDER BY day, service;此只读查询是针对空类型表计划和执行的 阿帕奇 DataFusion 45.2.0。确定性样本输出是综合的并单独审查;根据您自己的数据验证字段类型、阈值和业务定义。 阅读测试方法。
查询结果
每日服务可用性
7 月 26 日,查询 API 未达到 99.9% 的目标。
2026-07-25
99.93%
2026-07-26
99.82%
2026-07-27
99.95%
| day | service | eligible_requests | good_requests | availability_pct | objective_pct |
|---|---|---|---|---|---|
| 2026-07-25 | query_api | 182,400 | 182,274 | 99.93 | 99.9 |
| 2026-07-26 | query_api | 176,820 | 176,501 | 99.82 | 99.9 |
| 2026-07-27 | ingestion_api | 248,100 | 247,976 | 99.95 | 99.9 |
综合示例输出。在将其用于操作决策之前,针对您自己的事件架构和阈值运行查询。
SQL 是如何工作的
- 1明确的资格可以保护分母免受健康检查或不受支持的流量的影响。
- 2当目标需要正确性和延迟时,slo_good 可以对两者进行编码。
- 3目标在观察值旁边返回,因此图表和评论保留了决策边界。
需要决定的边缘情况
- 使用完整的时间段进行寻呼和合规性报告。
- 记录排除的流量,以便 SLO 无法通过静默的分母更改来改进。
- 每日视图有助于回顾;快速的错误预算警报通常需要更短的窗口。
推荐仪表板
- 趋势:availability_pct 与目标线
- 统计:所选时间段内的合规天数
- 表:错过服务日的不良事件
让查询示例发挥作用
相关埋点和指南
继续分析
在真实事件中运行它
创建表,调整字段并保存结果
免费开始,发送结构化事件,并将查询结果用作图表、共享仪表板小部件或警报输入。