首页/云/可观测性速查/LogQL unwrap:对数值字段做统计
日志平台52 条

LogQL unwrap:对数值字段做统计

unwrap 把行内解析出的数值字段当成样本值:从此可以对日志里的耗时、字节数求平均值、分位数,而不再只统计条数。

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

解包做什么

解包把日志行里解析出的数值字段当作样本值使用:从此可以对日志里的耗时、字节数求平均或分位,而不再只统计条数。它把原本只能检索的日志,变成了可以做数值统计的数据源。

使用前提是字段能解析

用之前必须先解析:把结构化字段解出来,再指定哪个字段作为数值。如果字段缺失或不是数值,该行会被跳过并计入错误指标,因此上线前要抽样验证字段质量,否则统计结果会系统性偏低。

基本信息

前提先用解析表达式取出结构化字段
限制一次查询只能有一个解包
异常处理非数值行被跳过并计入错误指标
常见用法耗时与字节数的数值统计

典型使用场景

  • 接口耗时统计:从日志里取出耗时字段计算分位
  • 响应体大小:统计返回大小的均值与分布
  • 业务指标:对日志里的业务数值字段做统计
  • 慢请求排名:按接口分组统计耗时分位
  • 交叉验证:与指标侧的分位曲线互相印证

数值统计示例

数值统计示例
# 请求耗时的 P95(从结构化字段取数)
quantile_over_time(0.95,
  {app="api"} | json | unwrap duration_ms [5m]) by (route)

# 响应体大小均值
avg_over_time({app="api"} | logfmt | unwrap bytes [1m])

# 先验证解析结果:确认字段确实被解出来
{app="api"} | json | __error__=""  [5m]

用法与注意

用法作用注意
平均统计窗口内数值平均字段缺失会让分母变小
分位统计按解包值算分位分组维度要控制基数
求和累计数值总量注意单位统一
按维度分组拆分成多条曲线高基数分组会拖慢查询
解包统计依赖字段完整性:被跳过的行不参与计算,结果口径是已解析样本,与日志总量口径并不相同。
解包配合高基数分组会产生大量序列,容易触发查询上限,分组维度要提前收敛到可控范围。

易错点

  • 字段里混入空值或字符串:统计结果出现偏差,而且不容易察觉
  • 未抽样验证就上线:解析规则与真实日志格式不匹配,结果不可用
  • 一次查询里写多次解包:不被支持,需要拆成多条查询
  • 把它当作全量统计:跳过行会让结果偏低,需与总量交叉核对

数据来源与参考

  • Grafana 官方文档 · LogQL unwrap
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌