14.3、技术KPI设计
技术 KPI 设计
欢迎回到第 14 章的学习。在上一节,我们学习了 SLO/SLI/SLA 定义。现在我们要学习技术 KPI 设计。
本节将学习:延迟指标、可用性指标、错误率指标、以及吞吐量指标。
延迟指标
延迟指标的作用是什么? 衡量系统响应速度,评估用户体验。
延迟指标包括哪些呢?
第一个:P50(中位数)。 50% 的请求响应时间。
第二个:P95(95 百分位数)。 95% 的请求响应时间。
第三个:P99(99 百分位数)。 99% 的请求响应时间。
第四个:平均延迟。 所有请求的平均响应时间。
为什么使用百分位数? 百分位数能够更好地反映用户体验,避免极端值影响。
延迟指标示例:
# P50 延迟 histogram_quantile(0.50, sum(rate(http_request_duration_seconds_bucket[5m])) by (le)) # P95 延迟 histogram_quantile(0.95, sum(rate(http_request_duration_seconds_bucket[5m])) by (le)) # P99 延迟 histogram_quantile(0.99, sum(rate(http_request_duration_seconds_bucket[5m])) by (le)) # 平均延迟 rate(http_request_duration_seconds_sum[5m]) / rate(http_request_duration_seconds_count[5m])
可用性指标
可用性指标的作用是什么? 衡量系统可用性,评估服务可靠性。
可用性指标包括哪些呢?
第一个:Uptime(运行时间)。 系统运行时间百分比。
第二个:MTTR(平均修复时间)。 Mean Time To Repair,平均修复时间。
第三个:MTBF(平均故障间隔时间)。 Mean Time Between Failures,平均故障间隔时间。
第四个:可用性百分比。 可用时间 / 总时间。
可用性指标示例:
# 可用性百分比(基于健康检查) sum(rate(up{job="order-service"}[5m])) / count(up{job="order-service"}) # MTTR(平均修复时间) avg(time() - last_over_time(service_down_timestamp[1h])) # MTBF(平均故障间隔时间) avg(time() - last_over_time(service_up_timestamp[1h]))
错误率指标
错误率指标的作用是什么? 衡量系统错误率,评估服务质量。
错误率指标包括哪些呢?
第一个:错误率。 错误请求数 / 总请求数。
第二个:错误类型。 不同类型的错误分布。
第三个:错误趋势。 错误率的变化趋势。
第四个:错误影响。 错误对业务的影响。
错误率指标示例:
# 错误率 sum(rate(http_requests_total{status=~"5.."}[5m])) / sum(rate(http_requests_total[5m])) # 错误类型分布 sum(rate(http_requests_total{status=~"5.."}[5m])) by (status) # 错误趋势 rate(http_requests_total{status=~"5.."}[5m])
吞吐量指标
吞吐量指标的作用是什么? 衡量系统处理能力,评估系统性能。
吞吐量指标包括哪些呢?
第一个:QPS(每秒查询数)。 Queries Per Second,每秒处理的请求数。
第二个:TPS(每秒事务数)。 Transactions Per Second,每秒处理的事务数。
第三个:RPS(每秒请求数)。 Requests Per Second,每秒处理的请求数。
第四个:并发数。 同时处理的请求数。
吞吐量指标示例:
# QPS(每秒查询数) sum(rate(http_requests_total[5m])) # TPS(每秒事务数) sum(rate(transactions_total[5m])) # RPS(每秒请求数) sum(rate(http_requests_total[5m])) by (service) # 并发数 sum(http_requests_in_flight)
本节小结
在本节中,我们学习了技术 KPI 设计:
第一个是延迟指标。 P50、P95、P99、平均延迟,衡量系统响应速度。
第二个是可用性指标。 Uptime、MTTR、MTBF、可用性百分比,衡量系统可用性。
第三个是错误率指标。 错误率、错误类型、错误趋势、错误影响,衡量系统错误率。
第四个是吞吐量指标。 QPS、TPS、RPS、并发数,衡量系统处理能力。
技术 KPI 设计流程: 选择指标 → 设定目标 → 追踪监控 → 优化改进。
这就是技术 KPI 设计。通过技术 KPI 设计,我们能够量化系统性能和可靠性。
在下一节,我们将学习业务 KPI 设计。学习如何设计业务 KPI。