Perfmon4j is a suite of performance monitoring tools that are intended to be used to diagnose performance bottlenecks and monitor throughput and response time in production Java applications. Its main features include servlet response time monitoring, detailed thread trace sampling, Java instrumentation that enables Package, Class, and Method monitoring without code modification, snapshot monitoring of system metrics including Garbage Collection, Memory Pools, etc., an API for applying additional monitoring points via method annotations or in-line timers, and support for dynamically enabling monitors in running applications.
|Tags||performance monitoring Performance Measurement performance counters Java library j2ee|
|Operating Systems||OS Independent|
|Implementation||Java Java 5 Java 6|
Release Notes: This minor maintenance release includes features to make XML configuration less error-prone.
Release Notes: The ability to monitor SQL execution time was added. This feature provides composite monitoring that allows you to determine what percentage of time is spent in the SQL vs the Java application layer.
Release Notes: This release adds a powerful new way to force thread trace monitoring on a specific thread (or a specific request). You can now force a thread trace based on one of the following: HTTP request parameter, HTTP session parameter, HTTP cookie, thread name, or thread property. There is more support for logging performance and monitoring information to an SQL database. In addition to MySQL and SQL Server, there are also create scripts for Oracle and PostgreSQL.
Release Notes: A SQL-based appender for interval data was added. You can now configure timing data to be written to a SQL database. An "Output Interval data to a SQL Database" section was added to Perfmon4j-ConfigSamples.pdf with configuration examples. Problems where release Jars were not compiled for Java 1.5, the Log4j logger did not include Throwable, and reloading the appender failed to propagate attributes were fixed.
Release Notes: The option to instrument getters and setters is now provided. A severe defect was fixed in which the global classloader incorrectly maintained reference to classes that have been unloaded by classloader. A minor defect was fixed in which a Null Pointer Exception was thrown when a named appender does not exist in the configuration of SnapShotMonitor. A minor defect was fixed in which loading a snapshot monitor containing a non-public annotated method failed.