Profiling is an effective way of understanding which parts of your application are consuming the most resources.
Continuous Profiling adds a dimension of time that allows you to understand your systems resource usage (i.e. CPU, Memory, etc.) over time and gives you the ability to locate, debug, and fix issues related to performance.
Pyroscope is an open source continuous profiling platform. It will help you:
- Find performance issues in your code
- Resolve issues with high CPU utilization
- Locate and fix memory leaks
- Understand the call tree of your application
- Track changes over time
By using sampling profilers, Pyroscope is able to collect data with minimal overhead (~2-5% depending on a few factors). We've also built a custom storage engine to compress and store the data efficiently. Some advantages of this are:
- Low CPU overhead thanks to sampling profiler technology
- Control over profiling data granularity (10s to multiple years)
- Efficient compression, low disk space requirements and cost
There are two main components that allow Pyroscope to run smoothly and quickly: Pyroscope Server and Pyroscope Agent.
Pyroscope Agent: Records and aggregates what your application has been doing, then sends that data to the Pyroscope Server.
Pyroscope Server: Processes, aggregates, and stores data from agents for speedy queries of any time range. Later you can look at the profiling data and make queries across any time range.