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](https://github.com/cloudflare/ebpf_exporter/tree/master/tracing#readme).
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
2. Open Jaeger UI: [http://localhost:16686/](http://localhost:16686/).
3. Build tracing demos from the root of the repo:
make tracing-demos
4. Run `ebpf_exporter` with a `sock-trace` example from the root of the repo:
6. Refresh the Jaeger UI and select `demo` as the service, click "Find Traces".
7. Observe a trace that includes both userspace demo component produced spans and kernel spans produced with `ebpf_exporter`:
<img width="1552" alt="image" src="https://github.com/cloudflare/ebpf_exporter/assets/89186/37d9d4a9-6764-4b0c-8cfc-343f9546fde5">
<img width="1552" alt="image" src="https://github.com/cloudflare/ebpf_exporter/assets/89186/3f342237-a36c-4c2e-92b4-0d6cdb2a43b6">
We have more examples bundled, please see [the docs](https://github.com/cloudflare/ebpf_exporter/tree/master/tracing#readme).
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)
https://github.com/cloudflare/ebpf_exporter/releases/tag/v2.4.0 Release notes:
docker run --rm -it --net host jaegertracing/all-in-one:1.54.0
make tracing-demos
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
./tracing/demos/sock/demo