Мониторинг с использованием 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.