Establecer la variable del panel de Grafana desde el escalar de Prometheus

Establecer la variable del panel de Grafana desde el escalar de Prometheus

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_resultasí:

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

Obtengo los siguientes valores en la vista previa:

{} 2 1521669355000

El 2del 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.

información relacionada