JMX#
CedrusData Catalog позволяет управлять поведение процесса и экспортировать различные метрики через интерфейс Java Management Extensions (JMX).
Настройка#
По умолчанию JMX доступен только для JMX-клиентов, запущенных на том же хосте, что и CedrusData Catalog.
Для работы с JMX с удаленных JMX-клиентов необходимо явно указать порт, на котором CedrusData Catalog запустит JMX агента:
Если вы хотите работать с JMX по протоколу RMI, необходимо также задать порт RMI с помощью параметра конфигурации jmx.remote-rmi-port
.
Данный порт может иметь такое же значение, как и jmx.remote-port
, или отличаться от последнего:
Если задан параметр jmx.remote-rmi-port
, вы также должны обязательно задать параметр JVM com.sun.management.jmxremote.rmi.port
в файле etc/jvm.config
.
Оба параметры должны иметь одинаковые значения.
Параметр каталога jmx.remote-port
семантически эквивалентен параметру JVM com.sun.management.jmxremote.port
,
а параметр каталога jmx.remote-rmi-port
семантически эквивалентен параметру JVM com.sun.management.jmxremote.rmi.port
.
Если вы запускаете каталог с данными параметрами JVM (файл etc/jvm.config
), то соответствующие параметры конфигурации
каталога должны иметь идентичные значения. В противном случае запуск каталога будет завершен с ошибкой.
Например, если вы добавили следующую конфигурацию в etc/jvm.config
:
То в etc/config.properties
обязательно должны быть заданы следующие параметры:
Используйте параметры JVM для конфигурации JMX, если вы хотите задать дополнительную конфигурацию JMX, которая недоступна через etc/config.properties
.
Например, если вы хотите задать пароль для подключения к JMX, или включить SSL. Полный список параметров JVM для JMX доступен в
документации Java.
Полезные MBean#
Ниже приведен список некоторых часто используемых MBean.
Название |
Описание |
---|---|
|
Статистика обращения к каталогу через API. |
|
Статистика обращения к каталогу через протокол Iceberg REST Catalog. |
|
Статистика кэша пользователей. |
|
Статистика кэша таблиц Iceberg. |
|
Статистика встроенного HTTP сервера. |
|
Детальные статистики встроенного HTTP сервера, предоставляемые библиотекой Jetty. |
|
MBean для получения дампа потоков (thread dump). |
|
Встроенные MBean для управления JVM. |
Пример подключения из JConsole#
JConsole — это встроенная утилита Java, которая позволяет управлять Java-процессами через JMX.
Данный пример показывает как подключиться из jconsole
к CedrusData Catalog, запущенному в Docker-контейнере.
Убедитесь, что у вас установлен Docker Server, и команда
docker
не требуетsudo
Создайте файл конфигурации
config.properties
со включенным JMX-агентом:Запустите контейнер CedrusData Catalog:
Запустите JConsole (необходим установленный JDK) и подключитесь к процессу по адресу
localhost:1099
:(при необходимости) Остановите контейнер и удалите ненужные ресурсы: