Tomcat JMX

Материал из Документация Ключ-АСТРОМ
Версия от 00:29, 29 сентября 2026; Azubarev (обсуждение | вклад) (Новая страница: «= Tomcat JMX = Расширение предназначено для сбора показателей пулов подключений, пулов потоков и обработки веб-запросов Apache Tomcat через JMX. Идентификатор: <code>ru.ruscomtech.extension.jmx-tomcat-cp</code> == Возможности == Расширение выполняет: * мониторинг пулов подключений Tomcat; *...»)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)

Tomcat JMX

Расширение предназначено для сбора показателей пулов подключений, пулов потоков и обработки веб-запросов Apache Tomcat через JMX.

Идентификатор: ru.ruscomtech.extension.jmx-tomcat-cp

Возможности

Расширение выполняет:

  • мониторинг пулов подключений Tomcat;
  • сбор статистики веб-запросов и ошибок;
  • мониторинг загрузки пулов потоков;
  • обнаружение зависших потоков;
  • расчёт доступных подключений и текущей загрузки пула;
  • создание отдельных сущностей для пулов подключений;
  • связывание пулов подключений с процессами Tomcat;
  • формирование готовых обзорных панелей.

Требования

Перед настройкой расширения убедитесь, что:

  • ЕдиныйАгент установлен на хосте с процессом Tomcat;
  • активирована функция Java Metric Extensions 2.0 (JMX);
  • после первого включения функции процесс Tomcat перезапущен;
  • необходимые MBeans зарегистрированы в домене Catalina;
  • для сбора метрик пулов подключений используется стандартная реализация пула подключений Tomcat.

Расширение получает данные непосредственно из контролируемого Java-процесса. Отдельно настраивать удалённый адрес, порт или учётную запись JMX не требуется.

Используемые MBeans

Для пулов подключений используются MBeans:

Catalina:type=DataSource,name=*,class=*,context=*,host=*
Catalina:type=DataSource,name=*,class=*

Вторая форма используется для глобальных источников данных, у которых отсутствуют свойства context и host.

Для пулов потоков:

Catalina:type=ThreadPool,name=*,*

Для статистики веб-запросов:

Catalina:type=GlobalRequestProcessor,name=*,*

Для зависших потоков:

Catalina:type=Valve,name=StuckThreadDetectionValve,host=*,*

Метрика зависших потоков доступна только при использовании StuckThreadDetectionValve.

Установка и настройка

  1. Загрузите пакет расширения в Ключ-АСТРОМ.
  2. Убедитесь, что на хосте с Tomcat установлен и подключён ЕдиныйАгент.
  3. В настройках функций ЕдиногоАгента включите Java Metric Extensions 2.0 (JMX).
  4. Перезапустите процесс Tomcat после первого включения функции.
  5. Создайте конфигурацию расширения.
  6. Выберите необходимые наборы метрик.
  7. Ограничьте область действия конфигурации нужными хостами или группами хостов.
  8. Сохраните и активируйте конфигурацию.

Наборы метрик

Набор Описание
key-metrics Основные показатели пула: активные, созданные, свободные и ожидающие подключения.
limits Настроенные ограничения пула подключений.
additional-metrics Количество полученных, возвращённых, освобождённых и повторно подключённых соединений.
web-requests Количество запросов, ошибок, переданных данных и время обработки.
thread-pools Текущее и максимальное количество потоков, а также количество занятых потоков.
stuck-threads Количество зависших потоков Tomcat.

Рекомендуется сначала включить наборы key-metrics, web-requests и thread-pools. Остальные наборы можно подключить при необходимости.

Основные метрики

Группа Примеры метрик Описание
Пулы подключений tomcat.connectionPool.activeConnections
tomcat.connectionPool.idleConnections
tomcat.connectionPool.numWaiters
Активные, свободные и ожидающие подключения.
Ограничения пула tomcat.connectionPool.maxActive
tomcat.connectionPool.maxTotal
tomcat.connectionPool.maxWait
Максимальное количество подключений и время ожидания.
Веб-запросы tomcat.requestCount.count
tomcat.errorCount.count
tomcat.processingTime.count
Количество запросов и ошибок, а также суммарное время обработки.
Передача данных tomcat.bytesReceived.count
tomcat.bytesSent.count
Количество полученных и отправленных байтов.
Пулы потоков tomcat.threadPool.currentThreadCount
tomcat.threadPool.currentThreadsBusy
tomcat.threadPool.maxThreads
Текущее, занятое и максимально допустимое количество потоков.
Зависшие потоки tomcat.stuckThreads Количество потоков, определённых Tomcat как зависшие.

Расчётные метрики

Расширение содержит дополнительные расчётные показатели:

Метрика Описание
func:tomcat.processingTimePerRequest Среднее время обработки одного запроса.
func:tomcat.requestCountPerSecond Количество запросов в секунду.
func:tomcat.errorCountPerSecond Количество ошибок в секунду.
func:tomcat.bytesReceivedPerSecond Количество полученных байтов в секунду.
func:tomcat.bytesSentPerSecond Количество отправленных байтов в секунду.
func:tomcat.threadPool.utilization Процент использования пула потоков.
func:tomcat.connectionPool.availableConnections Расчётное количество доступных подключений.
func:tomcat.connectionPool.currentUsage Текущая загрузка пула подключений в процентах.

Обнаруживаемые сущности

Для каждого обнаруженного пула подключений создаётся сущность Tomcat Connection Pool.

Имя сущности формируется из имени источника данных. Пул подключений автоматически связывается с соответствующим экземпляром процесса Tomcat.

Обзорные панели

В состав расширения входят готовые обзорные панели, содержащие:

  • список обнаруженных пулов подключений;
  • количество активных и созданных подключений;
  • загрузку пулов потоков;
  • количество запросов и ошибок;
  • среднее время обработки запросов.

Проверка работы

После активации конфигурации убедитесь, что:

  • процесс Tomcat отображается в Ключ-АСТРОМ;
  • поступают метрики с префиксами tomcat.connectionPool, tomcat.threadPool или tomcat.requestCount;
  • созданы сущности Tomcat Connection Pool;
  • обзорная панель содержит данные контролируемого процесса.

Наличие необходимых MBeans можно проверить с помощью JConsole или другого клиента JMX.

Устранение неисправностей

Проблема Возможная причина и решение
Метрики Tomcat не поступают Проверьте, что функция Java Metric Extensions 2.0 (JMX) включена, а процесс Tomcat был перезапущен.
Отсутствуют метрики пула подключений Проверьте наличие MBeans Catalina:type=DataSource. Другие реализации пулов подключений могут использовать несовместимые MBeans.
Отсутствуют метрики веб-запросов Проверьте наличие MBeans Catalina:type=GlobalRequestProcessor и включение набора web-requests.
Отсутствуют метрики потоков Проверьте наличие MBeans Catalina:type=ThreadPool и включение набора thread-pools.
Метрика зависших потоков отсутствует Убедитесь, что в Tomcat настроен StuckThreadDetectionValve и включён набор stuck-threads.
Сущность пула не создаётся Проверьте поступление метрики tomcat.connectionPool.activeConnections и наличие измерения name.

История изменений

Версия Изменения
2.2.3 Добавлены новые экраны и обзорные панели.
2.2.1
  • Расширение дополнено показателями сервера приложений.
  • Добавлены наборы метрик пулов потоков и веб-запросов.