{"adoption": {"forks": 159, "observed_at": "2026-08-28T04:08:03.750682+00:00", "stars": 3417}, "canonical_url": "https://ross.abutalabs.com/products/perforator", "card": {"archived": false, "artifact_type": "service", "description": "Perforator is a cluster-wide continuous profiling tool designed for large data centers", "domain": ["performance", "monitoring", "developer-tools", "microservices"], "enriched": true, "function": ["monitoring", "tracing", "benchmarking", "developer-tools"], "health_score": 97, "homepage": "https://perforator.tech", "language": "C++", "license": "NOASSERTION", "license_family": "other", "maturity": "active", "member_repos": ["yandex/perforator"], "name": "yandex/perforator", "platform": ["self-hosted", "cli"], "pushed_at": "2026-08-26T22:03:11+00:00", "repo": "yandex/perforator", "stars": 3417, "tags": ["continuous-profiling", "ebpf", "flamegraph", "profiling", "autofdo", "spgo", "performance-analysis", "devops", "linux", "kubernetes", "docker", "web-server"], "topics": ["continuous-profiling", "ebpf", "flamegraph", "performance", "performance-tools", "profiling"], "urls": [], "use_cases": ["continuously profile CPU usage across a large fleet of servers", "find performance bottlenecks in production services without frame pointers or debug symbols", "deploy cluster-wide profiling on a Kubernetes cluster", "generate sPGO profiles for profile-guided optimization builds", "profile a laptop locally as a replacement for Linux perf", "inspect CPU usage of C++, Go, or Rust applications via flamegraphs"], "what_it_is": "Perforator is a cluster-wide continuous profiling tool by Yandex that collects CPU profiles from production servers using eBPF with negligible overhead. It provides scalable profile storage, flamegraph UI, and supports C, C++, Go, and Rust without recompilation.", "when_to_avoid": ["you need profiling on non-Linux platforms like macOS or Windows", "you primarily profile Java or Python, which are only experimentally supported", "you need memory or GPU profiling rather than CPU profiling"], "when_to_choose": ["you need low-overhead continuous profiling across many Linux machines", "you cannot rebuild applications with frame pointers or debug symbols", "you want PGO profile generation for native code", "you run Kubernetes and want Helm-based profiling deployment"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/perforator", "repo": "yandex/perforator", "role": "main", "score": 78}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:08:03.750682+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T18:38:14.705764+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e8791e52451c2930d45bceb4794ce35f0f05c61d610e8003d3641124f9b80c13", "fetched_at": "2026-08-28T04:08:03.750682+00:00", "kind": "readme", "missing": false, "url": "https://github.com/yandex/perforator"}, {"content_hash": "fa9ac5d63cd964da617ad0b4fc1b0a9905df490493307240838e156f7d6f8039", "fetched_at": "2026-08-29T09:32:31.511452+00:00", "kind": "homepage", "missing": false, "url": "https://perforator.tech"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:08:03.750682+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T18:38:14.705764+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e8791e52451c2930d45bceb4794ce35f0f05c61d610e8003d3641124f9b80c13", "fetched_at": "2026-08-28T04:08:03.750682+00:00", "kind": "readme", "missing": false, "url": "https://github.com/yandex/perforator"}, {"content_hash": "fa9ac5d63cd964da617ad0b4fc1b0a9905df490493307240838e156f7d6f8039", "fetched_at": "2026-08-29T09:32:31.511452+00:00", "kind": "homepage", "missing": false, "url": "https://perforator.tech"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T18:38:14.705764+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e8791e52451c2930d45bceb4794ce35f0f05c61d610e8003d3641124f9b80c13", "fetched_at": "2026-08-28T04:08:03.750682+00:00", "kind": "readme", "missing": false, "url": "https://github.com/yandex/perforator"}, {"content_hash": "fa9ac5d63cd964da617ad0b4fc1b0a9905df490493307240838e156f7d6f8039", "fetched_at": "2026-08-29T09:32:31.511452+00:00", "kind": "homepage", "missing": false, "url": "https://perforator.tech"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:08:03.750682+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:08:03.750682+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:08:03.750682+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T18:38:14.705764+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e8791e52451c2930d45bceb4794ce35f0f05c61d610e8003d3641124f9b80c13", "fetched_at": "2026-08-28T04:08:03.750682+00:00", "kind": "readme", "missing": false, "url": "https://github.com/yandex/perforator"}, {"content_hash": "fa9ac5d63cd964da617ad0b4fc1b0a9905df490493307240838e156f7d6f8039", "fetched_at": "2026-08-29T09:32:31.511452+00:00", "kind": "homepage", "missing": false, "url": "https://perforator.tech"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:08:03.750682+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:08:03.750682+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T18:38:14.705764+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e8791e52451c2930d45bceb4794ce35f0f05c61d610e8003d3641124f9b80c13", "fetched_at": "2026-08-28T04:08:03.750682+00:00", "kind": "readme", "missing": false, "url": "https://github.com/yandex/perforator"}, {"content_hash": "fa9ac5d63cd964da617ad0b4fc1b0a9905df490493307240838e156f7d6f8039", "fetched_at": "2026-08-29T09:32:31.511452+00:00", "kind": "homepage", "missing": false, "url": "https://perforator.tech"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:08:03.750682+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:08:03.750682+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:08:03.750682+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T18:38:14.705764+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e8791e52451c2930d45bceb4794ce35f0f05c61d610e8003d3641124f9b80c13", "fetched_at": "2026-08-28T04:08:03.750682+00:00", "kind": "readme", "missing": false, "url": "https://github.com/yandex/perforator"}, {"content_hash": "fa9ac5d63cd964da617ad0b4fc1b0a9905df490493307240838e156f7d6f8039", "fetched_at": "2026-08-29T09:32:31.511452+00:00", "kind": "homepage", "missing": false, "url": "https://perforator.tech"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:08:03.750682+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:08:03.750682+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T18:38:14.705764+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e8791e52451c2930d45bceb4794ce35f0f05c61d610e8003d3641124f9b80c13", "fetched_at": "2026-08-28T04:08:03.750682+00:00", "kind": "readme", "missing": false, "url": "https://github.com/yandex/perforator"}, {"content_hash": "fa9ac5d63cd964da617ad0b4fc1b0a9905df490493307240838e156f7d6f8039", "fetched_at": "2026-08-29T09:32:31.511452+00:00", "kind": "homepage", "missing": false, "url": "https://perforator.tech"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T18:38:14.705764+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e8791e52451c2930d45bceb4794ce35f0f05c61d610e8003d3641124f9b80c13", "fetched_at": "2026-08-28T04:08:03.750682+00:00", "kind": "readme", "missing": false, "url": "https://github.com/yandex/perforator"}, {"content_hash": "fa9ac5d63cd964da617ad0b4fc1b0a9905df490493307240838e156f7d6f8039", "fetched_at": "2026-08-29T09:32:31.511452+00:00", "kind": "homepage", "missing": false, "url": "https://perforator.tech"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T18:38:14.705764+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e8791e52451c2930d45bceb4794ce35f0f05c61d610e8003d3641124f9b80c13", "fetched_at": "2026-08-28T04:08:03.750682+00:00", "kind": "readme", "missing": false, "url": "https://github.com/yandex/perforator"}, {"content_hash": "fa9ac5d63cd964da617ad0b4fc1b0a9905df490493307240838e156f7d6f8039", "fetched_at": "2026-08-29T09:32:31.511452+00:00", "kind": "homepage", "missing": false, "url": "https://perforator.tech"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T18:38:14.705764+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e8791e52451c2930d45bceb4794ce35f0f05c61d610e8003d3641124f9b80c13", "fetched_at": "2026-08-28T04:08:03.750682+00:00", "kind": "readme", "missing": false, "url": "https://github.com/yandex/perforator"}, {"content_hash": "fa9ac5d63cd964da617ad0b4fc1b0a9905df490493307240838e156f7d6f8039", "fetched_at": "2026-08-29T09:32:31.511452+00:00", "kind": "homepage", "missing": false, "url": "https://perforator.tech"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 41, "rhythm": 72}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["no_license"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 581, "days_push": 7, "days_rel": 190, "gap_med": 17, "n_releases_24m": 8}, "score": 78, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}