Entreprise Java application are expected to be scalable, performant, flexible, maintainable and highly available. To ensure this, we need to instrument the application with tooling, both during development to detect design bottlenecks and on production to monitor application behaviour and health.
The standard Java Management eXtension (JMX) provides the required backbone for nice management and monitoring tools, but with the cost of complexity and requirement for application to compute the state it wants to expose.
Profilers give very detailled report on code execution, performance, memory usage and thread-safety, but can only be used during developpement.
Some opensource project allready try to fill the gap by providing simple monitoring tools :
This proposal is to create a new apache commons component to provide a simple monitoring infrastructure, with simplicity and extensibility in mind, and following Apache quality standards. By beeing hosted in apache commons, it expect to gather talentuous developers curisoity / interest and to envolve as a must-have component for java developers. .
monitoring relies on standard Java 5 (or later) APIs for production deployment. It utilizes the JUnit unit testing framework for developing and executing unit tests, but this is of interest only to developers of the component.
Retrotranslator is used to create a backport version of the component to get used under Java 1.3 or 1.4. On such runtimes, backport-util-concurrent will be required.
monitoring provides Helper classes for various frameworks to make monitoring easier. Those dependencies
are only required by user wanting to use them. Maven meta-datas are declared as
optional to avoid unexpected transitive
No external configuration files are utilized.
The original Java classes are created from scratch based on some initial experiments to build a clean monitoring toolkit.
The proposed package name for the new component is
The initial committers on the monitoring component shall be: