A high-level tracing language for Linux that leverages eBPF for efficient system and application observability.
bpftrace is a high-level tracing language and tool for Linux that allows users to write scripts to observe and analyze system and application behavior in real-time. It solves the problem of deep system observability by providing a safe, efficient way to instrument the Linux kernel and user-space programs with minimal performance overhead, leveraging the eBPF technology.
System administrators, performance engineers, kernel developers, and SREs who need to diagnose performance bottlenecks, debug complex system issues, or monitor security events on Linux systems.
Developers choose bpftrace for its expressive, high-level language that simplifies writing powerful tracing scripts, its efficient eBPF-based execution with minimal overhead, and its comprehensive support for various tracing sources, making it a versatile alternative to traditional tools like DTrace and SystemTap.
High-level tracing language for Linux
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Inspired by awk and DTrace, it allows concise, high-level scripting for complex observability, reducing the need for deep kernel expertise as highlighted in the philosophy.
Leverages Linux's eBPF for safe, minimal-overhead data collection, making it suitable for production systems without significant performance impact.
Supports kprobes, uprobes, tracepoints, and perf events, enabling versatile tracing across kernel and user-space, as detailed in the multi-source instrumentation feature.
Uses LLVM and libbpf for robust compilation and BPF program loading, ensuring reliability and compatibility with the Linux BPF subsystem.
With GitHub Discussions, Discord, and canonical tools, users have ample support and shared scripts for common tracing tasks.
Requires a modern Linux kernel with eBPF enabled; older or custom kernels may lack compatibility, limiting deployment options and increasing setup complexity.
The language and tracing concepts assume familiarity with system internals, which can be daunting for users new to observability or eBPF, beyond just tool usage.
Information is split between the GitHub repo and bpftrace.org, making it harder to find unified, up-to-date guidance, as noted in the README's external links.
The migration guide indicates updates may introduce incompatibilities, requiring script adjustments and careful version management, especially with distribution packages.
bpftrace is an open-source alternative to the following products:
A dynamic tracing framework for troubleshooting kernel and application problems on production systems in real time.
SystemTap is a Linux-based tool for monitoring and tracing the operation of a running Linux system, particularly the kernel, allowing users to write scripts to extract, filter, and summarize data.