2009-11-05 4 views
31

Этот вопрос не о том, как работает JMX или о том, что делает JMX. Этот вопрос касается приложений JMX в стандартной среде сервера приложений в производстве. Это не для конкретного сервера.Что вы отслеживаете с помощью JMX в своем программном приложении Java?

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

ответ

27

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

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

на SOAP уровне, я могу контролировать количество вызовов, количество исключений & сумма вызовов в эксплуатацию и в минуту,

В Web MVC Framework уровня, я могу контролировать количество вызовов, количество исключений & сумму вызовов в действие и в минуту,

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

для 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)

+0

хороший ответ, спасибо! – topchef

5

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

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

1

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

8

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

1

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

+2

Не могли бы вы, дайте ссылку, что бы продемонстрировать использование JMX для этой цели? - Мне нужно использовать функцию динамического добавления функциональности к существующим компонентам. – techzen

 Смежные вопросы

  • Нет связанных вопросов^_^