Muestre métricas para múltiples servidores en un solo panel de Grafana, utilizando una fuente de datos Snowflake completada desde Kafka.

Muestre métricas para múltiples servidores en un solo panel de Grafana, utilizando una fuente de datos Snowflake completada desde Kafka.

Tengo una colección de servidores que envían métricas a un único tema de Kafka. Estos datos se almacenan como una fila en una base de datos de copos de nieve en este formato:

{
  "disk_util": 47.7,
  "location": "location1",
  "timestamp": "1683703169378"
}

Estoy usando este complemento de copo de nieve:https://github.com/michelin/snowflake-grafana-datasource

Lo que intento hacer es representar esta disk_utilmétrica en un único panel de grafana.

He creado una variable nombrada locationsusando esta consulta:

SELECT LOWER(JSON_EXTRACT_PATH_TEXT(RECORDS, 'location')) FROM METRICS

La consulta del panel:

SELECT
  INSERT_TIME as time,
  to_number(JSON_EXTRACT_PATH_TEXT(RECORDS, 'disk_util'), 10, 1)
FROM
  METRICS
WHERE
  $__timeFilter(INSERT_TIME)
AND
  JSON_EXTRACT_PATH_TEXT(RECORDS, 'location') IN (${locations:singlequote})

El problema es que no sé cómo hacer que cada ubicación aparezca como su propia trama en un panel, ya que su consulta lo combina todo en una línea cuando selecciono varias ubicaciones.

Respuesta1

Simplemente agregue la columna de ubicación a su selección, para que Grafana pueda diferenciar entre métricas.

Algo como esto debería ayudar:

SELECT
  INSERT_TIME as time,
  to_number(JSON_EXTRACT_PATH_TEXT(RECORDS, 'disk_util'), 10, 1),
  JSON_EXTRACT_PATH_TEXT(RECORDS, 'location')
FROM
  METRICS
WHERE
  $__timeFilter(INSERT_TIME)
AND
  JSON_EXTRACT_PATH_TEXT(RECORDS, 'location') IN (${locations:singlequote})

información relacionada