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. Perforator is deployed on 10k+ nodes 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 on any specified timeline.
- Supported languages: C++, Go, Rust, Java, Python, Node.js.
- Support of generating sPGO profiles for building your applications with Profile Guided Optimization (PGO).
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