通过 grafana 变量将正则表达式传递给普罗米修斯查询

Passing regexes to prometheus query via grafana variables

我正在尝试通过 grafana 变量将自定义变量传递给 prometheus。

我在grafana中设置的值如下:

变量在查询中使用,例如:

some_metric{availability_zone=~"$az", ...}

All 变量按预期工作,原始 eu-.+ 值等直接放入查询时也可以正常工作 - 但是当通过下拉列表分配变量时,不会返回任何指标.例如:

some_metric{availability_zone=~"eu.+", ...}

..正确匹配所有带有标签的指标,例如 availability_zone="eu-west-1"

我试过在自定义值中转义和不转义,但是对于两个自定义值都没有返回任何指标。

这里有什么问题?

要使 PromQL 在匹配标签时使用正则表达式,您必须使用 =~ 而不是 =

您的查询应如下所示:

some_metric{availability_zone=~"$az", ...}

执行此操作的方法似乎是:

some_metric{availability_zone=~"${az:pipe}", ...}

这两个 "gotchas" 是您需要正则表达式比较“=~”和 ${variable:pipe} 才能将正则表达式转换为 运行。