【发布时间】:2021-03-29 13:22:28
【问题描述】:
我有一个自定义 Grafana 变量 $var,我在 Prometheus 查询中使用它来检索一些数据。根据此变量的值,我正在使用的指标的标签值应相应更改。换句话说,我想在正则表达式中对这个变量使用条件。请参见下面的示例:
some_metric{my_label=~"(?($var=val1)label_val1|label_val2)"}
如果$var 等于val1,上述查询将导致my_label 等于label_val1,而在所有其他情况下label_val2。但是,Prometheus 用于正则表达式的 RE2 语法似乎不支持这一点。有没有其他方法可以实现这种行为?
注意:$var 变量控制着我仪表板中的大多数其他变量,并且它已经有一个 key/value mapping,所以我不能采用这种解决方法。我正在考虑创建一个额外的自定义变量,它也依赖于$var,但是 Grafana 似乎也不支持这个。
【问题讨论】:
-
RE2 不支持任何环视、条件等。您不能使用这样的普通正则表达式方法。
-
@WiktorStribiżew 在 Prometheus 中是否有任何解决方法?
标签: regex prometheus grafana promql re2