在grafana-loki查询(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

假设我想访问主机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}中选择all时失败。

我怎样才能做到这一点?

谢谢你的预付款!

使用以下LogQL:选择文件名

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

":管道;修饰符将改变"$varApp";例如10|11|20。

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

相关内容

  • 没有找到相关文章

最新更新