Necesito usar la cantidad de núcleos de CPU en múltiples cálculos en un panel de Grafana y esperaba realizar la consulta una vez y almacenarla en una variable. No puedo encontrar una manera de devolver los datos en un formato que Grafana acepte.
Error de Grafana:
Template variables could not be initialized: parse error at char 1: vector selector must contain label matchers or metric name
Lo he probado (PromQL):
count(node_cpu{instance="$host",mode="system"})
Devoluciones:
Element {}, Value 2
También (PromQL):
scalar(count(node_cpu{instance="$host",mode="system"}))
Devoluciones:
Element scalar, Value 2
Usando la función de Grafana query_result
así:
query_result(count(node_cpu{instance="$host",mode="system"}))
Obtengo los siguientes valores en la vista previa:
{} 2 1521669355000
El 2
del medio es el que quiero.
¿Alguna idea de cómo hacer que esto funcione?
Respuesta1
Puede utilizar el campo Regex para obtener su valor, en su caso:/.* (.*) .*/
Respuesta2
Esto funciona si pones esto en el cuadro de expresiones regulares en grafana
/.*\s(.*)\s.*/
Respuesta3
Deberías evitar los escalares para cosas como esta, ya que no funciona si, por ejemplo, quieres graficar algo con dos hosts que pueden tener diferentes números de núcleos. Sugeriría hacer esto dentro de cada expresión de consulta, en lugar de mediante una variable de plantilla.