
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_util
métrica en un único panel de grafana.
He creado una variable nombrada locations
usando 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})