Skip to content

Perforator is a cluster-wide continuous profiling tool designed for large data centers

License

Notifications You must be signed in to change notification settings

PRO100BYTE/perforator

 
 

Repository files navigation


License eBPF code license Telegram Telegram

Perforator

Documentation

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.

Main features

  • 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).

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 MIT License (MIT). MIT License

The eBPF source code is licensed under the GPL 2.0 license. GPL 2.0

About

Perforator is a cluster-wide continuous profiling tool designed for large data centers

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 47.6%
  • C 33.8%
  • Python 12.6%
  • Go 4.0%
  • Assembly 0.9%
  • Makefile 0.4%
  • Other 0.7%