Skip to content

v2.4.0 / 2024-02-27

Compare
Choose a tag to compare
@bobrik bobrik released this 28 Feb 04:01
· 135 commits to master since this release
ce632e8

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)