Prometheus查询和区分大小写

时间:2018-11-15 03:28:56

标签: prometheus prometheus-alertmanager promql

我有一个查询,试图在标签上加入两个指标。 K_Status_Value == 5并且ON(macAddr)state_details {live =“ True”}

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

1 个答案:

答案 0 :(得分:0)

我可以想到两个选择

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

要引用Prometheus用户mailing list上的Ben Kochie:

  

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

在比赛中设置标志

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

up{job=~"(?i:(ProMeTHeUs))"}

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

使用记录规则:

我最初希望在摄取时使用recording rule来小写(在prometheus.yml中)。但是,目前尚未实现此功能(issue 1548