Documentation | Post on Medium | Post on Habr
Perforator is a production-ready, open-source Continuous Profiling app that can collect CPU profiles from your production without affecting its performance, made by Yandex and inspired by Google-Wide Profiling. Perforator is deployed on tens of thousands of servers in Yandex and already has helped many developers to fix performance issues in their services.
- Efficient and high-quality collection of kernel + userspace stacks via eBPF technology.
- Scalable storage for storing profiles and binaries.
- Support of unwinding without frame pointers and debug symbols on host.
- Convenient query language and UI to inspect CPU usage of applications via flamegraphs.
- Support for C++, C, Go, and Rust, with experimental support for Java and Python.
- Generation of sPGO profiles for building applications with Profile Guided Optimization (PGO) via AutoFDO.
Perforator runs on x86 64-bit Linux platforms consuming 512Mb of RAM (more on very large hosts with many CPUs) and <1% of host CPUs.
You can profile your laptop using local perforator record CLI command.
You can also deploy Perforator on playground/production Kubernetes cluster using our Helm chart.
-
Instructions on how to build from source are located here.
-
If you want to use prebuilt binaries, you can find them here.
We are welcome to contributions! The contributor's guide provides more details on how to get started as a contributor.
This project is licensed under the MIT License (MIT). MIT License
The eBPF source code is licensed under the GPL 2.0 license. GPL 2.0