FREEDOM251

Freedom251 › eBPF Observability Tools

bpftrace

Free plan LinuxSelf-hosted

Visit bpftrace Alternatives Pricing

bpftrace's own site

What bpftrace is

bpftrace is a free, open-source tracing language and general-purpose tracing tool for Linux systems that use eBPF. It supports dynamic tracing in both kernel and user space, as well as perf events, USDT, uprobes, and tracepoints. Its language draws on ideas from awk, C, DTrace, and SystemTap, and programs can be run from a file, entered inline with -e, or supplied through standard input. The standard library includes builtins, functions, macros, and map value functions. LLVM compiles scripts into eBPF bytecode; bpftrace uses libbpf and bcc to interact with Linux's BPF subsystem. Scripts can import bpftrace files, C headers, and BPF C source files, as well as supported files from a directory. Helpers marked unsafe require the --unsafe flag, and imports from world-writable directories are refused. The default maximum is 1,024 probes. Raising it can increase memory use and startup time, cause high overhead, or lead to system freezes or crashes. bpftrace is self-hosted, and its documentation lists multiple supported architectures. Some features require kernel headers; vmlinux BTF support requires Linux 4.18 or later with CONFIG_DEBUG_INFO_BTF enabled.

Who it suits

bpftrace suits Linux developers and operators who need to trace or debug activity in the kernel and user space. It is also intended for users and organizations that rely on production tracing, provided their systems have a compatible Linux kernel and BPF support.

What it does well

  • Free and open source.
  • Supports tracing in both kernel and user space.
  • Offers probes including kprobes, uprobes, and tracepoints.
  • Scripts can be run from files, inline, or standard input.
  • Supports eight listed processor architectures.
  • Package-manager installation commands are listed for multiple Linux distributions.

What to know first

  • Requires Linux with a compatible kernel and BPF support.
  • Some features require kernel headers.
  • Raising the default probe limit can cause high overhead, freezes, or crashes.
  • Unstable features may change or be removed.

Limits

bpftrace is free, with no paid plan listed. Its default maximum is 1,024 probes; raising that limit can increase memory use and startup time, create high overhead, or cause freezes or crashes. Some features require kernel headers, and vmlinux BTF support requires Linux 4.18 or later with CONFIG_DEBUG_INFO_BTF enabled.

Plans

PlanBilled and limitsPrice
bpftraceOpen-source Linux tracing tool · requires a compatible Linux kernel and BPF supportFree

As bpftrace.org lists them, read 4 Oct 2026. The maker's own page has the final word.

Getting started

  1. Visit the bpftrace website and follow the installation instructions for your Linux distribution.
  2. Install bpftrace using a listed package manager.
  3. Run a program from a script file, provide it inline with -e, or pass it through standard input.
  4. Check kernel headers or BTF requirements for the features you plan to use.

Verdict

Choose bpftrace if you need a free Linux tool for tracing kernel and user-space activity through eBPF. Look elsewhere if you need a tool for another operating system or cannot meet its kernel and BPF requirements.

Questions

How much does bpftrace cost?

bpftrace is free and open source.

Which operating systems does bpftrace support?

It supports Linux. It requires a compatible Linux kernel and BPF support.

Is bpftrace self-hosted?

Yes. bpftrace is self-hosted and runs on Linux systems.

Which processor architectures are supported?

The documentation lists x86_64, arm64, s390x, arm32, loongarch64, mips64, ppc64, and riscv64.

Does bpftrace require special kernel support?

It requires a compatible Linux kernel and BPF support. Some features require kernel headers; vmlinux BTF requires Linux 4.18 or later with CONFIG_DEBUG_INFO_BTF enabled.

Where can users get help?

The project points users to GitHub Discussions, its issue tracker, monthly office hours, and Discord.

Facts from bpftrace's own pages

Architectures
The documentation lists x86_64, arm64, s390x, arm32, loongarch64, mips64, ppc64, and riscv64 as supported architectures. · bpftrace.org, 4 Oct 2026
Compiler and libraries
bpftrace uses LLVM as a compiler backend and libbpf to interact with the Linux BPF subsystem. · github.com, 3 Oct 2026
Implementation
bpftrace uses LLVM to compile scripts to eBPF bytecode and uses libbpf and bcc to interact with Linux BPF. · bpftrace.org, 4 Oct 2026
Import security
bpftrace refuses to import files from world-writable directories. · bpftrace.org, 3 Oct 2026
Installation
The project README lists installation commands for several Linux distribution package managers, including apt, dnf, apk, pacman, emerge, and zypper. · github.com, 3 Oct 2026
Install options
The project README lists package-manager installation commands for distributions including Ubuntu, Fedora, Alpine, Arch, Gentoo, Nix, and openSUSE. · github.com, 4 Oct 2026
Integration
A community language server offers autocompletion, error diagnostics, and go-to-definition in editors that support LSP. · bpftrace.org, 4 Oct 2026
Intended users
The project says its contributors, users, and organizations rely on it for production tracing and debugging. · github.com, 3 Oct 2026
Language
The bpftrace language is inspired by awk, C, DTrace, and SystemTap. · bpftrace.org, 4 Oct 2026
Limit
The documentation says unstable features are subject to change or removal. · bpftrace.org, 4 Oct 2026
Operational limit
The default maximum number of probes is 1,024; increasing it can use more memory, increase startup time, and cause high overhead or system freezes or crashes. · bpftrace.org, 3 Oct 2026
Playground
The web playground notes that it does not yet support all bpftrace features. · bpftrace.org, 4 Oct 2026
Probe types
The documentation describes probes including kprobes, uprobes, and tracepoints. · bpftrace.org, 4 Oct 2026
Purpose
bpftrace is a high-level tracing language for Linux for writing observability-based eBPF programs. · bpftrace.org, 4 Oct 2026
Script imports
Scripts can import bpftrace files, C headers, BPF C source files, or supported files from a directory. · bpftrace.org, 4 Oct 2026
Scripting
Programs can be supplied as a file, inline with -e, or through standard input. · bpftrace.org, 3 Oct 2026
Security
As a security measure, bpftrace refuses to import files from world-writable directories. · bpftrace.org, 4 Oct 2026
Security control
Helpers marked unsafe require the --unsafe flag to use. · bpftrace.org, 3 Oct 2026
Standard library
The standard library includes builtins, functions, macros, and map value functions. · bpftrace.org, 3 Oct 2026
Support
The project README lists GitHub Discussions, the issue tracker, monthly office hours, and Discord as ways to get help or participate. · github.com, 4 Oct 2026
System requirements
Some features require kernel headers, and BTF support for vmlinux requires Linux 4.18 or later with CONFIG_DEBUG_INFO_BTF enabled. · bpftrace.org, 4 Oct 2026
Tracing
It supports static and dynamic tracing for both the kernel and user space. · bpftrace.org, 4 Oct 2026
Tracing sources
It supports kernel and user-level dynamic tracing, perf events, USDT, uprobes, and tracepoints. · github.com, 3 Oct 2026

Where bpftrace stands on Freedom251

Look at these too