如何在 Grafana 上使用 LogQL 将 Loki 解析的字段绘制为数值?
Posted
技术标签:
【中文标题】如何在 Grafana 上使用 LogQL 将 Loki 解析的字段绘制为数值?【英文标题】:How to plot Loki parsed fields as numerical values using LogQL on Grafana? 【发布时间】:2021-06-25 09:43:54 【问题描述】:我的设置:Loki:2.1.0,Grafana:6.7.3
我的软件在 Kubernetes 上运行,Loki 收集它的日志。它看起来像这样:
[2021-03-29 10:13:05] [INFO] Q_len=256 sol_q=0.049 info_q=0.240
[2021-03-29 10:13:05] [INFO] Q_len=196 sol_q=0.047 info_q=0.144
我在日志中使用了 logfmt,所以 loki 可以检测到我的字段:
现在我想在 Grafana 上随时间绘制 info_q
的平均值。以下是我尝试过的事情:
avg by (info) (avg_over_time(job="ism/ism-core-es" | regexp `.*info_q=(?P<info_q>.*)` | unwrap info_q [1m]))
返回
正如错误信息提示的那样,我做到了
avg by (info) (avg_over_time(job="ism/ism-core-es" | regexp `.*info_q=(?P<info_q>.*)` | unwrap info_q | __error__="" [1m] ))
返回空图表。还有这个
avg_over_time(
job="ism/ism-core-es"
| regexp ".*info_q=(?P<info_q>.*?)"
| unwrap info_q [5m])
也不返回任何内容。
我做错了什么?我必须打字吗?任何帮助表示赞赏!
【问题讨论】:
【参考方案1】:事实证明:
avg by (info) (avg_over_time( (job="ism/ism-core-es" |logfmt |unwrap info|__error__="")[1m]))
成功了
【讨论】:
以上是关于如何在 Grafana 上使用 LogQL 将 Loki 解析的字段绘制为数值?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 grafana 中为 Loki 的 json 日志绘制图表?
LogQL - label_format 有条件地格式化标签