У меня есть счетчик Prometheus, для которого я хочу получить его показатель в диапазоне времени (реальная цель - сумма показатель , ииногда используйте histogram_quantile для метрики гистограммы).
Однако у меня есть несколько машин, на которых выполняется такая работа, каждая из которых устанавливает свою собственную метку instance .Это приводит к тому, что различные операции inc с этим счетчиком на разных машинах создают разные объекты счетчика, поскольку комбинация значений меток уникальна.
Проблема заключается в том, что rate () работает отдельно для каждой такой встречной сущности.
В результате счетные сущности с уникальными комбинациями не учитываются для rate () .
Например, если у меня есть:
mycounter{aaa="1",instance="1.2.3.4:6666",job="job1"} value: 1
mycounter{aaa="2",instance="1.2.3.4:6666",job="job1"} value: 1
mycounter{aaa="2",instance="1.2.3.4:7777",job="job1"} value: 1
mycounter{aaa="1",instance="5.5.5.5:6666",job="job1"} value: 1
Все счетчики являются уникальными, поэтому они получают значения 1.
Если метки счетчиков всегда уникальны (поступают с разных компьютеров), rate (mycounter [5m]) в этом случае получит значения 0, а sum (rate (mycounter [5m]))) получит 0, а это не то, что мне нужно!
Я хочу игнорировать экземпляр пометьте так, чтобы он ссылался на эти операции mycounter inc так, как они были выполнены на одной и той же контр-сущности.
Другими словами, я ожидаю иметь только 2 сущности (они могут иметь общую * 1035)* экземпляр значение или нет яnstance label):
mycounter{aaa="1", job="job1"} value: 2
mycounter{aaa="2", job="job1"} value: 2
В этом случае операция inc на новой машине (с существующим значением aaa ) приведет к увеличению некоторого счетчика объектовдобавление новой сущности со значением 1 и rate () получит реальные ставки для каждого, поэтому мы можем sum () их.Как я могу это сделать?
Я сделал несколько попыток, чтобы решить ее, но все не удалось:
- Выполнение rate () из sum () - не удаетсяиз-за несоответствия типов ...
- Удаление автоматической метки instance , используя metric_relabel_configswork с action: labeldrop в конфигурации, но затем он назначаетзначение адреса по умолчанию.
- Изменение всех значений instance на общее с использованием metric_relabel_configswork с заменой , но, похоже, один из объектовперезаписывает все остальные, так что это не поможет ...
Есть предложения?
Версия Prometheus: 2.3.2
Заранее спасибо!