14.10实践 为ShoeHub定义KPI

分类: 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 延迟< 200ms200-500ms> 500ms
API P99 延迟< 500ms500-1000ms> 1000ms
系统可用性> 99.9%99%-99.9%< 99%
错误率< 0.1%0.1%-1%> 1%
QPS> 1000500-1000< 500
数据库查询时间< 100ms100-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(日活跃用户)> 100005000-10000< 5000
MAU(月活跃用户)> 10000050000-100000< 50000
转化率(注册到下单)> 5%3%-5%< 3%
完成率(下单到支付)> 95%90%-95%< 90%
GMV(成交总额)> 100万/天50-100万/天< 50万/天
ARPU(每用户平均收入)> 10050-100< 50
用户满意度> 4.5/54.0-4.5/5< 4.0/5
NPS(净推荐值)> 5030-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。