Подтвердить что ты не робот

Что вы отслеживаете с помощью JMX в своем производственном приложении Java?

Этот вопрос не касается того, как работает JMX или что делает JMX. Этот вопрос касается приложений JMX в стандартной среде сервера приложений в производстве. Это не для конкретного сервера.

Что вы отслеживаете с помощью JMX в рабочей среде, в которой работает стандартный стек служб Java EE: доступ к базе данных (JDBC и JPA), сеансовые EJB, JMS, веб-сервер, веб-службы, службы с поддержкой AJAX?

4b9b3361

Ответ 1

На уровне JVM я отслеживаю продолжительность сбора мусора в минуту,

На уровне Servlet Container я отслеживаю количество запросов, количество исключений (коды 4xx и 5xx), сумму продолжительности запроса в минуту,

На уровне SOAP я отслеживаю количество вызовов, количество исключений и сумму вызовов на операцию и минуту,

На уровне Веб-MVC Framework я отслеживаю количество вызовов, количество исключений и сумму выписок за действие и минуту,

Для пулов (источника данных, службы пула/исполнителя потока) я контролирую активный счетчик,

Для соединений JMS я отслеживаю количество отправленных и принятых сообщений в минуту и ​​количество активных приемников,

Для EhCache я отслеживаю количество записей в кеше, количество обращений и пропусков в минуту,

На уровне бизнес-приложения я разработал аннотацию @Profiled для отслеживания количества вызовов, количества исключений и общей продолжительности в минуту.

Если вы заинтересованы в таких показателях, мы разработали много дополнений JMX (dbcp, util.concurrent, jms, @profiled аннотацию) и упаковали все это с помощью Spring конфигурации на основе пространства имен XML, плагинов Hyperic HQ, мониторинга jsp страниц и т.д.

Подробности здесь: http://code.google.com/p/xebia-france/wiki/XebiaManagementExtras.

Весь этот код лицензируется в соответствии с бизнес-версией Open Source Apache Software License 2, развернутой в Центральном репозитории Maven, загружаемой в виде банки и доступной на сервере Subversion Google Code для интеграции так, как вы хотите.

Надеюсь, что это поможет,

Кирилл (Xebia)

Ответ 2

Я использовал JMX для отображения MBean, который позволит динамически регулировать уровни Log4J Logger. Это оказалось очень полезным для кластерного приложения, где мы не хотели изменять файл конфигурации log4j на всех узлах, чтобы изменить уровень журнала для указанного регистратора.

Ответ 3

Мое наиболее распространенное требование - контролировать количество потоков и память. Моя последняя работа включала в себя многопоточные серверы, отправляющие на решетки, и было важно следить за использованием потоков (мерой того, сколько операций отправки было предпринято сервером). Память тесно связана с использованием потока (частично из-за объектов, связанных с каждым потоком, частично из-за неявного распределения стека на поток).

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

Ответ 4

В предыдущем проекте мы отслеживали количество потоков и количество потоков, количество сеансов HTTP и размер кешей запросов. Другой интерес JMX с кэшами заключается в том, что вы можете заставить флеш.

Ответ 5

Немного OT, но вы можете использовать JMX еще немного. В настоящее время я использую JMX для горячего развертывания /hot fix компонентов. Динамически добавлять функциональность к существующим компонентам (фильтр и т.д.). JMX хорош для связи между компонентами на одной JVM. Каждый компонент, который я создаю, предназначен для использования JMX.