在我的Grafana仪表板(以Prometheus作为数据源)中,我有一个自定义$tier
变量,该变量允许用户从下拉菜单中选择层。定义为:
Values separated by comma: production, stage, development
我需要通过标签来过滤Prometheus指标,该标签包含层名称的缩短版本:
我当时想创建一个隐藏变量$shortened_tier
,以便可以在查询过滤器中使用它,如下所示:
my_label=~"foo-$shortened_tier"
我想根据$tier
的值进行定义:
我该怎么做?
答案 0 :(得分:0)
我想出了一个解决方法,但这是suuuuper hacky:
Name: shortened_tier
Type: Query
Data Source: Prometheus
Query: label_values(up{env="$tier"}, env)
Regex: (dev|stage|prod).*
我只想做Query: $tier
,但是由于Grafana不允许我这样做,所以我不得不使用完全不同的指标(up
),我可以在其中传递{{1 },并返回与字符串相同的精确值。然后,我使用正则表达式仅在字符串的开头查找$tier
,捕获该部分,然后丢弃其余部分。
这是我要寻找的结果,dev|stage|prod
的值根据所选并分配给$shortened_tier
的值而动态变化。但是, man 我希望Grafana可以做到这一点。