Parca logo

Parca

Continuous eBPF profiling for cost-effective performance insights

Parca provides zero-instrumentation, continuous profiling across Kubernetes and systemd environments, delivering pprof-compatible data with low overhead to help reduce waste, boost performance, and troubleshoot incidents.

Parca banner

Overview

Overview

Parca delivers continuous, zero‑instrumentation profiling for modern cloud workloads. By leveraging eBPF, it automatically discovers targets in Kubernetes clusters or systemd services, collecting CPU and memory usage down to the line number with minimal overhead.

Capabilities

The profiler outputs standard pprof profiles, enabling seamless integration with existing tooling, while also ingesting external pprof data. Profiles are stored in an optimized, label‑driven store that supports powerful queries across dimensions such as version, region, or deployment.

Deployment

Deploy the Parca agent alongside your services; it runs as a single binary with configurable storage options and optional persistence. The web UI, accessible on port 7070 by default, visualizes trends over time, helping teams identify hot paths, reduce resource waste, and accelerate incident resolution.

Highlights

eBPF‑based auto‑discovery for Kubernetes and systemd targets
Standard pprof output and ingestion for broad language support
Label‑driven storage with efficient slicing and aggregation
Very low runtime overhead across supported languages

Pros

  • Zero instrumentation required
  • Low overhead profiling across the entire infrastructure
  • Works with multiple native languages (C, C++, Rust, Go, etc.)
  • Integrates with existing pprof tooling

Considerations

  • Requires Linux kernel with eBPF support
  • May need root privileges for eBPF programs
  • Profile storage can grow without retention policies
  • Learning curve for label‑based query language

Managed products teams compare with

When teams consider Parca, these hosted platforms usually appear on the same shortlist.

Blackfire Continuous Profiler logo

Blackfire Continuous Profiler

Low-overhead continuous profiling for app performance optimization.

Datadog Continuous Profiler logo

Datadog Continuous Profiler

Always-on code profiling to cut latency and cloud costs.

Elastic Universal Profiling logo

Elastic Universal Profiling

Whole-system, always-on profiling with no instrumentation.

Looking for a hosted option? These are the services engineering teams benchmark against before choosing open source.

Fit guide

Great for

  • Teams needing continuous performance visibility across microservices
  • Organizations aiming to cut cloud costs through profiling
  • SREs troubleshooting CPU, memory, or I/O spikes
  • Developers of native applications seeking statistical hot‑path analysis

Not ideal when

  • Environments lacking eBPF support (old kernels, non‑Linux OS)
  • Purely interpreted language stacks without native binaries
  • Small single‑node deployments where overhead outweighs benefit
  • Teams without resources to manage profiling data retention

How teams use it

Identify CPU hot paths in a Kubernetes service

Pinpoint functions consuming the majority of CPU, enabling targeted optimizations that reduce resource usage.

Detect memory leaks in a Go application

Continuous memory profiling reveals growing allocations, allowing developers to fix leaks before they impact stability.

Compare performance across deployment versions

Label‑based queries show how code changes affect latency and CPU, supporting data‑driven rollbacks.

Correlate incidents with resource spikes

During outages, profiling data provides deep insight into execution paths, speeding root‑cause analysis.

Tech snapshot

TypeScript66%
Go32%
Shell1%
Jsonnet1%
JavaScript1%
CSS1%

Tags

observabilitycontinuous-profilingprofileskubernetescppcontainersebpf-programspprofprometheusebpfperformancephppythonprofilingbpfrustcgolangjavascriptruby

Frequently asked questions

Do I need to modify my code to use Parca?

No. Parca uses eBPF to profile processes without any code changes.

Which programming languages are supported?

Parca works with any language that can produce pprof profiles and has native binaries, including C, C++, Rust, Go, and more.

How does Parca store profiling data?

Profiles are stored in an optimized columnar format, indexed by user‑defined labels for fast querying.

Can I ingest existing pprof files?

Yes, Parca can ingest any pprof‑formatted profile alongside data collected by its eBPF agent.

What are the system requirements?

A Linux kernel with eBPF support (typically 4.14 or newer) and sufficient storage for profile data.

Project at a glance

Active
Stars
4,746
Watchers
4,746
Forks
243
LicenseApache-2.0
Repo age7 years old
Last commityesterday
Primary languageTypeScript

Last synced yesterday