Skip to content
SPECIFICTION
Get listed

bpftrace vs Parca

bpftrace

bpftrace.org

Parca

parca.dev

Side by side

FigurebpftraceParca
Price fromFreeFree
Free planYesYes
Free trial——
Open source——
Web—Yes
LinuxYesYes
API—Yes
Self-hostedYesYes
Plans published11
Spec score · eBPF Observability Tools8.6 (#4)8.1 (#9)
IntegrationA community language server offers autocompletion, error diagnostics, and go-to-definition in editors that support LSP.A Grafana plugin can visualize profiles stored in Parca.
SecurityAs a security measure, bpftrace refuses to import files from world-writable directories.The project says the Agent source is open source, it is written in Go, and its binaries and container images are fully reproducible; the Agent needs privileged access to load eBPF programs.
SupportThe project README lists GitHub Discussions, the issue tracker, monthly office hours, and Discord as ways to get help or participate.Polar Signals offers paid support for users of Parca’s open-source project.

Plans

bpftrace

  • bpftraceFree

bpftrace pricing →

Parca

  • Parca Open SourceFree

Parca pricing →

In their own words

bpftrace

bpftrace is a free, high-level tracing language and general-purpose Linux tracing tool built on eBPF. It supports kernel and user-space dynamic tracing, perf events, USDT, uprobes, and tracepoints. Its language draws from awk, C, DTrace, and SystemTap. Programs can come from files, inline -e input, or standard input, and the standard library supplies builtins, functions, macros, and map-value functions. LLVM compiles scripts to eBPF bytecode; libbpf interacts with Linux’s BPF subsystem, with bcc also used in the implementation. Scripts can import bpftrace files, C headers, BPF C source, and supported directory files. Unsafe helpers require --unsafe, and imports from world-writable directories are refused. The default probe maximum is 1,024; increasing it can raise memory use, startup time, overhead, or risk freezes and crashes. Supported architectures include x86_64, arm64, s390x, arm32, loongarch64, mips64, ppc64, and riscv64. Some features need kernel headers; vmlinux BTF needs Linux 4.18 or later with CONFIG_DEBUG_INFO_BTF enabled.

Visit bpftrace.org

Parca

Parca is a self-hosted profiling system that collects and stores CPU, memory, I/O, and other profiles for queries over time. Its eBPF-based Parca Agent captures user-space and kernel-space stack traces, while the system also accepts valid pprof-formatted profiles pushed through gRPC or pulled from targets over HTTP. Users can query by labels, compare dimensions such as processes or code versions, and view profiles in the web interface with Icicle Graphs. A Grafana plugin can display profiles stored in Parca. The agent supports automatic profiling for languages including C, C++, Go, Rust, .NET, Deno, Erlang, Java, Julia, Node.js, Wasmtime, PHP, Ruby, and Python. Installation options include binaries, containers, Kubernetes, and Snaps. Parca is open source under the Apache 2 License and is free. The agent requires Linux kernel 4.18 or newer and privileged access to load eBPF programs. Parca says it receives profiling statistics and function-name metadata, not binaries or source code.

Visit parca.dev