Мониторинг Master Starburst с плагином Grafana и Trino

Мониторинг Master Starburst с плагином Grafana и Trino

11 июня 2025 г.

Starburst - это мощный распределенный SQL -двигатель, который позволяет командам запросить данные по нескольким источникам. Однако, когда дело доходит доМониторинг кластеров Starburst, есть некоторые ограничения:

  • Интернет -интерфейс Starburst обеспечивает базовое здоровье кластера
  • API Starburst обнажает некоторые метрики системы
  • Но полные показатели (ЦП, JVM, память, общие вопросы, медленные запросы и т. Д.) Требуют дополнительную интеграцию

Мы управляем50+ Starburst ClustersЗапуск по нескольким средам (OpenShift, Kubernetes, Linux).

Вручную, вручную в интервью Starburst UI или CLI, чтобы запустить запросы и показатели проверки, стало слишком сложным.

Вот почему мы придумываем решение, используя:

  • ГрафанаМонитоны
  • Графана Трино Плагин
  • Прометей + экспортер JMX→ Полный экспорт метрик звезд

Почему местные метрики Starburst ограничены

Из коробки Starburst обнажает основные метрики системы:

  • Активные запросы
  • Работающие узлы
  • Задержка запроса
  • Ошибки запроса

Но для более глубокого мониторинга - вам нужно:

  • Метрики JVM (использование процессора, память, GC, потоки)
  • Подробные показатели запросов (счет, задержка, медленные запросы)
  • Использование ресурсов на кластер
  • Тенденции в кластере с течением времени
  • Предупреждение о пользовательских порогах

Starburst не выставляет все эти метрики непосредственно в пользовательском интерфейсе или API. Вот почему нам нужен дополнительный конвейер метрик.


Архитектура решения

Чтобы полностью контролировать Starburst, мы построили эту архитектуру:

+---------------------+    JMX Exporter    +---------------+
| Starburst Cluster 1 |  --> Port 8081 -->  | Prometheus    |
+---------------------+                   +---------------+

+---------------------+    JMX Exporter    +---------------+
| Starburst Cluster N |  --> Port 8081 -->  | Prometheus    |
+---------------------+                   +---------------+

                Prometheus --> Grafana --> Dashboards / Alerts

                + Grafana Trino Plugin --> SQL-based dashboards

Компоненты:

  • JMX Экспортер→ Разоблачает метрики запроса Starburst JVM + для Prometheus
  • Прометей→ скрещивает все кластеры Starburst через регулярные промежутки времени
  • Графана→ визуализирует метрики
  • Графана Трино Плагин→ позволяет напрямую запускать SQL -запросы на Starburst и показать результаты в панелях Grafana

Зачем использовать плагин Grafana Trino?

АГрафана Трино Плагинчрезвычайно полезен для мониторинга звезд, потому что:

  • Он соединяет Графанапрямо в StarburstВ качестве источника данных SQL
  • Вы можете бежатьЗапросы Starburst SQLВ панелях Графана
  • Вы можете обновлять результаты динамически
  • Вы можете построить панель мониторинга сПанели на кластер
  • Это масштабируетсяМногочисленные кластеры легко

Без этого плагина вам нужно:

  • Вручную войдите в каждый пользовательский интерфейс Starburst
  • Запустите один и тот же запрос несколько раз
  • Результаты вручную скопируют/вставьте
  • Очень медленный и не масштабируемый

С плагином Grafana Trino:

  • Настройте каждый кластер как источник данных Trino в Grafana
  • Напишите SQL -запросы один раз
  • Сохраните панели мониторинга
  • Обновить все кластеры одним щелчком
  • Добавить оповещения и тенденции → без ручной работы

Плагин Grafana Trino - Обзор

АПлагин данных Trino DataSourceПозволяет запросить и визуализировать данные Trino (и Starburst) внутри Grafana.

Установка

Запустите Grafana с плагином, используя Docker:

docker run -d -p 3000:3000 \
  -v "$(pwd):/var/lib/grafana/plugins/trino" \
  -e "GF_PLUGINS_ALLOW_LOADING_UNSIGNED_PLUGINS=trino-datasource" \
  --name=grafana \
  grafana/grafana-oss

Функции

  • Аутентификация: HTTP Basic, TLS Client, OAuth, JWT
  • Редактор RAW SQL - запустите любой запрос
  • Работает сStarburst OSS, Galaxy и Enterprise
  • Поддерживаемые макросы → полезны для панелей временных рядов

Макросы поддерживаются

  • $timeFrom($column)- Нижняя граница временного диапазона
  • $timeTo($column)- Верхняя граница временного диапазона
  • $timeGroup($column, $interval)- Группа по времени
  • $dateFilter($column)- Фильтр диапазона дат
  • $timeFilter($column)- Фильтр диапазона временных метров
  • $unixEpochFilter($column)- диапазон временных метков Unix

Пример запроса с использованием макросов

SELECT
  atimestamp AS time,
  metric_value AS value
FROM starburst_metrics_table
WHERE $__timeFilter(atimestamp) AND cluster_name IN($cluster)
ORDER BY atimestamp ASC

Как это настроить

1. Включить экспортер JMX в Starburst

Настройте агент JMX в вашем развертывании Starburst:

start.args=-javaagent:/opt/starburst/jmx_prometheus_javaagent.jar=8081:/opt/starburst/jmx_exporter_config.yaml

2. Настройте Prometheus

Добавьте все свои кластеры Starburst:

- job_name: 'starburst'
  static_configs:
    - targets: ['starburst-cluster-1:8081', 'starburst-cluster-2:8081']

3. Установите плагин Grafana Trino

  • Добавить плагин Trino в Grafana → Источники данных
  • Предоставьте URL -адреса кластера Starburst Cluster +
  • Тестовое соединение

4. Стройте панели мониторинга

  • Создать панель → Выберите источник данных плагина Trino
  • Напишите свой запрос Starburst SQL:
SELECT state, count(*) FROM system.runtime.queries GROUP BY state
  • Сохранить панель → Использовать макросы для фильтров времени
  • Стройте панели мониторинга с несколькими панелями на кластер

Преимущества

  • МониторМногочисленные кластеры Starburstот одной панели панели Grafana
  • Запустите Starburst SQL Запросы как панели →
  • КомбинироватьPrometheus Metrics + SQL Panels
  • Полный процессор, JVM, память, статистика запроса
  • Добавить предупреждения о Slack / Pagerduty для аномалий Starburst

Ограничения и советы

  • Нативные метрики Starburst ограничены → тщательно настроить экспортер JMX
  • Плагин Grafana TrinoЛучше всего для панелей SQL→ Использовать панели Prometheus для метрик JVM
  • Тщательно тестируйте интервалы царапины → Избегайте перегрузки кластеров
  • Используйте макросы, чтобы сделать панели мониторинга динамичной и повторно используемых в кластерах

Заключение

Если ты хочешьПолный мониторинг Starburst, это лучшая архитектура:

  1. Давать возможностьJMX Экспортер→ Прометей → Графана
  2. ИспользоватьГрафана Трино Плагин→ Dashboards SQL → Живые запросы
  3. МониторНесколько кластеровиз одного места
  4. Добавить оповещения, тенденции, исторический анализ
  5. Поделиться мониторными панелями с командами

Теперь это мой предпочтительный способ управления мониторингом звезд в больших условиях.


Окончательная архитектура резюме

Starburst --> JMX Exporter --> Prometheus --> Grafana Panels + Trino Plugin SQL Queries --> Slack / Alerts / Visual Dashboards


Оригинал
PREVIOUS ARTICLE
NEXT ARTICLE