A toolkit that packages eBPF programs as OCI-image Gadgets for collecting and inspecting system data on Kubernetes clusters and Linux hosts.
grafana/pyroscope
Continuous profiling platform that collects CPU, memory and I/O profiles from running applications so you can trace slow code down to individual lines.
Open-source alternative to:Datadog Continuous Profiler
- Stars
- 11,703
- Forks
- 827
- Open issues
- 419
- Last commit
- 14 hours ago
What is it?
Grafana Pyroscope is a continuous profiling platform for finding performance bottlenecks in applications. It records CPU, memory and I/O usage over time, so developers can examine both live incidents and long-term trends, down to the line of code responsible for resource consumption.
Profiles reach the server through language SDKs for Go, Java, Python, Ruby, Node.js, .NET and Rust, through Grafana Alloy using pull or push, or over OTLP from OpenTelemetry-compatible sources such as the OpenTelemetry eBPF profiler. Results are explored in Grafana Profiles Drilldown, a queryless interface for flame graphs and comparisons.
Version 2 writes profiles directly to object storage without in-memory ingesters or local disks. The server can be started with Docker, Homebrew or a release binary and listens on port 4040.
Key features
- 01Collects CPU, memory and I/O profiles from running applications.
- 02Provides SDKs for Go, Java, Python, Ruby, Node.js, .NET and Rust.
- 03Accepts profiles through Grafana Alloy and OTLP from OpenTelemetry sources.
- 04Offers a queryless UI for flame graphs in Grafana Profiles Drilldown.
- 05Stores profiles directly in object storage in the v2 architecture.
Use cases
- Finding which functions consume the most CPU in a slow production service.
- Tracking memory allocation growth across releases.
- Investigating latency incidents with line-level detail during an outage.
- Comparing profiles over time to catch performance regressions.
Quick start
- 1
Run the Pyroscope server locally with Docker
docker run -it -p 4040:4040 grafana/pyroscope - 2
Or install via Homebrew and start the service
brew install pyroscope-io/brew/pyroscope - 3
Start the Homebrew service
brew services start pyroscope
Things to know
- Licensed under AGPL-3.0, a copyleft license with obligations for networked services.
- Full setup for Kubernetes, packages, or production needs the separate documentation and extra effort.
In collections
Topics
FAQ
- What is pyroscope?
- Continuous profiling platform that collects CPU, memory and I/O profiles from running applications so you can trace slow code down to individual lines. Grafana Pyroscope is a continuous profiling platform for finding performance bottlenecks in applications. It records CPU, memory and I/O usage over time, so developers can examine both live incidents and long-term trends, down to the line of code responsible for resource consumption.
- Is pyroscope free to use? What license does it have?
- pyroscope is open source under the AGPL-3.0 license. Check the license terms before using it in commercial products.
- Is pyroscope still maintained?
- Actively maintained. The last commit to pyroscope was on Oct 24, 2026.
- What can I use pyroscope for?
- Finding which functions consume the most CPU in a slow production service. Tracking memory allocation growth across releases. Investigating latency incidents with line-level detail during an outage. Comparing profiles over time to catch performance regressions.
- How do I install pyroscope?
- Run the Pyroscope server locally with Docker: docker run -it -p 4040:4040 grafana/pyroscope Or install via Homebrew and start the service: brew install pyroscope-io/brew/pyroscope Start the Homebrew service: brew services start pyroscope
- Where can I get pyroscope?
- The source code and installation instructions are on GitHub: https://github.com/grafana/pyroscope
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
A Go daemon that collects, aggregates and exports resource usage and performance data for running containers, with a web UI and REST API.
A terminal top-style monitor that shows running eBPF programs with their runtime, events per second, and estimated CPU usage.
Open-source observability platform combining uptime monitoring, status pages, incident management, on-call alerts, logs, traces, and metrics in one self-hostable app.
A real-time logging dashboard for Kubernetes that merges logs from all containers in a workload into one timeline, in a browser or terminal.
An in-app debugging toolkit for iOS apps that adds a floating debug menu for inspecting network traffic, performance, views, logs and app data.