yandex/perforator

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

View on GitHub ↗Jump to charts ↓

Summary Information

Updated 38 minutes ago
Added to GitGenius on September 20th, 2026
Created on January 29th, 2025
Open Issues & Pull Requests: 47 (+0)
GitHub issues: Enabled
Number of forks: 159
Total Stargazers: 3,436 (+0)
Total Subscribers: 28 (+0)

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 33
New in 7 days: 0
Closed in 7 days: 0
Avg open age: 386 days
Stale 30+ days: 32
Stale 90+ days: 31

Recent activity

Opened in 7 days: 0
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 0

Top labels

  • enhancement (3)
  • ebpf (1)
  • invalid (1)

Most active issues this week

Detailed Description

Perforator is a cluster-wide continuous profiling tool designed to collect CPU profiles from production systems at scale without measurable performance overhead.

The tool addresses the challenge of understanding CPU usage patterns across large data centers by using eBPF to efficiently gather kernel and userspace stack traces. It collects profiles directly from running applications, stores them in a scalable backend, and provides a query language and flamegraph-based UI for analysis. A key capability is unwinding stacks without requiring frame pointers or debug symbols to be present on the host, which simplifies deployment in production environments. The tool can generate sPGO profiles for Profile Guided Optimization compilation workflows.

Perforator suits organizations running large clusters who need continuous visibility into application performance without the overhead of traditional sampling profilers. It supports C++, C, Go, and Rust as primary targets, with experimental support for Java and Python. The tool can run on individual machines via a command-line interface or be deployed across Kubernetes clusters using a provided Helm chart. It requires minimal resources, consuming under 1% of host CPU and 512MB of RAM even on systems with many cores.

The project shows sustained development with regular updates to both core profiling infrastructure and language support. Work continues on expanding language coverage and improving the unwinding and storage systems. The maintainers actively incorporate feedback and accept external contributions through a documented contributor process.