Отображение показателей для нескольких серверов на одной панели Grafana с использованием источника данных Snowflake, заполненного из Kafka

Отображение показателей для нескольких серверов на одной панели Grafana с использованием источника данных Snowflake, заполненного из Kafka

У меня есть коллекция серверов, которые отправляют метрики в одну тему kafka. Эти данные хранятся в виде строки в базе данных Snowball в следующем формате:

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

Я использую этот плагин для создания снежинок:https://github.com/michelin/snowflake-grafana-datasource

Я пытаюсь представить эту disk_utilметрику на одной панели Grafana.

Я создал переменную, названную locationsс помощью этого запроса:

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

Панельный запрос:

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

Проблема в том, что я не знаю, как сделать так, чтобы каждое место отображалось как отдельная сюжетная линия на одной панели, поскольку его запрос объединяет все в одну линию, когда я выбираю несколько мест.

решение1

Просто добавьте столбец местоположения в ваш выбор, и Grafana сможет различать метрики.

Что-то вроде этого должно помочь:

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

Связанный контент