About this project

Parca is an open-source continuous profiling platform for analyzing CPU and memory usage over time, down to the line number. It is designed to help reduce infrastructure cost, improve performance, and increase reliability by collecting profiling data across an entire infrastructure. Key capabilities described in the README: - eBPF Profiler: A single profiler using eBPF automatically discovers targets from Kubernetes or systemd across the infrastructure with low overhead. It supports languages such as C, C++, Rust, and Go. - Open Standards: The eBPF-based profiler produces pprof-formatted profiles, and Parca can ingest any pprof-formatted profiles, supporting broad language adoption and interoperability with existing tooling. - Optimized Storage and Querying: Profiling data is stored efficiently while retaining raw data. Data can be sliced and diced through label-based search. Users can aggregate profiling data infrastructure-wide, view single profiles in time, or compare across dimensions. Use cases highlighted in the README include saving money by finding wasted resources, improving performance by identifying hot paths with statistical significance and comparing differences across labels such as deploys, versions, and regions, and understanding incidents such as memory leaks or momentary CPU or I/O spikes. Installation and documentation are available on the project website. Development requires Go, Node, and Pnpm. The repository includes a Makefile build process, and the compiled binary runs locally with a web UI on port 7070 by default. Configuration is handled through flags and a parca.yaml file, covering HTTP settings, storage options, symbolization, debuginfo handling, and remote store connections. The project was originally developed by Polar Signals and is released under the Apache 2 license.