Skip to content

Releases: cloudflare/ebpf_exporter

v2.5.1 / 2025-08-05

05 Aug 16:19
7c76838
Compare
Choose a tag to compare
  • Added support for BPF_MAP_CGRP_STORAGE type in cgroup_id_map (#565)
  • Fixed FromAsCasing CI complaints about Dockerfile (#564)
  • Bumped dependencies to latest (#562, #563)

v2.5.0 / 2025-07-31

31 Jul 17:48
42bc982
Compare
Choose a tag to compare

v2.4.2 / 2024-05-30

30 May 22:41
b62525b
Compare
Choose a tag to compare

v2.4.1 / 2024-04-18

19 Apr 04:10
3c58e66
Compare
Choose a tag to compare
  • Disabled cache for tracing labels, which was causing a memory leak (#363)
  • Enabled pprof support (#364)
  • Added errno decoder (#378)
  • Added padding to label decoder to skip struct holes (#376)
  • Added ext4dist example (#365)
  • Added xfsdist example (#368)
  • Fixed biolatency example (#373, #374, #375)
  • Rewrote sock-trace and simplified example with socket cookies (#381)
  • Split cachestat into pre and post kernel 5.16 (#372)
  • Fixed tracing screenshot path in the README (#379)
  • Added a helper to extract tracing propagation args (#358)
  • Added probing for /usr/share/hwdata/pci.ids for RedHat/Fedora/CentOS (#380)
  • Added sd_notify support when running under systemd (#382)
  • Bumped dependencies to latest (#359, #360, #361, #366, #367)

v2.4.0 / 2024-02-27

28 Feb 04:01
ce632e8
Compare
Choose a tag to compare

This is a big release that comes with a major new feature: Distributed Tracing via OpenTelemetry (#297).

You can find the full documentation in ./tracing.

As a quick demo, you could run a demo locally with a provided Docker image:

  1. Run Jaeger all-in-one to provide an OpenTelemetry sink and UI:
docker run --rm -it --net host jaegertracing/all-in-one:1.54.0
  1. Open Jaeger UI: http://localhost:16686/.

  2. Build tracing demos from the root of the repo:

make tracing-demos
  1. Run ebpf_exporter with a sock-trace example from the root of the repo:
docker run --rm -it --privileged --net host -e OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4318 -v $(pwd)/tracing:/tracing ghcr.io/cloudflare/ebpf_exporter:v2.4.0 --config.dir=examples --config.names=sock-trace
  1. Run the demo:
./tracing/demos/sock/demo
  1. Refresh the Jaeger UI and select demo as the service, click "Find Traces".

  2. Observe a trace that includes both userspace demo component produced spans and kernel spans produced with ebpf_exporter:

image image

We have more examples bundled, please see the docs.

Tracing support required us to take a few dependencies that needed a newer Go version, so we bumped the build requirement from go1.18 to go1.20.

Other changes:

  • Bumped dependencies to latest (#347, #348, #353, #354)
  • Updated softirq-latency-net-rx example (#349)
  • Modernized eBPF description (#357)

v2.3.3 / 2024-02-06

06 Feb 06:45
79455b0
Compare
Choose a tag to compare
  • Partition decoder cache by name (#346)

v2.3.2 / 2024-02-05

06 Feb 01:20
88f7446
Compare
Choose a tag to compare
  • Protect decoder cache with a mutex (#345)
  • Upgrade GitHub actions as recommended by GitHub (#344)

v2.3.1 / 2024-02-05

05 Feb 21:27
6133b48
Compare
Choose a tag to compare
  • Added decoder cache (#342)
  • Added interface name decoder with an example (#339)
  • Updated dependencies (#337, #341)
  • Added a link to a third party helm chart (#336)

v2.3.0 / 2023-12-26

27 Dec 04:19
4145b41
Compare
Choose a tag to compare

Highlights:

New examples:

  • Added icmp-ip example with inet_ip decoder (#251)
  • Added pci_vendor, pci_device, pci_class, pci_subclass decoders with examples (#255, #274)
  • Added kstack decoder with an example (#313)
  • Added unix-socket-backlog example (#284)
  • Added softirq-latency example (#300, #304)
  • Added softirq-latency-net-rx example that's an array based version of softirq-latency (#310)
  • Added cfs-throttling example (#311)
  • Added tcp-retransmit example (#318, #335)

Changes to examples:

  • Added jsonschema for examples and cleaned up unused keys (#314)
  • Added exp2zero histogram type for cases when 0 is a significant outcome and added tcp-syn-backlog-exp2zero example (#280)
  • Fixed uint decoder for very large numbers (#296)
  • Removed copy-pasted division by 50 in tcp-syn-backlog-exp2zero example (#301)
  • Added increment_exp2zero_histogram helper macro for examples (#302)
  • Added {increment_map,increment_{exp2,ex2zero}_histogram}_nosync helper macros (#303, #305)
  • Fixed tcp-syn-backlog example with linear histogram (#306)
  • Added example rebuild if any of the headers change (#307)
  • Simplified header includes in examples (#312)
  • Fixed shrinklat example failure due to wrongly sized key (#319)
  • Suppressed BTF warning in the shrinklat example due to type mismatch (#327)
  • Fixed biolatency kernel version check after an upstream LTS backport (#309)

Build changes:

  • Bumped Go to 1.20 and dependencies to latest (#249, #258, #281, #282, #283, #289, #317, #333, #334)
  • Added build-dynamic and build-static make goals (#241)
  • Expanded linting from golangci-lint and fixed uncovered issues (#256, #259, #269, #270)
  • Added configuration loading checks for existing configs to CI (#322, #326)
  • Added export of built examples in CI jobs to attach them to releases (#308, #325)
  • Suppressed errors when building outside of a git repo (#242)
  • Added checks for libbpf version on startup to prevent runtime errors (#247)
  • Clarified libbpf instructions (#262)
  • Started running tests with -race if available (#267)
  • Added checks that produced binaries work in CI (#268)
  • Switched from dbhi/qus/action to more official docker/setup-qemu-action for CI builds (#272)
  • Split Docker image into multiple variants: ebpf_exporter and ebpf_exporter_with_examples (#273)
  • Optimized libbpf dependencies in CI (#275)
  • Added clang-format output diff to CI failures (#328)

Other changes:

  • Styling and typo fixes (#252, #276, #329)
  • Added map value size validation to startup config checks (#257, #321, #322)
  • Added linguist ignores for vmlinux.h files that were screwing language stats (#248)
  • Added .dockerignore for libbpf and built examples (#298)
  • Removed unused perf_event from config definitions (#315)
  • Added support for external BTF information (#320, #323)
  • Added a uprobe benchmark (it's slow!) (#331)

v2.2.0 / 2023-07-25

25 Jul 04:21
92f7021
Compare
Choose a tag to compare

The best release yet! Syscalls, per-cpu maps, running with no elevated capabilities at runtime — it has it all.

  • Added capability dropping and documented necessary capabilities (#231)
  • Added support for systemd socket activation (#237)
  • Added tracepoints and empty probes benchmark (#236)
  • Added support for reading percpu maps (#226)
  • Added support for XDP attachment with an example (#215, thanks @huseyinsaatci)
  • Added syscall decoder with an example (#214, thanks @huseyinsaatci)
  • Added udp receive packet drops example (#213, #229)
  • Added kfree_skb example (#233, #234)
  • Simplified oomkill example (#230)
  • Replaced tracepoints with tp_btf in examples to remove the need for tracefs (#227)
  • Reduced libbpf logging unless --debug is enabled (#216)
  • Allowed suppressing timestamps in logs with --log.no-timestamps (#239)
  • Added clang-format config to enforce formatting on C code (#222)
  • Formatted examples uniformly (#228)
  • Added default build goals to Makefiles (#225)
  • Updated ubuntu in CI from 20.04 to 22.04 (#223)
  • Updated vmlinux.h from 5.15.0-25 to 6.3.0-7 and generation instructions (#224)
  • Updated dependencies to latest (#197, #202, #203, #204, #205, #206, #207, #210, #211, #212, #218, #238)