14.5、从Traces到KPI
从 Traces 到 KPI
欢迎回到第 14 章的学习。在上一节,我们学习了业务 KPI 设计。现在我们要学习从 Traces 到 KPI。
本节将学习:延迟分布分析、错误率计算、吞吐量统计、以及 KPI 映射方法。
延迟分布分析
从 Traces 到 KPI 的作用是什么? 从分布式追踪数据中提取关键绩效指标,量化系统性能。
延迟分布分析的作用是什么? 分析请求延迟的分布情况,评估系统响应性能。
如何进行延迟分布分析? 从 Traces 中提取:
- Span 持续时间
- 请求延迟分布
- 百分位数计算(P50、P95、P99)
- 延迟趋势分析
TraceQL 查询示例:
# 查询特定服务的 Traces { resource.service.name = "order-service" } # 计算 P95 延迟 { resource.service.name = "order-service" } | quantile_over_time(0.95, duration) by (resource.service.name) # 延迟分布分析 { resource.service.name = "order-service" } | histogram_over_time(duration) by (resource.service.name)
错误率计算
错误率计算的作用是什么? 从 Traces 中计算错误率,评估系统可靠性。
如何进行错误率计算? 从 Traces 中提取:
- 错误 Span 数量
- 总 Span 数量
- 错误率 = 错误 Span 数 / 总 Span 数
- 错误类型分布
TraceQL 查询示例:
# 查询错误 Traces { resource.service.name = "order-service" && status = error } # 计算错误率 count({ resource.service.name = "order-service" && status = error }) / count({ resource.service.name = "order-service" }) # 错误类型分布 { resource.service.name = "order-service" && status = error } | count() by (status.code, status.message)
吞吐量统计
吞吐量统计的作用是什么? 从 Traces 中统计吞吐量,评估系统处理能力。
如何进行吞吐量统计? 从 Traces 中提取:
- 请求总数
- 时间窗口
- QPS = 请求总数 / 时间窗口
- 吞吐量趋势
TraceQL 查询示例:
# 统计请求总数 count({ resource.service.name = "order-service" }) # 计算 QPS(每秒请求数) rate(count({ resource.service.name = "order-service" })[1m]) # 吞吐量趋势 count_over_time({ resource.service.name = "order-service" }[5m])
KPI 映射方法
KPI 映射方法的作用是什么? 将 Traces 数据映射到 KPI,建立数据关联。
如何进行 KPI 映射? 建立映射关系:
- Traces → 延迟 KPI
- Traces → 错误率 KPI
- Traces → 吞吐量 KPI
- Traces → 可用性 KPI
KPI 映射示例:
| Traces 数据 | KPI |
|---|---|
| Span 持续时间 | P95 延迟 < 200ms |
| 错误 Span 数 | 错误率 < 0.1% |
| 请求总数 | QPS > 1000 |
| 成功 Span 数 | 可用性 > 99.9% |
Grafana Dashboard 配置示例:
{ "panels": [ { "title": "P95 postponements", "targets": [ { "expr": "{ resource.service.name = \"order-service\" } | quantile_over_time(0.95, duration)" } ] }, { "title": "error rate", "targets": [ { "expr": "count({ resource.service.name = \"order-service\" && status = error }) / count({ resource.service.name = \"order-service\" })" } ] }, { "title": "QPS", "targets": [ { "expr": "rate(count({ resource.service.name = \"order-service\" })[1m])" } ] } ] }
本节小结
在本节中,我们学习了从 Traces 到 KPI:
第一个是延迟分布分析。 从 Traces 中分析请求延迟分布,计算百分位数。
第二个是错误率计算。 从 Traces 中计算错误率,评估系统可靠性。
第三个是吞吐量统计。 从 Traces 中统计吞吐量,评估系统处理能力。
第四个是 KPI 映射方法。 将 Traces 数据映射到 KPI,建立数据关联。
从 Traces 到 KPI 流程: 收集 Traces → 分析数据 → 计算 KPI → 映射指标 → 追踪监控。
这就是从 Traces 到 KPI。通过从 Traces 到 KPI,我们能够从分布式追踪数据中提取关键绩效指标。
在下一节,我们将学习从 Metrics 到 KPI。学习如何从 Metrics 中提取 KPI。