Установить переменную панели инструментов Grafana из скаляра Prometheus

Установить переменную панели инструментов Grafana из скаляра Prometheus

Мне нужно использовать количество ядер ЦП в нескольких вычислениях на панели Grafana, и я надеялся выполнить запрос один раз и сохранить в переменной. Я не могу найти способ вернуть данные в формате, который примет Grafana.

Ошибка Графаны:

Template variables could not be initialized: parse error at char 1: vector selector must contain label matchers or metric name

Я пробовал (PromQL):

count(node_cpu{instance="$host",mode="system"})

Возврат:

Element {}, Value 2

Также (PromQL):

scalar(count(node_cpu{instance="$host",mode="system"}))

Возврат:

Element scalar, Value 2

Используем функцию Grafana query_resultследующим образом:

query_result(count(node_cpu{instance="$host",mode="system"}))

В предварительном просмотре я получаю следующие значения:

{} 2 1521669355000

Тот, что 2посередине, мне и нужен.

Есть идеи, как это реализовать?

решение1

Вы можете использовать поле Regex, чтобы получить свое значение, в вашем случае:/.* (.*) .*/

решение2

Это сработает, если вы поместите это в поле регулярных выражений в Grafana

/.*\s(.*)\s.*/

решение3

Вам следует избегать скаляров для таких вещей, поскольку это не сработает, если, например, вы хотите построить график чего-то с двумя хостами, у которых может быть разное количество ядер. Я бы предложил делать это внутри каждого выражения запроса, а не через переменную шаблона.

Связанный контент