14.3技术KPI设计

分类: 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。