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:
- 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
-
Open Jaeger UI: http://localhost:16686/.
-
Build tracing demos from the root of the repo:
make tracing-demos
- Run
ebpf_exporter
with asock-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
- Run the demo:
./tracing/demos/sock/demo
-
Refresh the Jaeger UI and select
demo
as the service, click "Find Traces". -
Observe a trace that includes both userspace demo component produced spans and kernel spans produced with
ebpf_exporter
:
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: