bpftrace vs Inspektor Gadget
bpftrace
bpftrace.orgInspektor Gadget
inspektor-gadget.ioSide by side
| Figure | bpftrace | Inspektor Gadget |
|---|---|---|
| Price from | Free | Free |
| Free plan | Yes | Yes |
| Free trial | — | — |
| Open source | — | — |
| Windows | — | Yes |
| macOS | — | Yes |
| Linux | Yes | Yes |
| API | — | Yes |
| Self-hosted | Yes | Yes |
| Plans published | 1 | 1 |
| Spec score · eBPF Observability Tools | 8.6 (#4) | 7.9 (#13) |
| Purpose | bpftrace is a high-level tracing language for Linux for writing observability-based eBPF programs. | Inspektor Gadget is a set of tools and a framework for eBPF-based data collection and system inspection on Kubernetes clusters and Linux hosts. |
| Security | As a security measure, bpftrace refuses to import files from world-writable directories. | Official image-based gadgets are signed with cosign, and the documentation describes verifying gadget signatures. |
Plans
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.
Inspektor Gadget
Inspektor Gadget is an open-source toolkit and framework for collecting eBPF data and inspecting Kubernetes clusters and Linux hosts. Its gadgets package eBPF programs as OCI images that can be deployed to examine systems. The toolkit enriches low-level kernel data with context such as Kubernetes pod and container names, and can export collected information to observability tools. WebAssembly modules can process data and customize operators; developers can also use the framework through a Go library. In Kubernetes, it runs as a DaemonSet, with one pod on each cluster node. Project gadgets require Linux kernel 5.10 or later with BTF enabled. Supported Kubernetes environments include Minikube, AKS, EKS, GKS, OpenShift, and Talos; AWS Fargate, Azure Container Instances, and GKE Autopilot are listed as unsupported. Official image-based gadgets are signed, and operators can restrict which gadgets may run by digest, tag, or image prefix. Inspektor Gadget has no long-term support releases: only the latest release receives maintenance and security updates.