Мониторинг с использованием JMX#

Trino предоставляет большое количество различных метрик через Java Management Extensions (JMX).

Необходимо включить JMX, задав порты, используемые реестром RMI и сервером, в файле config.properties:

jmx.rmiregistry.port=9080
jmx.rmiserver.port=9081
  • jmx.rmiregistry.port: Указывает порт для JMX RMI registry. JMX-клиенты должны подключаться к этому порту.

  • jmx.rmiserver.port: Указывает порт для JMX RMI server. Trino экспортирует множество метрик, полезных для мониторинга через JMX.

Дополнительно необходимо настроить системное свойство Java в jvm.config с указанием порта RMI-сервера:

-Dcom.sun.management.jmxremote.rmi.port=9081

JConsole (входит в состав JDK), VisualVM, а также многие другие инструменты могут использоваться для доступа к метрикам в клиентском приложении. Многие системы мониторинга поддерживают JMX. Также можно использовать Коннектор JMX и выполнять запросы к метрикам с помощью SQL.

Многие из этих JMX-метрик представляют собой сложные объекты, такие как CounterStat, которые содержат набор связанных метрик. Например, InputPositions включает InputPositions.TotalCount, InputPositions.OneMinute.Count и другие.

Ниже приведена небольшая часть доступных метрик.

JVM#

  • Размер heap: java.lang:type=Memory:HeapMemoryUsage.used

  • Количество потоков: java.lang:type=Threading:ThreadCount

Кластер и узлы Trino#

  • Активные узлы: trino.failuredetector:name=HeartbeatFailureDetector:ActiveCount

  • Свободная память (общий пул): trino.memory:type=ClusterMemoryPool:name=general:FreeDistributedBytes

  • Накопленное количество (с момента запуска Trino) запросов, завершённых из-за нехватки памяти: trino.memory:name=ClusterMemoryManager:QueriesKilledDueToOutOfMemory

Запросы Trino#

  • Активные запросы (выполняются или находятся в очереди): trino.execution:name=QueryManager:RunningQueries

  • Запущенные запросы: trino.execution:name=QueryManager:StartedQueries.FiveMinute.Count

  • Ошибочные запросы за последние 5 минут (все): trino.execution:name=QueryManager:FailedQueries.FiveMinute.Count

  • Ошибочные запросы за последние 5 минут (внутренние): trino.execution:name=QueryManager:InternalFailures.FiveMinute.Count

  • Ошибочные запросы за последние 5 минут (внешние): trino.execution:name=QueryManager:ExternalFailures.FiveMinute.Count

  • Ошибочные запросы (пользовательские): trino.execution:name=QueryManager:UserErrorFailures.FiveMinute.Count

  • Задержка выполнения (P50): trino.execution:name=QueryManager:ExecutionTime.FiveMinutes.P50

  • Скорость входящих данных (P90): trino.execution:name=QueryManager:WallInputBytesRate.FiveMinutes.P90

Задачи Trino#

  • Объём входных данных: trino.execution:name=SqlTaskManager:InputDataSize.FiveMinute.Count

  • Количество входных строк: trino.execution:name=SqlTaskManager:InputPositions.FiveMinute.Count

Коннекторы#

Многие коннекторы предоставляют собственные метрики. Названия метрик обычно начинаются с trino.plugin.