2010-06-17 8 views
2

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

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

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

ответ

1

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

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

+0

Интересно. Мы закончили тем, что написали собственную небольшую библиотеку служебных классов для проведения мероприятий и наблюдения за условиями. Эспер может быть излишним, но это похоже на правильную функциональность. –

+0

Кажется, сначала краснеть, как перебор, но ....... А. Использование ресурсов (или дополнительные накладные расходы) довольно невелико (если вы не держите дерьмовые нагрузки данных, например, чтобы вычислить средний процессор для в прошлом году :(), но в некоторых случаях это может фактически сократить объем работы, которую вам нужно выполнить, потому что он может вычислять средние и другие агрегаты для вас. Кроме того, вы можете добавлять новые запросы «на лету». Я поклонник. ... в случае, если это не было очевидно .... – Nicholas