A JVM agent profiler that sends memory, CPU tracing, and CPU load metrics to StatsD, InfluxDB, and other backends.
statsd-jvm-profiler is a JVM agent that collects and exports profiling data—such as memory usage, CPU time per function, and system CPU load—to metrics backends like StatsD and InfluxDB. It helps developers monitor and analyze the performance of JVM-based applications, particularly in distributed environments like Hadoop. The tool runs as a lightweight agent attached to the JVM, sampling data at configurable intervals.
Java developers and engineers running JVM applications in production, especially those using Hadoop, Spark, or other distributed data processing frameworks who need lightweight, integrable performance monitoring.
It provides a simple, agent-based approach to JVM profiling that integrates directly with popular metrics systems, avoiding the complexity of standalone profiling tools. Its extensible reporter design and support for dynamic loading make it flexible for various deployment scenarios.
Simple JVM Profiler Using StatsD and Other Metrics Backends
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Supports multiple backends like StatsD and InfluxDB out of the box, with an extensible reporter architecture for custom integrations, as detailed in the Reporters section.
Embedded HTTP server allows enabling/disabling profilers and checking errors on-the-fly via REST endpoints, enabling adaptive profiling without JVM restarts.
Combines memory, garbage collection, CPU tracing, and system load profiling in a single agent, providing holistic insights into application performance.
Designed as a low-overhead JVM agent suitable for distributed environments like Hadoop, with minimal setup via -javaagent argument.
CPULoadProfiler relies on Sun/Oracle-specific JMX beans not guaranteed in other JVMs, limiting compatibility for CPU load monitoring on alternative JVM distributions.
Dynamic agent attachment requires tools.jar from Oracle JDK, an implementation-specific dependency that complicates setup and may fail on non-standard JVMs.
CPU tracing profiler can generate excessive unique metrics per function, risking StatsD backend overload without careful use of package whitelists/blacklists.