iovisor/bpftrace

High-level tracing language for Linux

10,321

stars

4,675

commits

C++

primary language

Sep 11, 2026

updated

bpftrace.org/
bcc
bpf
ebpf
kprobes
tracepoints
tracing
uprobes
usdt

README

bpftrace

Build Status Latest Release License

bpftrace is a general purpose tracing tool and language for Linux. It leverages eBPF to provide powerful, efficient tracing capabilities with minimal overhead. bpftrace uses LLVM as a compiler backend, and libbpf for interacting with the Linux BPF subsystem, including kernel dynamic tracing (kprobes, hardware and software perf events), user-level dynamic tracing (USDT, uprobes), tracepoints (regular, raw), and more. The bpftrace language is inspired by awk, C, and predecessor tracers such as DTrace and SystemTap.

Visit bpftrace.org for tutorials, documentation, and labs!

This respository also contains some canonical tools.

For migrating from older versions, see the migration guide.

Quick Start

Get started with bpftrace in just a few minutes! To build from source, see the development guide. However, you can often install it using your distribution's package manager.

[!IMPORTANT] When using a distribution package, be sure to verify bpftrace --version when referencing documentation.

DistributionsCommand
Ubuntu 22.04 Ubuntu 24.04 Ubuntu 25.04 Ubuntu 25.10 Debian 13 Debian 14 Debian Unstable
sudo apt install bpftrace
    
Fedora 42 Fedora 43 Fedora Rawhide CentOS 9 CentOS 10
sudo dnf install bpftrace
Alpine 3.21 Alpine 3.22 Alpine Edge
sudo apk add bpftrace
Arch Linux
sudo pacman -S bpftrace
Gentoo
sudo emerge -av bpftrace
nixpkgs
nix-shell -p bpftrace
openSUSE Tumbleweed
sudo zypper install bpftrace
AppImage (nightly)
declare -A suffixes=([x86_64]="X64" [amd64]="AMD64");
declare prefix="bpftrace/bpftrace/workflows/binary/master/bpftrace";
declare url="https://nightly.link/${prefix}-${suffixes[$(uname -m)]}.zip";
curl -L -o bpftrace.zip "${url}" && unzip bpftrace.zip

Contributing

See our contributing guide for details on how to contribute, and our governance document for details on how the project is run.

If you have tools built with bpftrace that you'd like to submit, please contribute to the user-tools repository.

Building

For full build instructions (Nix or distro-native), see the development guide.

Community & Support

bpftrace is built and maintained by a diverse community of contributors, users, and organizations who rely on it for production tracing and debugging.

Get help or get involved:

Contributors

(top 30 of 269)

danobi

877 commits

viktormalik

494 commits

fbs

445 commits

ajor

398 commits

iovisor/bpftrace

High-level tracing language for Linux

10,321

stars

4,675

commits

C++

primary language

Sep 11, 2026

updated

bpftrace.org/
bcc
bpf
ebpf
kprobes
tracepoints
tracing
uprobes
usdt

README

bpftrace

Build Status Latest Release License

bpftrace is a general purpose tracing tool and language for Linux. It leverages eBPF to provide powerful, efficient tracing capabilities with minimal overhead. bpftrace uses LLVM as a compiler backend, and libbpf for interacting with the Linux BPF subsystem, including kernel dynamic tracing (kprobes, hardware and software perf events), user-level dynamic tracing (USDT, uprobes), tracepoints (regular, raw), and more. The bpftrace language is inspired by awk, C, and predecessor tracers such as DTrace and SystemTap.

Visit bpftrace.org for tutorials, documentation, and labs!

This respository also contains some canonical tools.

For migrating from older versions, see the migration guide.

Quick Start

Get started with bpftrace in just a few minutes! To build from source, see the development guide. However, you can often install it using your distribution's package manager.

[!IMPORTANT] When using a distribution package, be sure to verify bpftrace --version when referencing documentation.

DistributionsCommand
Ubuntu 22.04 Ubuntu 24.04 Ubuntu 25.04 Ubuntu 25.10 Debian 13 Debian 14 Debian Unstable
sudo apt install bpftrace
    
Fedora 42 Fedora 43 Fedora Rawhide CentOS 9 CentOS 10
sudo dnf install bpftrace
Alpine 3.21 Alpine 3.22 Alpine Edge
sudo apk add bpftrace
Arch Linux
sudo pacman -S bpftrace
Gentoo
sudo emerge -av bpftrace
nixpkgs
nix-shell -p bpftrace
openSUSE Tumbleweed
sudo zypper install bpftrace
AppImage (nightly)
declare -A suffixes=([x86_64]="X64" [amd64]="AMD64");
declare prefix="bpftrace/bpftrace/workflows/binary/master/bpftrace";
declare url="https://nightly.link/${prefix}-${suffixes[$(uname -m)]}.zip";
curl -L -o bpftrace.zip "${url}" && unzip bpftrace.zip

Contributing

See our contributing guide for details on how to contribute, and our governance document for details on how the project is run.

If you have tools built with bpftrace that you'd like to submit, please contribute to the user-tools repository.

Building

For full build instructions (Nix or distro-native), see the development guide.

Community & Support

bpftrace is built and maintained by a diverse community of contributors, users, and organizations who rely on it for production tracing and debugging.

Get help or get involved:

Contributors

(top 30 of 269)

danobi

877 commits

viktormalik

494 commits

fbs

445 commits

ajor

398 commits

Languages

C++

73.5%

C

22.7%

CMake

1.7%

Python

1.2%