// the find
yandex/perforator
Perforator is a cluster-wide continuous profiling tool designed for large data centers
Perforator is Yandex's cluster-wide continuous profiling system, open-sourced after running on tens of thousands of servers internally. It collects CPU profiles via eBPF — no instrumentation required, no debug symbols needed on the profiled host — stores them centrally, and surfaces them as flamegraphs with a query language for slicing by service, host, or time range. It also generates sPGO profiles for feeding directly into AutoFDO PGO builds.
Frame-pointer-less stack unwinding via eBPF without requiring debug symbols on the profiled machine is genuinely hard to do correctly; Yandex has been running this at scale for long enough that the edge cases are likely handled. The sPGO/AutoFDO profile export closes a loop most profiling tools ignore — you collect production data and feed it straight into optimized builds. Overhead numbers (<1% CPU, ~512MB RAM) come from a production environment rather than a controlled benchmark. Prebuilt binaries and a Helm chart exist, so adoption doesn't require understanding their build system.
The repo is a monorepo extraction from Yandex's internal Arcadia, and it shows: `ya.make` files are everywhere, the build system is Yandex's internal `ya` tool, and building from source without prebuilts means learning tooling with almost no external documentation. Java and Python support is explicitly experimental — if your services are JVM-heavy, you're second-class. The eBPF unwinder code is GPL v2 in an otherwise Apache 2.0 project, which is a split-license situation that will get flagged in any legal review. Community support outside Russia is thin; the primary channels are Russian-language Telegram and Habr, and the English equivalents are quieter.