首页/云/可观测性速查/LogQL 指标查询:把日志变成时间序列
日志平台52 条

LogQL 指标查询:把日志变成时间序列

对日志流做范围聚合即得指标:rate 看速率、count_over_time 看数量;配合 by 分组可直接在 Grafana 里画日志趋势。

可观测性速查云更新于 2026-10-13

把日志变成时间序列

对日志流做范围聚合就得到时间序列:速率函数给出每秒条数,计数函数给出窗口内数量,配合按标签分组还能把结果拆成多条曲线。这让日志平台能像指标系统一样看趋势,而不只是做检索。

范围窗口是关键参数

窗口至少覆盖两个采样点才能算出速率。日志量大时可以适当缩短窗口以提高灵敏度,日志稀疏时应放宽窗口避免抖动;看板里通常交给与步长联动的宏来控制,避免时间范围变化后曲线失真。

基本信息

范围聚合对一段窗口内的日志做统计
速率函数把条数转成每秒变化率
计数函数统计窗口内的日志条数
分组按标签把结果拆成多条序列

典型使用场景

  • 错误速率:统计含错误关键字日志的每秒条数
  • 级别分布:按级别标签分组统计各等级日志量
  • 突增检测:用速率曲线发现日志量异常抬升
  • 看板趋势:把日志统计画成与指标同样风格的趋势图
  • 告警表达式:以日志统计结果直接配置通知规则

常用指标查询

常用指标查询
# 每秒错误条数
rate({app="api"} |= "error" [5m])

# 按级别统计每分钟条数
sum by (level) (count_over_time({app="api"} [1m]))

# 每 5 分钟错误总量
sum(count_over_time({app="api"} |= "error" [5m]))

常用函数

函数作用注意
速率每秒条数窗口需覆盖多个采样点
计数窗口内条数适合低频日志
分组求和按标签拆分曲线分组维度要可控
分位统计配合数值解包使用需先解析出数值字段
范围窗口至少覆盖两个采样点才能算出速率:窗口过小时曲线会剧烈抖动,甚至出现时有时无的结果。
对全量日志做无过滤计数,本质上只是日志量统计:消耗资源却说明不了具体问题,应先加过滤条件再统计。

与指标侧的分工

  • 指标回答整体趋势与告警,长期成本更低
  • 日志统计用于回答指标里没有的细节,如特定错误消息的量
  • 同一口径两边都要有时,应在文档里约定取值方式
  • 日志量突增而指标平稳,通常意味着日志格式或采集发生了变化

易错点

  • 窗口过小:速率结果抖动或为空,图表无法解读
  • 无条件统计全量日志:开销高,结论却没有排查价值
  • 分组维度选错:曲线数量过多,或把关键维度聚合掉了
  • 把日志统计当作精确计数:采集丢失或采样会让结果系统性偏低

数据来源与参考

  • Grafana 官方文档 · LogQL metric queries
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌