Continuous profiling

What is Grafana Pyroscope?

Grafana Pyroscope is an open source continuous profiling database that provides fast, scalable, highly available, and efficient storage and querying. This helps you get a better understanding of resource usage in your applications down to the line number.

grafana pyroscope

Grafana Pyroscope overview

Grafana Pyroscope allows you to aggregate continuous profiling data with high availability, multi-tenancy, and durable storage.

Grafana Pyroscope was formed by the merger of two open source continuous profiling projects: Phlare, which was launched by Grafana Labs in 2022, and Pyroscope, which was founded by Ryan Perry and Dmitry Filimonov in 2021. The mission for the Grafana Pyroscope project is to enable continuous profiling at scale for the open source community, giving developers a better understanding of the resource usage of their code. By doing so, Pyroscope allows users to understand their application performance and optimize their infrastructure spend.

Grafana Labs is proud to lead the development of the Grafana Pyroscope project. The project natively integrates with Grafana, making it possible for users to correlate their profiling data with metrics, logs, and traces and to use profiles as another key observability signal for their applications.

Why use Grafana Pyroscope for continuous profiling?

Easy to install with just one binary and no additional dependencies — just like Prometheus
Provides durable, long-term storage of your profiling data to help you identify changes and trends over time
Horizontally scalable, distributed architecture means that Pyroscope can easily be scaled out to handle more incoming profiles
Fully compatible with Grafana so you can correlate profiling data with your existing metrics, logs, and traces
Consistent architecture with Loki, Mimir, and Tempo, which reduces the learning curve and cognitive load for those operating Pyroscope alongside Grafana Labs’ other databases
Can be run in a highly available configuration to ensure 100% uptime, even during upgrades and machine failure
Multi-tenancy and isolation make it possible to run one database for multiple independent teams or business units
Because Pyroscope uses object storage, you can store all the history you need without breaking the bank. AWS S3, Google Cloud Storage, Azure blob storage, OpenStack Swift, and any S3-compatible object storage supported

How does Grafana Pyroscope work for continuous profiling?

how does grafana pyroscope work
1

Collect profiling data

Grafana Pyroscope collects CPU and memory profiles from applications that expose pprof endpoints.

2

Run it easily, without sacrificing scalability or reliability

Get started in minutes by spinning up Pyroscope as a single process. When you’re ready to collect profiles from more applications or want a high availability setup, just add more machines and horizontally scale it out. Pyroscope will handle the rest.

3

Visualize in Grafana

Using Grafana’s Pyroscope data source, query the data stored in Pyroscope, slicing and dicing by relevant time ranges and labels. Grafana’s flame graph, histogram, and table views allow you to visualize your profiling data in different ways and build powerful dashboards from it.

4

Optimize your code

Grafana Pyroscope helps you identify the slowest and most memory-hungry parts of your code, so that developers are empowered to go in and optimize those areas. This results in:

  • Faster applications
  • More reliable applications and fewer OOM crashes
  • Cost-effective applications that use less CPU and memory

Built on open source, driven by the community

Grafana Pyroscope combines the best insights from Grafana Labs engineers who use continuous profiling at scale every day to improve the performance and reliability of our applications. We’re excited to share our learnings and work with the open source community on this first-of-its-kind continuous profiling database.

Meet the Grafana Pyroscope contributors

Work with great people like these

Ready to fire up Pyroscope in Grafana?