Использование классов JMX для уведомления о событиях с течением времени

Я рассматривал JMX для мониторинга показателей приложений и системы (частично потому, что к MBeans можно получить доступ с помощью различных инструментов, таких как JConsole). Казалось бы, классы, включенные в JMX, будут полезны для таких вещей, как уведомление, когда метрики превышают пороговые значения. Но я не уверен, что они соответствуют тому, как я хочу измерить их за определенный период времени.

Например, допустим, я хочу уведомить администратора, когда средняя загрузка ЦП превышает 95% в течение более 5 минут. Это что-то можно сделать с помощью GaugeMonitor? Судя по документам, это не совсем подходит для этого, и мне интересно, не следует ли вместо этого написать собственный MBean с необходимой логикой.

Более релевантным примером является случай, когда время входа пользователей превышает 10 секунд в течение 5 минут. Немного отличается то, что последние 20 входов в систему в среднем заняли более 10 секунд. Другим случаем может быть сбой процесса 4+ раза в час. Или очередь запросов превышает 15 в течение 5 минут. Полезны ли классы JMX Monitor для такого рода вещей?


person Cincinnati Joe    schedule 17.06.2010    source источник


Ответы (1)


На мой взгляд, классы mbean монитора не особенно полезны, и хотя вы можете настроить их достаточно для удовлетворения ваших потребностей, похоже, что у вас есть несколько разных требований. Я рекомендую вам взглянуть на что-то вроде Esper, механизма потоковой передачи событий. По сути, вы будете вводить регулярные показания в движок, и если возникнет определенное вами условие, вы получите обратный вызов, который можно легко преобразовать в уведомление JMX.

Движок Esper довольно эффективен, работает полностью в потоках вызывающей стороны (без дополнительных потоков) и сохраняет только введенные данные, необходимые для выполнения условий, о которых вы регистрируетесь для получения уведомлений.

person Nicholas    schedule 05.04.2011
comment
Интересно. В итоге мы написали собственную небольшую библиотеку служебных классов для проведения событий и наблюдения за условиями. Esper может быть излишним, но звучит как правильная функциональность. - person Cincinnati Joe; 06.04.2011
comment
На первый взгляд кажется, что это излишество, но....... A. использование ресурсов (или дополнительные накладные расходы) довольно мало (если только вы не храните кучу данных, например, вычисляете среднюю загрузку процессора для последнего year :( ), но в некоторых случаях это может фактически уменьшить объем работы, которую вам нужно выполнить, потому что он может вычислить для вас средние значения и другие агрегаты. Кроме того, вы можете добавлять новые запросы на лету. Я фанат.. ..если это не очевидно.... - person Nicholas; 06.04.2011