Anzeige von Metriken für mehrere Server auf einem einzigen Grafana-Panel unter Verwendung einer Snowflake-Datenquelle, die von Kafka gefüllt wird

Anzeige von Metriken für mehrere Server auf einem einzigen Grafana-Panel unter Verwendung einer Snowflake-Datenquelle, die von Kafka gefüllt wird

Ich habe eine Sammlung von Servern, die Metriken an ein einzelnes Kafka-Thema übermitteln. Diese Daten werden als Zeile in einer Snowflake-Datenbank in diesem Format gespeichert:

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

Ich verwende dieses Snowflake-Plugin:https://github.com/michelin/snowflake-grafana-datasource

Ich versuche, diese disk_utilMetrik auf einem einzelnen Grafana-Panel darzustellen.

Ich habe eine Variable mit dem Namen locationsdieser Abfrage erstellt:

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

Die Panel-Abfrage:

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

Das Problem besteht darin, dass ich nicht weiß, wie ich es schaffe, jeden Standort als eigenen Handlungsstrang in einem Panel anzuzeigen, da seine Abfrage alles in einer Zeile zusammenfasst, wenn ich mehrere Standorte auswähle.

Antwort1

Fügen Sie Ihrer Auswahl einfach eine Standortspalte hinzu, damit Grafana tatsächlich zwischen den Metriken unterscheiden kann.

So etwas sollte helfen:

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

verwandte Informationen