JMX коннектор#
JMX коннектор позволяет получать информацию о JMX (Java Management Extensions) всех узлов кластера CedrusData. JMX предоставляет информацию о Java-процессах в которых запущены узлы CedrusData. Данный функционал полезен для мониторинга и выявления различных проблем с кластером.
Коннектор так же может быть сконфигурирован для периодической выгрузки JMX информации и ее сохранении в памяти.
Конфигурация#
Для конфигурации JMX коннектора, создайте в директории etc/catalog
файл <имя_каталога>.properties
. Например,
для создания каталога my_jmx
необходимо создать файл my_jmx.properties
. Добавьте в файл следующее содержимое:
connector.name=jmx
Для включения периодической выгрузки JMX информации добавьте следующие параметры (в качестве примера использованы
таблицы java.lang:type=Runtime
и trino.execution.scheduler:name=NodeScheduler
):
connector.name=jmx
jmx.dump-tables=java.lang:type=Runtime,trino.execution.scheduler:name=NodeScheduler
jmx.dump-period=10s
jmx.max-entries=86400
dump-tables
это разделенный запятыми список названий Managed Beans (MBean), который указывает, какие состояние
каких MBeans будет считано. Периодичность сохранения в памяти определена параметром dump-period
. Размер истории
состояний ограничен параметром max-entries
. Параметры dump-period
и max-entries
имеют значения по умолчанию
10s
и 86400
, соответственно.
Запятые в названиях MBeans должны быть экранированы (escape) c помощью двойного символа \
:
connector.name=jmx
jmx.dump-tables=trino.memory:name=general\\,type=memorypool,trino.memory:name=reserved\\,type=memorypool
Удвоение символа \
обусловлено тем, что одиночный символ \
используется для обозначения переноса строки:
connector.name=jmx
jmx.dump-tables=trino.memory:name=general\\,type=memorypool,\
trino.memory:name=reserved\\,type=memorypool
Работа с JMX коннектором#
JMX коннектор имеет две схемы.
Схема current
содержит все MBeans каждого узла кластера CedrusData. Используйте команду SHOW TABLES
для
отображения всех доступных MBeans:
SHOW TABLES FROM jmx.current;
Имена MBeans могут содержать нестандартные для имен таблиц символы. Поэтому для обращения к таблице соответствующего MBean следует использовать двойные кавычки. Так, следующий запрос отображает версии JVM для каждого узла:
SELECT node, vmname, vmversion
FROM jmx.current."java.lang:type=runtime";
node | vmname | vmversion
--------------------------------------+-----------------------------------+-----------
ddc4df17-0b8e-4843-bb14-1b8af1a7451a | Java HotSpot(TM) 64-Bit Server VM | 24.60-b09
(1 row)
Следующий запрос отображает информацию о файловых дескрипторах для каждого узла:
SELECT openfiledescriptorcount, maxfiledescriptorcount
FROM jmx.current."java.lang:type=operatingsystem";
openfiledescriptorcount | maxfiledescriptorcount
-------------------------+------------------------
329 | 10240
(1 row)
Символ *
может быть использован совместно с именем таблицы в схеме current
, позволяя опрашивать несколько MBeans
в одном запросе. Следующий запрос отображает информацию обо всех доступных пулов памяти (memory pool) в кластере:
SELECT freebytes, node, object_name
FROM jmx.current."trino.memory:*type=memorypool*";
freebytes | node | object_name
------------+---------+----------------------------------------------------------
214748364 | example | trino.memory:type=MemoryPool,name=reserved
1073741825 | example | trino.memory:type=MemoryPool,name=general
858993459 | example | trino.memory:type=MemoryPool,name=system
(3 rows)
Схема history
содержит список таблиц, для которых сконфигурирована периодическая выгрузка. Исторические таблицы
содержат все те же колонки, что и оригинальные таблицы, а так же дополнительную колонку timestamp
, которая
отображает время, в которое была произведена выгрузка:
SELECT "timestamp", "uptime" FROM jmx.history."java.lang:type=runtime";
timestamp | uptime
-------------------------+--------
2016-01-28 10:18:50.000 | 11420
2016-01-28 10:19:00.000 | 21422
2016-01-28 10:19:10.000 | 31412
(3 rows)
Поддержка SQL команд#
Коннектор поддерживает общие команды и команды чтения данных.