Perforator
Perforator is a cluster-wide continuous profiling tool designed for large data centers
Install / Use
/learn @yandex/PerforatorREADME
<img width="64" src="docs/_assets/logo.svg" /><br/>
Perforator
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.
Main features
- Efficient and high-quality collection of kernel + userspace stacks via eBPF.
- 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.
Minimal system requirements
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.
Quick start
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.
How to build
-
Instructions on how to build from source are located here.
-
If you want to use prebuilt binaries, you can find them here.
How to Contribute
We are welcome to contributions! The contributor's guide provides more details on how to get started as a contributor.
License
This project is licensed under the Apache 2.0 License (Apache-2.0). Apache 2.0 License
NB: Formerly, we licensed Perforator under MIT license. We switched to Apache 2.0 to waive custom CLA signature requirements and simplify contributions.
Some parts are licensed under the GPL 2.0 license. GPL 2.0 These include:
- eBPF program source code (perforator/agent/collector/progs/unwinder)
- OpenJDK profiling support (portions of code within perforator/internal/linguist/jvm)
Related Skills
diffs
340.2kUse the diffs tool to produce real, shareable diffs (viewer URL, file artifact, or both) instead of manual edit summaries.
clearshot
Structured screenshot analysis for UI implementation and critique. Analyzes every UI screenshot with a 5×5 spatial grid, full element inventory, and design system extraction — facts and taste together, every time. Escalates to full implementation blueprint when building. Trigger on any digital interface image file (png, jpg, gif, webp — websites, apps, dashboards, mockups, wireframes) or commands like 'analyse this screenshot,' 'rebuild this,' 'match this design,' 'clone this.' Skip for non-UI images (photos, memes, charts) unless the user explicitly wants to build a UI from them. Does NOT trigger on HTML source code, CSS, SVGs, or any code pasted as text.
openpencil
1.9kThe world's first open-source AI-native vector design tool and the first to feature concurrent Agent Teams. Design-as-Code. Turn prompts into UI directly on the live canvas. A modern alternative to Pencil.
HappyColorBlend
HappyColorBlendVibe Project Guidelines Project Overview HappyColorBlendVibe is a Figma plugin for color palette generation with advanced tint/shade blending capabilities. It allows designers to
