Profiling is achieved by instrumenting either the program source code or its binary executable form using a tool called a profiler (or code profiler). Profilers may use a number of different techniques, such as event-based, statistical, instrumented, and simulation methods.
Continuous profiling can help you understand systems resource usage (CPU, memory, etc.), identify performance bottlenecks, locate memory leaks and analyse the call stack of your applications. You can also use it as a method to track performance changes over time.
Open Telemetry Profiling Efforts¶
Within Open Telemetry, there is a working group who is working towards adding Profiling as a supported event type. For more details on the scope and vision check out the OTel Profiling Vision OTEP or drop in on the CNCF #otel-profiling channel where most communication and coordination happens!
- Current state of Continuous Profiling, Dec 2021
Datadog Continuous Profiler¶
Google Cloud Profiler¶
From profiles to understanding. Open Source Infrastructure-wide continuous profiling
- Parca was open-source by Polar Signals in 2021
- Parca's old name was
Conprofwhich can be seen in the KubeCon NA 2021 talk
- FlameQL is the Pyroscope query language.
- Pyroscope was acquired by Grafana in March 2023, and the new continuous profiling tool is called "Grafana Pyroscope"](https://github.com/grafana/pyroscope)
- Custom storage engine design