14.7、从Logs到KPI
分类: KPI 定义和量化指标
从 Logs 到 KPI
欢迎回到第 14 章的学习。在上一节,我们学习了从 Metrics 到 KPI。现在我们要学习从 Logs 到 KPI。
本节将学习:日志统计、错误日志分析、用户行为分析、以及 KPI 提取。
日志统计
从 Logs 到 KPI 的作用是什么? 从日志数据中提取关键绩效指标,量化系统行为和用户体验。
日志统计的作用是什么? 统计日志数量,评估系统活动和负载。
如何进行日志统计? 使用 LogQL:
- count_over_time:时间窗口内日志数量
- rate:日志速率
- sum:日志总数
- avg:平均日志量
LogQL 统计示例:
# 统计日志数量(5 分钟内) count_over_time({job="order-service"}[5m]) # 日志速率(每秒) rate({job="order-service"}[5m]) # 按服务统计日志数量 sum(count_over_time({job=~".+"}[5m])) by (job) # 平均日志量 avg(count_over_time({job="order-service"}[5m]))
错误日志分析
错误日志分析的作用是什么? 分析错误日志,评估系统可靠性和问题频率。
如何进行错误日志分析? 使用 LogQL:
- 过滤错误日志:level="error"
- 统计错误数量:count_over_time(...)
- 分析错误类型:by (error_type)
- 计算错误率:错误日志数 / 总日志数
LogQL 错误分析示例:
# 过滤错误日志 {job="order-service"} |= "error" # 统计错误数量 count_over_time({job="order-service"} |= "error" [5m]) # 错误类型分布 sum(count_over_time({job="order-service"} |= "error" [5m])) by (error_type) # 计算错误率 sum(count_over_time({job="order-service"} |= "error" [5m])) / sum(count_over_time({job="order-service"}[5m])) # 错误趋势 rate({job="order-service"} |= "error" [5m])
用户行为分析
用户行为分析的作用是什么? 分析用户行为日志,评估用户体验和业务转化。
如何进行用户行为分析? 从日志中提取:
- 用户操作:action、path
- 操作时间:timestamp
- 操作结果:status、result
- 用户标识:user_id、session_id
LogQL 用户行为分析示例:
# 用户操作统计 sum(count_over_time({job="order-service"} | json | action != "" [5m])) by (action) # 用户转化分析(注册到下单) count_over_time({job="order-service"} | json | action="order_created" [1d]) / count_over_time({job="order-service"} | json | action="user_registered" [1d]) # 用户会话分析 sum(count_over_time({job="order-service"} | json | session_id != "" [5m])) by (session_id) # 操作完成率 sum(count_over_time({job="order-service"} | json | status="success" [5m])) / sum(count_over_time({job="order-service"} | json | action != "" [5m]))
KPI 提取
KPI 提取的作用是什么? 从日志中提取关键绩效指标,量化业务目标。
如何进行 KPI 提取? 建立提取规则:
- 日志统计 → 活动 KPI
- 错误日志 → 错误率 KPI
- 用户行为 → 转化率 KPI
- 操作日志 → 完成率 KPI
KPI 提取示例:
| Logs 数据 | KPI |
|---|---|
| 日志总数 | 系统活动量 |
| 错误日志数 | 错误率 < 0.1% |
| 用户操作数 | DAU、MAU |
| 操作完成数 | 完成率 > 95% |
Grafana Dashboard 配置示例:
{ "panels": [ { "title": "Amount of system activity", "targets": [ { "expr": "sum(count_over_time({job=\"order-service\"}[5m]))" } ] }, { "title": "error rate", "targets": [ { "expr": "sum(count_over_time({job=\"order-service\"} |= \"error\" [5m])) / sum(count_over_time({job=\"order-service\"}[5m]))" } ] }, { "title": "User conversion rate", "targets": [ { "expr": "count_over_time({job=\"order-service\"} | json | action=\"order_created\" [1d]) / count_over_time({job=\"order-service\"} | json | action=\"user_registered\" [1d])" } ] } ] }
本节小结
在本节中,我们学习了从 Logs 到 KPI:
第一个是日志统计。 统计日志数量,评估系统活动和负载。
第二个是错误日志分析。 分析错误日志,评估系统可靠性和问题频率。
第三个是用户行为分析。 分析用户行为日志,评估用户体验和业务转化。
第四个是 KPI 提取。 从日志中提取关键绩效指标,量化业务目标。
从 Logs 到 KPI 流程: 收集 Logs → 日志统计 → 错误分析 → 行为分析 → 提取 KPI → 追踪监控。
这就是从 Logs 到 KPI。通过从 Logs 到 KPI,我们能够从日志数据中提取关键绩效指标。
在下一节,我们将学习 KPI Dashboard 设计。学习如何设计 KPI Dashboard。