Sitemap

On The State Of Continuous Profiling

3 min readDec 23, 2021

What is continuous profiling and where are we with it, end of 2021?

A month ago I asked via Twitter about signal types uptake (in the context of Kubernetes):

Informal Twitter poll on signal types used in Kubernetes workloads (11/2021).

The answer distribution was not overly surprising but one thing stood out to me: just shy of 1/5 of the folks who responded said they, in addition to logs, metrics, and traces, they’d also “capture profiles/eBPF”.

Alrighty, what does that even mean? :)

In 2010, Gang Ren, Eric Tune, Tipp Moseley, Yixin Shi, Silvius Rus, and Robert Hundt published Google-Wide Profiling: A Continuous Profiling Infrastructure for Data Centers in the IEEE Micro journal, summarizing the architecture with:

Press enter or click to view image in full size
Continuous Profiling architecture at Google, IEEE Micro journal 2010.

The core idea of continuous profiling (CP) is to capture CPU, memory, I/O, and networking usage over time, connecting it with the code base in a manner so that it’s possible to directly locate a certain line of source code.

With CP it’s possible to address a number of use cases from saving infrastructure costs to improving application performance. Increasingly, we see CP utilizing eBPF to capture the low-level values (CPU, RAM, etc.) at runtime and making them available to higher-level frameworks and/or for visualization.

Interestingly, for almost a decade after the Google engineers published the IEEE Micro article, the topic did not go mainstream. 2021, however, was the year when–seemingly out of nowhere–a number of projects are aiming to deliver in open source what the Google engineers described back then. Let’s have a closer look at those offerings.

Open Source Offerings

In alphabetical order, we now review existing open source CP offerings.

Parca by PolarSignals

Parca—with strong Prometheus roots, eBPF-based, for single node and Kubernetes environments. Building on the Prometheus labels and service discovery concepts, easy to set up and use.

Press enter or click to view image in full size
Screen shot of Parca in action.

CNCF Pixie

Pixie—all-in-one o11y solution based on eBPF that offers, amongst other things, profiling. Powerful and enables to write own eBPF programs, with focus on Kubernetes.

Press enter or click to view image in full size
Screen shot of Pixie in action.

Pyroscope by Pyroscope, Inc.

Pyroscope— comes with wide language support (Java, Ruby, Python, .NET, etc.), eBPF integration, and advanced visualizations.

Press enter or click to view image in full size
Screen shot of Pyroscope in action.

Further reading on the topic:

--

--

Michael Hausenblas
Michael Hausenblas

Written by Michael Hausenblas

open-source observability @ AWS | opinions -: own | 塞翁失马

No responses yet