Prometheus 查询和区分大小写

Arn*_*ose 6 prometheus promql prometheus-alertmanager

我有一个查询,我试图在一个标签上连接两个指标。K_Status_Value == 5 和 ON(macAddr) state_details{live="True"}

标签 macAddr 出现在两个指标中。标签的值有时以大写 (78:32:5A:29:2F:0D) 有时以小写 (78:72:5d:39:2f:0a) 出现在“K_Status_Value”中,但始终以大写出现'state_details' 的情况。有什么方法可以使查询中的标签 macAddr 值不区分大小写,以便我不会错过案例不匹配的情况?

Fra*_*iat 14

我能想到两个选择

使用正则表达式“i”匹配修饰符:

在 Prometheus 用户邮件列表中引用 Ben Kochie :

Prometheus 中的正则表达式匹配基于RE2 我认为您可以使用(?i(matchstring))

它确实有效:这个指标up{instance="localhost:9090",job="prometheus"}与这个表达式匹配:

up{job=~"(?i:(ProMeTHeUs))"}
Run Code Online (Sandbox Code Playgroud)

在上述情况下,此提示无济于事。加入on (xx)group_left.

使用录制规则:

我最初希望使用记录规则在摄取时间(in prometheus.yml)小写。但是,此功能目前尚未实现(issue 1548