如何使用 Grafana 查询进行过滤
How to filter using Grafana queries
所以我有一个 grafana
仪表板,我需要过滤掉一些标签。所以我正在使用 label_values
函数。
我的数据源是prometheus
所以,对于这个 label_values
函数,我传递了一个变量 domain_name
并且它产生了 3 个结果:
domain1
domain2
domain3
但我只需要过滤并获取 domain1
,因此 domain2
和 domain3
被删除。
所以我尝试了这些,但它说表达式无效。
// 1 method, gives invalid expression error
label_values(domain_name)[0]
// 2 method, gives invalid expression error
label_values(domain_name[0])
那我该怎么做呢?
这里也附上截图。
你的问题有点难懂。所以这里有两个答案:
您只希望 domain1
在模板变量中结束:
label_values(my_metric{my_label="domain1"}, my_label)
我想不出你想要这个的原因。所以我假设你真的想为这个特定的域过滤你的仪表板/面板。
您想过滤特定域的仪表板/面板:
label_values(my_metric_that_has_label_with_all_domains, domain_label_name)
不要忘记设置时间范围更改更新。
现在在面板中您可以像这样使用变量:
rate(mymetric{domain_label_name=~"$cluster"}[5m])
示例用法
所以我有一个 grafana
仪表板,我需要过滤掉一些标签。所以我正在使用 label_values
函数。
我的数据源是prometheus
所以,对于这个 label_values
函数,我传递了一个变量 domain_name
并且它产生了 3 个结果:
domain1
domain2
domain3
但我只需要过滤并获取 domain1
,因此 domain2
和 domain3
被删除。
所以我尝试了这些,但它说表达式无效。
// 1 method, gives invalid expression error
label_values(domain_name)[0]
// 2 method, gives invalid expression error
label_values(domain_name[0])
那我该怎么做呢?
这里也附上截图。
你的问题有点难懂。所以这里有两个答案:
您只希望 domain1
在模板变量中结束:
label_values(my_metric{my_label="domain1"}, my_label)
我想不出你想要这个的原因。所以我假设你真的想为这个特定的域过滤你的仪表板/面板。
您想过滤特定域的仪表板/面板:
label_values(my_metric_that_has_label_with_all_domains, domain_label_name)
不要忘记设置时间范围更改更新。
现在在面板中您可以像这样使用变量:
rate(mymetric{domain_label_name=~"$cluster"}[5m])
示例用法