14.10、实践 为ShoeHub定义KPI
实践:为 ShoeHub 定义 KPI
欢迎回到第 14 章的学习。在上一节,我们学习了 KPI 告警配置。现在我们要通过实践:为 ShoeHub 定义 KPI,整合前面学习的所有知识。
本节将学习:技术 KPI 定义、业务 KPI 定义、KPI Dashboard 创建、以及告警配置。
技术 KPI 定义
实践目标是什么? 为 ShoeHub 电商系统定义完整的 KPI 体系,包括技术 KPI 和业务 KPI。
技术 KPI 定义的作用是什么? 定义技术 KPI,量化系统性能和可靠性。
如何定义技术 KPI? 根据系统特点定义:
- API 响应时间:P95 < 200ms
- 系统可用性:> 99.9%
- 错误率:< 0.1%
- 吞吐量:QPS > 1000
ShoeHub 技术 KPI 定义:
| KPI | 目标值 | 警告值 | 危险值 |
|---|---|---|---|
| API P95 延迟 | < 200ms | 200-500ms | > 500ms |
| API P99 延迟 | < 500ms | 500-1000ms | > 1000ms |
| 系统可用性 | > 99.9% | 99%-99.9% | < 99% |
| 错误率 | < 0.1% | 0.1%-1% | > 1% |
| QPS | > 1000 | 500-1000 | < 500 |
| 数据库查询时间 | < 100ms | 100-500ms | > 500ms |
业务 KPI 定义
业务 KPI 定义的作用是什么? 定义业务 KPI,量化业务目标和用户体验。
如何定义业务 KPI? 根据业务目标定义:
- 用户指标:DAU > 10000、MAU > 100000
- 转化指标:转化率 > 5%、完成率 > 95%
- 收入指标:GMV > 100万、ARPU > 100
- 体验指标:满意度 > 4.5/5、NPS > 50
ShoeHub 业务 KPI 定义:
| KPI | 目标值 | 警告值 | 危险值 |
|---|---|---|---|
| DAU(日活跃用户) | > 10000 | 5000-10000 | < 5000 |
| MAU(月活跃用户) | > 100000 | 50000-100000 | < 50000 |
| 转化率(注册到下单) | > 5% | 3%-5% | < 3% |
| 完成率(下单到支付) | > 95% | 90%-95% | < 90% |
| GMV(成交总额) | > 100万/天 | 50-100万/天 | < 50万/天 |
| ARPU(每用户平均收入) | > 100 | 50-100 | < 50 |
| 用户满意度 | > 4.5/5 | 4.0-4.5/5 | < 4.0/5 |
| NPS(净推荐值) | > 50 | 30-50 | < 30 |
KPI Dashboard 创建
KPI Dashboard 创建的作用是什么? 创建 KPI Dashboard,直观展示关键绩效指标。
如何创建 KPI Dashboard? 在 Grafana 中:
- 创建 Dashboard
- 添加 KPI 面板
- 设置目标线
- 可视化趋势
ShoeHub KPI Dashboard 结构:
{ "dashboard": { "title": "ShoeHub KPI Dashboard", "panels": [ { "title": "technology KPI", "gridPos": {"h": 8, "w": 12}, "panels": [ { "title": "P95 postponements", "type": "stat", "targets": [ { "expr": "histogram_quantile(0.95, sum(rate(http_request_duration_seconds_bucket[5m])) by (le))" } ], "thresholds": { "steps": [ {"value": null, "color": "green"}, {"value": 0.2, "color": "yellow"}, {"value": 0.5, "color": "red"} ] } }, { "title": "System availability", "type": "gauge", "targets": [ { "expr": "sum(rate(up{job=~\"shoebub-.*\"}[5m])) / count(up{job=~\"shoebub-.*\"})" } ], "thresholds": { "steps": [ {"value": null, "color": "red"}, {"value": 0.99, "color": "yellow"}, {"value": 0.999, "color": "green"} ] } } ] }, { "title": "affaires KPI", "gridPos": {"h": 8, "w": 12}, "panels": [ { "title": "DAU", "type": "stat", "targets": [ { "expr": "count(count by (user_id) (http_requests_total{path=\"/api/orders\"} [1d]))" } ] }, { "title": "conversion rate", "type": "stat", "targets": [ { "expr": "count(count by (user_id) (http_requests_total{path=\"/api/orders\"} [1d])) / count(count by (user_id) (http_requests_total{path=\"/api/register\"} [1d]))" } ] } ] } ] } }
告警配置
告警配置的作用是什么? 配置 KPI 告警,及时发现问题。
如何配置告警? 设置:
- KPI 阈值
- 告警规则
- 通知策略
ShoeHub KPI 告警配置:
groups: - name: shoebub_kpi_alerts rules: - alert: ShoeHubHighP95Latency expr: histogram_quantile(0.95, sum(rate(http_request_duration_seconds_bucket{job=~"shoebub-.*"}[5m])) by (le)) > 0.5 for: 5m labels: severity: critical kpi: p95_latency annotations: summary: "ShoeHub P95 Delays more than 500ms" description: "ShoeHub ofthe P95 The delay is {{ $value }}s" - alert: ShoeHubLowDAU expr: count(count by (user_id) (http_requests_total{path="/api/orders"} [1d])) < 5000 for: 1h labels: severity: warning kpi: dau annotations: summary: "ShoeHub DAU below 5000" description: "ShoeHub ofthe DAU voor {{ $value }}"
本节小结
在本节中,我们学习了实践:为 ShoeHub 定义 KPI:
第一个是技术 KPI 定义。 定义技术 KPI,量化系统性能和可靠性。
第二个是业务 KPI 定义。 定义业务 KPI,量化业务目标和用户体验。
第三个是 KPI Dashboard 创建。 创建 KPI Dashboard,直观展示关键绩效指标。
第四个是告警配置。 配置 KPI 告警,及时发现问题。
为 ShoeHub 定义 KPI 流程: 定义技术 KPI → 定义业务 KPI → 创建 Dashboard → 配置告警 → 测试验证。
这就是实践:为 ShoeHub 定义 KPI。通过为 ShoeHub 定义 KPI,我们掌握了完整的 KPI 定义和配置方法。
在下一节,我们将学习 KPI 追踪和报告。学习如何追踪和报告 KPI。