Using Pyroscope for continuous profiling
First, let’s address the question of what continuous profiling is. As we outlined at the start of this book, a system is observable when the internal state of the system can be inferred from its external outputs. We have seen three types of output telemetry: logs, metrics, and traces. Profiling data is another form of telemetry. Profiling data is very low-level data that relates to a workload’s use of resources, such as the use of CPU or memory. As profiling tools analyze very low-level system data, they capture information such as the running time or the number of objects in memory of a specific application function. This is very powerful for domain experts to inspect how an application behaves, and this power can lead to significant performance and cost improvements. Profiling has been around for a long time, as anyone who has produced a stack trace will know. Pyroscope offers the ability to capture this profiling data continuously...