Использование классов JMX для уведомления о событиях во времени - PullRequest
2 голосов
/ 18 июня 2010

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

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

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

1 Ответ

1 голос
/ 05 апреля 2011

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

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

...