A JVM agent that sends function-level profiler telemetry from any JVM process to Riemann for performance analysis.
Riemann JVM Profiler is a profiling agent that collects stacktrace-level performance data from any JVM process and sends it to a Riemann server for analysis. It helps developers identify which functions consume the most CPU time across distributed systems, such as large-scale Hadoop jobs, without modifying application code.
Developers and engineers working with JVM-based applications (e.g., Clojure, Java, Scala) who need to diagnose performance bottlenecks in distributed or high-scale environments, particularly those already using Riemann for monitoring.
It offers a lightweight, code-instrumentation-free way to gain deep insights into CPU usage across entire clusters, with seamless integration into Riemann for real-time aggregation and visualization of performance hotspots.
Sends stacktrace-level performance data from a JVM process to Riemann.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Works as a Java agent or library without modifying application code, allowing profiling of any JVM process with simple startup options, as demonstrated in the 'As a Java agent' section.
Profiles applications written in Clojure, Java, Scala, Groovy, and other JVM languages, making it versatile for polyglot environments, as highlighted in the project description.
The :load parameter controls CPU usage to a fraction of a core, balancing profiling depth with minimal impact, which is customizable per the README options.
Sends function-level metrics to Riemann for real-time analysis across multiple hosts, enabling identification of system-wide CPU bottlenecks, with examples for Hadoop jobs.
Requires a running Riemann server with websocket support, adding infrastructure complexity and making it unsuitable for teams without an existing Riemann stack.
Focuses solely on stacktrace sampling for CPU hotspots, lacking features for memory usage, I/O tracing, or garbage collection analysis, which limits comprehensive performance diagnosis.
Distributing the agent jar across nodes, especially in Hadoop environments, is noted as unreliable in the README, with documentation described as 'conflicting and scarce'.
The README admits the profiler cannot normalize for background CPU load, potentially skewing results on systems with high concurrent usage, affecting cross-host comparisons.