JBoss v4.0.3 released last week bundles a couple of new monitoring features (still in a experimental state, so they are disabled by default).

 

There is an Active Alarm Table that can be fed with notifications, either ordinary ones, or special ones that carry severity and state. I've introduced this notion that an alarm can be either stateless (e.g. security violation) or stateful (e.g. free memory low). The difference really is that stateful alarms can clear themselves out (so free memory is back to normal). If we manage to update the alarm table with relevant information (i.e. alarms) it can represent the current fault state of a system.

 

Any mbean could feed the table, but there are also a couple of mbean services that produce org.jboss.monitor.alarm.AlarmNotification notifications:

  • JMXNotificationAppender, a simple log4j appender that transforms logging events to JMX notifications, so we can tap into logging information and treat, for example, WARN and ERROR messages as alarms.
  • MemoryMonitor, a simple free memory monitor service that shows how stateful alarms should work.
  • ScriptingListener, a scripting facility that can be used, for example, to map existing notifications to alarms. This is quite generic, meaning, you can execute a script in any scripting language supported by BSF, to react to an incoming notification.

 

There is also a very simple page in the JBoss web-console that shows the alarm table and allows acknowledgement of alarm. You can read about it here.

 

Comments and suggestions are welcome.

 

See you at JBoss World, Barcelona!

 

Cheers
dimitris@jboss