因变量以获得普罗米修斯标签

时间:2020-02-26 16:22:44

标签: prometheus grafana

在/ metrics页面上,我有类似于

的字符串
 my_metric{controller="cont_a",action="act_a",le="1"} 5
 my_metric{controller="cont_a",action="act_b",le="1"} 4
 my_metric{controller="cont_b",action="act_c",le="1"} 3
 my_metric{controller="cont_b",action="act_d",le="1"} 2

在我的Grafana仪表板上,我想看到两个变量:controlleraction。如果我仅通过label_values(controller)label_values(action)之类的查询来定义它们,它们将是独立的,这意味着如果选择了控制器"cont_a",则所有4个动作都将可用。 但是我想使操作变量与控制器变量相关,因此,如果选择了控制器"cont_a",则只有值"act_a""act_b"可用于操作变量。并且如果选择了"cont_b",则只有"act_c""act_d"。 是否可以通过这种方式配置Grafana仪表板?

1 个答案:

答案 0 :(得分:2)

在Grafana仪表板中可能有因变量。例如,假设在变量$instance上有一个实例列表,这些实例来自Prometheus中的up度量。我们可以使用Grafana的label_values函数将其设置为查询:

label_values(up, instance)

现在,如果要使用第二个变量,该变量包含取决于所选实例的作业列表,则可以使用以下查询。

label_values(up{instance=~"$instance"}, job)

在这种情况下,我们使用已经定义的$instance变量来填充第二个变量(作业列表)的选项。

您可以see here这种方法的有效示例。