Exibir métrica para vários servidores em um único painel grafana, usando uma fonte de dados Snowflake preenchida a partir do Kafka

Exibir métrica para vários servidores em um único painel grafana, usando uma fonte de dados Snowflake preenchida a partir do Kafka

Tenho uma coleção de servidores que enviam métricas para um único tópico kafka. Esses dados são armazenados como uma linha em um banco de dados floco de neve neste formato:

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

Estou usando este plugin de floco de neve:https://github.com/michelin/snowflake-grafana-datasource

O que estou tentando fazer é representar essa disk_utilmétrica em um único painel de grafana.

Eu criei uma variável chamada locationsusando esta consulta:

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

A consulta do painel:

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})

O problema é que não sei como fazer com que cada local apareça como seu próprio enredo em um painel, pois sua consulta mistura tudo em uma linha quando seleciono vários locais.

Responder1

Basta adicionar uma coluna de localização à sua seleção para que o Grafana possa realmente diferenciar as métricas.

Algo assim deve ajudar:

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})

informação relacionada