Proposal for monitoring Package

(0) Rationale

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 :

(1) Scope of the Package

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. .

(1.5) Interaction With Other Packages

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 dependencies.

No external configuration files are utilized.

(2) Initial Source of the Package

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 org.apache.commons.monitoring.

(3) Required Apache Commons Resources

(4) Initial Committers

The initial committers on the monitoring component shall be: