如何在 Grafana 上使用 LogQL 将 Loki 解析的字段绘制为数值?

Xue*_* Du 9 logging grafana grafana-loki

我的设置: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 
Run Code Online (Sandbox Code Playgroud)

我在日志中使用了 logfmt,因此 loki 可以检测到我的字段: ![图片|496x169](上传://vlvULKFu8DhvVZJb9qxURLMlSso.png)

现在我想要info_q在 Grafana 上绘制一段时间内的平均值。这是我尝试过的事情:

avg by (info) (avg_over_time({job="ism/ism-core-es"} | regexp `.*info_q=(?P<info_q>.*)` | unwrap info_q [1m]))
Run Code Online (Sandbox Code Playgroud)

回报在此输入图像描述

正如错误消息所示,我做了

avg by (info) (avg_over_time({job="ism/ism-core-es"} | regexp `.*info_q=(?P<info_q>.*)` | unwrap info_q | __error__="" [1m] ))
Run Code Online (Sandbox Code Playgroud)

返回空图表。和这个

avg_over_time(
{job="ism/ism-core-es"}
| regexp ".*info_q=(?P<info_q>.*?)"
| unwrap info_q [5m])
Run Code Online (Sandbox Code Playgroud)

也不返回任何内容。

我究竟做错了什么?我必须输入cast吗?任何帮助表示赞赏!

Xue*_* Du 4

事实证明:

avg by (info) (avg_over_time( ({job="ism/ism-core-es"} |logfmt |unwrap info|__error__="")[1m]))
Run Code Online (Sandbox Code Playgroud)

成功了