It is important that enterprise-class infrastructure software systems, like the Apache ActiveMQ message broker, provide system administrators with a mechanism through which they can monitor the overall health and performance of that system. Without a monitoring system in-place, the reliability, high-availability, and performance of the system, as a whole, are compromised.
TTM's Active Monitor, or AMon for short, is an enterprise-class monitoring system that is specifically designed for the Apache ActiveMQ message broker. AMon comprises two primary modules: Monlet Framework and SNMP Agent. The following are some snippets from the AMon User Guide that describe these two modules.
AMon does not perform the actual monitoring of an ActiveMQ message broker. What AMon provides is a framework that facilitates the rapid development and deployment of one or more user-defined ActiveMQ monitoring agents, or "Monlets" as they are referred to in this document. The AMon framework and the Monlets that it hosts are embedded within an ActiveMQ message broker process. The framework and its Monlets combine to provide a powerful and flexible monitoring system for ActiveMQ.
A Monlet is an end-user defined component that comprises one or more conditional expressions and their corresponding actions; the Monlet invokes the actions if and when the conditional expressions are TRUE. You can also view the conditional expressions as predicate functions that accept one or more variables with the variables representing the runtime state of the message broker.
In general, the conditions are designed to test the runtime or operational state of those objects that comprise the ActiveMQ message broker. Unlike ActiveMQ's default advisory system, the AMon framework gives its Monlets direct access to all of the message broker's runtime object hierarchies. The broker comprises many objects and their properties; therefore, there are also many conditions that can be defined and monitored. Here are just a few examples of the types of Monlets and the objects that they can monitor.
AMon also allows Monlets to test conditions associated with the broker's hosting Java Virtual Machine (JVM). For example, a Monlet can test whether the number of active threads within the JVM or its memory heap size has breached a certain threshold.
So unlike ActiveMQ's default Advisory system, AMon is a framework that:
AMon maintains a clean separation between the Monlets and the broker objects that they are monitoring. This separation is provided by a combination of the following:
The above items all combine to make developing Monlets relatively straightforward and allows the AMon system as a whole to be extensible and flexible. The following three sections describe the above three items in more detail.
Along with the Java programming language, the Monlet developer will need to have a basic understanding of Apache Camel and the Unified Expression Language (UEL).
AMon also includes an embedded SNMP v2 Agent and accompanying Management Information Base (MIB). These components allow ActiveMQ to be monitored by SNMP-capable management systems. The MIB, which is included in the AMon product archive file, lists and describes all the ActiveMQ attributes that can be monitored via AMon's SNMP agent.
AMon's SNMP agent also generates SNMP notifications (a.k.a., traps) and gives Monlets the capability to generate their own notifications via a Camel SNMP endpoint that AMon makes available to Monlets. See the SNMP Camel Endpoint section of the AMon user guide for examples of how Monlets can take advantage of this Camel SNMP endpoint (component) to generate SNMP v2 notifications.
Send us an email if you would like to sign up for the upcoming AMon early adopter program.