Мне нужно использовать количество ядер ЦП в нескольких вычислениях на панели 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
Вам следует избегать скаляров для таких вещей, поскольку это не сработает, если, например, вы хотите построить график чего-то с двумя хостами, у которых может быть разное количество ядер. Я бы предложил делать это внутри каждого выражения запроса, а не через переменную шаблона.