在我的 Grafana 仪表板(以 Prometheus 作为数据源)中,我有一个自定义 $tier
变量,它允许用户从下拉列表中选择层。它被定义为:
Values separated by comma: production, stage, development
我需要通过包含缩短版本的层名称的标签来过滤 Prometheus 指标:
我在想我会创建一个隐藏变量
$shortened_tier
所以我可以在我的查询过滤器中使用它,就像这样:my_label=~"foo-$shortened_tier"
我想根据
$tier
的值来定义它:我怎么做?
最佳答案
我想出了一个解决方法,但它是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
),我可以在其中传入 $tier
并返回与字符串相同的确切值。然后我使用正则表达式来查找 dev|stage|prod
在字符串的开头,捕获该部分,然后丢弃其余部分。这具有我正在寻找的结果,值为
$shortened_tier
根据选择并分配给 $tier
的值动态更改.但是伙计,我希望 Grafana 有一个不那么老套的方法来做到这一点。
关于grafana - 如何将一个变量的值映射到 Grafana 中的另一个变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58347566/