The Java profiling agent for Pyroscope.io. Based on async-profiler.
The agent is distributed as a single JAR file pyroscope.jar
. It contains native async-profiler libraries for:
- Linux on x64;
- Linux on x86;
- Linux on AArch64;
- Linux on ARM;
- MacOS on x64.
Visit releases page to download the latest version of pyroscope.jar
To run a Java application with the agent:
java -javaagent:pyroscope.jar -jar app.jar
On the startup, the agent deploys the native corresponding library into /tmp/${username}-pyroscope/
.
The agent is configured using environment variables.
The application name used when uploading profiling data. Generated if not provided.
Sets the profiling interval in nanoseconds or in other units, if N is followed by ms
(for milliseconds), us
(for microseconds), or s
(for seconds). See async-profiler documentation for details. The default is 10ms
.
Sets the profiling interval for uploading snapshots. The default is 10s
.
Sets the profiling event. See async-profiler documentation for details. The supported values are cpu
, alloc
, lock
, wall
, and itimer
. The defaults is itimer
.
The log level: debug
, info
, warn
, error
. The default is info
.
The address of the Pyroscope server. The default is http://localhost:4040
.
The authorization token used to upload profiling data.
If you want to build the agent JAR yourself, from this repo run:
./gradlew shadowJar
The file will be in agent/build/libs/pyroscope.jar
.