Запрос Prometheus и чувствительность к регистру

У меня есть один запрос, в котором я пытаюсь объединить две метрики на этикетке. K_Status_Value == 5 и ON (macAddr) state_details {live = "True"}

Ярлык macAddr присутствует в обеих метриках. Значение метки отображается в «K_Status_Value» иногда в верхнем регистре (78: 32: 5A: 29: 2F: 0D), а иногда в нижнем регистре (78: 72: 5d: 39: 2f: 0a), но всегда отображается в верхнем регистре. случай для 'state_details'. Есть ли способ сделать значение метки macAddr нечувствительным к регистру в запросе, чтобы не пропустить случаи, когда регистры не совпадают?


person Arnav Bose    schedule 15.11.2018    source источник


Ответы (1)


Я могу придумать два варианта

Использование модификатора соответствия регулярному выражению i:

Чтобы процитировать Бена Кочи из списка рассылки Prometheus:

Сопоставление регулярных выражений в Prometheus основано на RE2. Я думаю, что вы можете установить флаги в совпадении, используя (?i(matchstring))

Это действительно работает: этому показателю up{instance="localhost:9090",job="prometheus"} соответствует это выражение:

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

Эта подсказка не поможет в описанном выше случае. Не поможет ни присоединение к on (xx), ни к group_left.

Использование правила записи:

Изначально я надеялся использовать правило записи для строчных букв во время загрузки (в prometheus.yml). Однако эти функции в настоящее время не реализованы (проблема 1548)

person Franklin Piat    schedule 17.07.2019