Pyroscope is an open source continuous profiling platform. It will help you:
- Find performance issues and bottlenecks in your code
- Resolve issues with high CPU utilization
- Understand the call tree of your application
- Track changes over time
- Can store years of profiling data from multiple applications
- You can look at years of data at a time or zoom in on specific events
- Low CPU overhead
- Efficient compression, low disk space requirements
- Snappy UI
Pyroscope supports all major architectures and is very easy to install. for example here is how you install on a mac:
# install pyroscope
brew install pyroscope-io/brew/pyroscope
# start pyroscope server:
pyroscope server
For more documentation on how to add the Pyroscope agent to your code see the agent documentation on our website.
- Golang Agent (Push)
- Golang Agent (Pull)
- Python Agent (pip)
- Ruby Agent (gem)
- eBPF Agent
- PHP Agent
- .NET Agent
We also have language-specific examples (using Docker) of how to run the server and agent together
- Golang Example
- Python Pip Example
- Ruby Gem Example
- Grafana Example
- Java Example
- PHP example
- .NET Example
For more information on how to use Pyroscope with other programming languages, install it on Linux, or use it in production environment, check out our documentation:
You can download the latest version of pyroscope for macOS, linux and Docker from our Downloads page.
- Go (via
pprof
) - Python (via
py-spy
) - Ruby (via
rbspy
) - Linux eBPF (via
profile.py
frombcc-tools
) - Java (via
async-profiler
) - Rust (via
pprof-rs
) - .NET (via
dotnet trace
) - PHP (via
phpspy
) - Node (seeking contributors)
Let us know what other integrations you want to see i 8000 n our issues or in our slack.
Pyroscope is possible thanks to the excellent work of many people, including but not limited to:
- Brendan Gregg — inventor of Flame Graphs
- Julia Evans — creator of rbspy — sampling profiler for Ruby
- Vladimir Agafonkin — creator of flamebearer — fast flamegraph renderer
- Ben Frederickson — creator of py-spy — sampling profiler for Python
- Adam Saponara — creator of phpspy — sampling profiler for PHP
- Alexei Starovoitov, Brendan Gregg, and many others who made BPF based profiling in Linux kernel possible
To start contributing, check out our Contributing Guide