About this project
Parca Agent is an always-on sampling profiler built on eBPF. It captures raw profiling data with low overhead, observing user-space and kernel-space stack traces roughly 19 times per second, and builds pprof-formatted profiles from the extracted data. Collected data can be viewed through local HTTP endpoints or sent to a Parca server for querying and long-term analysis.
Requirements: Linux kernel 5.3+ with BTF. The agent must run as root or with CAP_SYS_ADMIN; the project documents security considerations and a vulnerability reporting process.
Language support is broad and evolving, including C, C++, Go (with extended support), Rust, .NET, Deno, Erlang, Java, Julia, Node.js, Wasmtime, PHP 8+, Ruby and Python. On-CPU profiles are available, with network usage and allocations noted as planned. Runtime-specific information such as goroutines requires explicit instrumentation.
Configuration can be supplied through command-line flags or a YAML file via --config-path; flags take precedence over file values. Documented options cover logging, HTTP address, profiling frequency and duration, probabilistic profiling, metadata labels, local and remote storage, debuginfo handling, OTLP export, eBPF buffer and map tuning, offline mode, and CUDA launch instrumentation.
Profiles always carry labels such as node, comm, cpu, thread_id and thread_name, with optional external labels. Prometheus-style relabeling can attach a large set of discovery metadata, including process details, system kernel information, and Kubernetes, Docker, containerd and LXC container attributes. Two example configurations are provided: one promoting Kubernetes metadata under the agent's own label names, and one using OpenTelemetry semantic convention names for OTLP export.
User-space code is Apache 2 licensed; kernel-space eBPF profilers are GPLv2. The project credits Inspektor Gadget as an inspiration.
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.