繁体   English   中英

在 grafana loki 查询 (LogQL) 上使用变量

[英]Use variables on grafana loki queries (LogQL)

我已经成功地在服务器上安装了 Loki,并在我的数据中心的多个主机上安装了 Promtail。 每个主机运行不同数量的 tomcat,例如 tomcat10、tomcat11...tomcat20。

所以在 promtail 上,我的工作得到了一个带有主机名的标签, __path__类似于work/java/tomcat*/logs*

现在我在 Postgre 上添加与这些 tomcat 相关的不同应用程序名称,以及主机及其名称。

但是我正在努力使用 Grafana 上的 LogQL 查询来访问这些变量。 例如,我在 Grafana 中定义了以下名为varHost 的变量

select server __value, server __text from loki_promtail.servers order by id ASC

假设我想访问 Host Saturn上的每个日志。 使用{job="saturn"}很容易,但我想使用 ${varHost} 代替 Saturn(主机名),这样同一个面板可以显示多个主机信息。

同样,假设我正在尝试访问/work/java/tomcat10/logs/catalina.out 我希望能够在 LogQL 查询中连接 varApp,所以,而不是{filename="/work/java/tomcat10/logs/catalina.out"}我想要类似{filename="/work/java/tomcat${varApp}/logs/catalina.out"} ,我正在使用正则表达式{filename=~"/work/java/tomcat${varApp}/logs/catalina.out"}但在选择时失败全部在 Grafana 的 ${varApp} 中。

我怎么能做到这一点?

谢谢你提前!

使用以下 LogQL 选择文件名:

{filename=~"/work/java/tomcat(${varApp:pipe})/logs/catalina.out"}

例如,":pipe" 修饰符会将 "$varApp" 更改为 10|11|20。

此处的 Grafana 文档中的更多信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM