Мне нужно использовать количество ядер ЦП в нескольких вычислениях на панели управления Grafana, и я надеялся выполнить запрос один раз и сохранить в переменной. Я не могу найти способ вернуть данные в формате, приемлемом для 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's query_result
работают так:
query_result(count(node_cpu{instance="$host",mode="system"}))
В предварительном просмотре я получаю следующие значения:
{} 2 1521669355000
В 2
посередине тот, который я хочу.
Есть идеи, как это сделать?
Вам следует избегать скаляров для таких вещей, поскольку это не работает, если, например, вы хотите построить график с двумя хостами, которые могут иметь разное количество ядер. Я бы посоветовал делать это внутри каждого выражения запроса, а не через переменную шаблона.
Вы можете использовать поле Regex, чтобы получить свое значение, в вашем случае: /.* (.*) .*/
Это работает, если вы поместите это в поле регулярного выражения в графане
/.*\s(.*)\s.*/