Profile Java Apps with RemoraJ
RemoraJ is an open source Java byte code instrumentation agent designed to help developers profile running Java apps with little overhead.
The focal point of RemoraJ is to provide visibility into what’s coming in and out of your java app by tracking calls such as HTTP, JDBC, JMS, WebSocket, IO Streams, Kafka and other inter JVM/IPC communications.
We had several objectives when developing RemoraJ:
- Profiling during load, integration, and production runs.
- See what is coming in and out of the Java app (inter-app communications).
- Dynamically enable/disable profiling when needed using programmable APIs (REST). Why have profiling enabled all the time? For example: Run a curl command and enable/disable HTTP intercept on the fly. Gather your traces and analyze results.
- Ability to generate stack trace or a heap dump during problem determination. We have enabled the RemoraJ agent to generate both via a REST calls. See remora-control REST API.
- Integrate application traces with any log or application performance tools. By default, we feed traces into Nastel XRay, but traces can be routed to a file or a log analysis tool.