
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_util
métrica em um único painel de grafana.
Eu criei uma variável chamada locations
usando 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})