具有Prometheus查询的Grafana临时过滤器

时间:2020-11-05 20:40:57

标签: prometheus grafana promql grafana-variable

我刚刚开始研究Grafana和Prometheus,以开发仪表板。在我的Grafana仪表板中,我试图添加一个临时过滤器,该过滤器允许用户从下拉列表中选择值。

以下是普罗米修斯样本数据

Element                                                                                                                                ,  Value
default_jenkins_builds_last_build_result{instance="jenkins-m1.abc.com",jenkins_m1_prod="XXX/YYYY/AAA",job="jenkins-m1",repo="ABC"}, 0
default_jenkins_builds_last_build_result{instance="jenkins-m2.abc.com",jenkins_m2_prod="XXX/YYYY/BBB",job="jenkins-m2",repo="BCD"}, 0
default_jenkins_builds_last_build_result{instance="jenkins-m1.abc.com",jenkins_m1_prod="XXX/YYYY/CCC",job="jenkins-m1",repo="ABCD"},    0

我想为Grafana中的实例标签添加一个临时过滤器。以下是我当前进度的一个示例。您可以看到下拉菜单中没有任何结果。我还添加了临时变量配置的代码段。

enter image description here

enter image description here

我假设查询不正确,这就是为什么它不返回任何结果。因此,有人可以帮我走上正确的路径,在该路径上下拉菜单应该显示上述示例数据“ jenkins-m1.abc.com”和“ jenkins-m2.abc.com”中的两个选项?

谢谢

2 个答案:

答案 0 :(得分:0)

在变量定义中使用以下查询:

label_values(default_jenkins_builds_last_build_result,instance)

除此之外,我建议改用以下查询:

label_values(default_jenkins_up,instance)

答案 1 :(得分:0)

两件事:

  1. 您提供的屏幕截图将变量类型显示为 Query 而不是 Ad Hoc Filter。如果您将其设置为临时过滤器,您将拥有所需的内容(仅当您每次都执行复杂的查询但它们之间存在一些差异时才建议这样做。

  2. 解决此问题的另一种方法是 Marcelo 的回答,您将变量类型保留为 Query 并将查询设置为:label_values(default_jenkins_builds_last_build_result,instance)

由于您只想为实例标签提供一个下拉菜单,我推荐第二种方式,因为它对仪表板用户来说更容易。