Прометей не возвращает данных при вычислении отношения двух показателей

Я хочу рассчитать соотношение двух показателей, но не получаю данных ...

У меня есть такие показатели, как:

fs_bytes{filesystem="/var",instance="localhost:9108",job="graphite",metric="Used"}   50.0
fs_bytes{filesystem="/var",instance="localhost:9108",job="graphite",metric="Total"}   100.0

Когда я пытаюсь выполнить какую-либо операцию (устройство, умножение, сложение, вычитание), например:

fs_bytes{instance="localhost:9108",metric="Used"} / fs_bytes{instance="localhost:9108",metric="Total"}

Прометей вернулся:

no data

Когда я запрашиваю каждую метрику отдельно в браузере выражений Prometheus, я получаю значения метрик.

Что случилось?


person Franklin Piat    schedule 28.06.2018    source источник


Ответы (1)


Когда prometheus оценивает выражение, операция неявно применяется к метрике, имеющей идентичный набор меток.

Несмотря на то, что я указал название метрики и большинство меток, Prometheus искал метрики с таким же набором меток.

Однако в этом случае две метрики имеют разные значения меток, поэтому они не могут совпадать! (у одной метрики metric="Used", у другой metric="Total". Возможно, у одной из метрик есть дополнительные метки).

Решение состоит в том, чтобы использовать ignore (или on), чтобы уменьшить набор рассматриваемых меток:

fs_bytes{instance="localhost:9108",metric="Used"} / ignoring(metric) fs_bytes{instance="localhost:9108",metric="Total"}

Прочтите прекрасное руководство! (здесь)

person Franklin Piat    schedule 28.06.2018
comment
Решение также объясняется в документации prometheus .io / docs / prometheus / latest / querying / operations /, хотя и не так четко, как в этом ответе. - person Juuso Ohtonen; 11.05.2021