通过 grafana 变量将正则表达式传递给普罗米修斯查询
Passing regexes to prometheus query via grafana variables
我正在尝试通过 grafana 变量将自定义变量传递给 prometheus。
我在grafana中设置的值如下:
.+
(作为自定义 All
变量)
eu.+
us.+
变量在查询中使用,例如:
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} 才能将正则表达式转换为 运行。
我正在尝试通过 grafana 变量将自定义变量传递给 prometheus。
我在grafana中设置的值如下:
.+
(作为自定义All
变量)eu.+
us.+
变量在查询中使用,例如:
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} 才能将正则表达式转换为 运行。