
Мониторинг 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, это лучшая архитектура:
- Давать возможностьJMX Экспортер→ Прометей → Графана
- ИспользоватьГрафана Трино Плагин→ Dashboards SQL → Живые запросы
- МониторНесколько кластеровиз одного места
- Добавить оповещения, тенденции, исторический анализ
- Поделиться мониторными панелями с командами
Теперь это мой предпочтительный способ управления мониторингом звезд в больших условиях.
Окончательная архитектура резюме
Starburst --> JMX Exporter --> Prometheus --> Grafana Panels + Trino Plugin SQL Queries --> Slack / Alerts / Visual Dashboards
Оригинал