Результат запроса фильтра Прометея с использованием меток в результате - PullRequest
0 голосов
/ 26 февраля 2020

Я пытаюсь создать API, который может принимать входные данные и фильтровать данные на основе входных данных, которые я предоставляю. Скажем, мой ввод будет примерно таким,

{
 "node":"IPAddress:9100",
 "cpu":"0"
}

И мой запрос Прометея будет (100 - 100 * node_cpu_seconds_total {mode = "idle"}) / node_cpu_seconds_total. Это дает мне использование процессора всеми целями.

Я хочу отфильтровать данные, относящиеся к цели, которые я даю в качестве узла для моего API-оболочки. Так есть ли какая-либо функция или способ, которым я всегда могу поставить фильтр на результат запроса и получить данные от Прометея.

Например, я хочу сделать что-то вроде

((100 - 100*node_cpu_seconds_total{mode="idle"})/node_cpu_seconds_total){instance="IPAddress:9100"}

Так что я получаю использование процессора только для моего узла. Я знаю, что мы можем ввести подробности экземпляра как

node_cpu_seconds_total{mode="idle",instance="prometheus"}

Но для разных запросов я должен разместить фильтр, который я даю моему api, в разных позициях, следовательно, если есть способ фильтровать один раз, я получить мой результат в конце, это будет достаточно для моего требования.

Есть ли способ сделать это?

1 Ответ

0 голосов
/ 27 февраля 2020

Я нашел способ сделать это с помощью оператора and. мой запрос теперь выглядит так:

((100 - 100*node_cpu_seconds_total{mode="idle"})/node_cpu_seconds_total) and ({instance="localhost:9100"})

Это фильтрует мои данные с помощью фильтра, который я даю в конце.

...