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。