У меня есть измерительная метка c, которая указывает состояние ошибки переменной номер проект репликации на зеркала :
project A
-> project A Mirror 1
-> project A Mirror 2
project B
-> project B Mirror 1
-> project B Mirror 2
...
Есть один значение на зеркало, на проект, где 1
- успешное зеркало, а 0
- сбой. Метка status
включает переменную строку сообщения об ошибке, если произошел сбой, а метка type
различает зеркала.
Полные данные для одного временного ряда могут выглядеть примерно так:
mirror_info{instance="",job="mirror-status",path="projectA",status="ok",type="a"} 1
mirror_info{instance="",job="mirror-status",path="projectA",status="ok",type="b"} 1
mirror_info{instance="",job="mirror-status",path="projectB",status="Something went wrong: full error message",type="a"} 0
mirror_info{instance="",job="mirror-status",path="projectB",status="ok",type="b"} 1
mirror_info{instance="",job="mirror-status",path="projectC",status="ok",type="a"} 1
mirror_info{instance="",job="mirror-status",path="projectC",status="ok",type="b"} 1
mirror_info{instance="",job="mirror-status",path="projectD",status="ok",type="a"} 1
mirror_info{instance="",job="mirror-status",path="projectD",status="Something different went wrong: full error message",type="b"} 0
mirror_info{instance="",job="mirror-status",path="projectE",status="ok",type="a"} 1
mirror_info{instance="",job="mirror-status",path="projectE",status="ok",type="b"} 1
Я хочу иметь возможность отображать такую таблицу:
| project | status a | status b |
| ------- | -------- | --------- |
| projectA | ok | ok |
| projectB | Something went wrong: full error message | ok |
| ... | ... | ... |
| projectD | ok | Something different went wrong: full error message |
Проблема, с которой я сталкиваюсь, заключается в том, что я не могу агрегировать path
без потери status
, и я не могу включить status
, не получая отдельной записи для каждого отдельного варианта сообщения об ошибке.
Я слишком новичок в PromQL, чтобы знать, возможно ли такое вообще, и полностью осознавая, что Prometheus может даже не быть подходящим инструментом для этого, однако это конкретное требование в данном случае находится вне моего контроля.