diff --git a/_data/toc.yaml b/_data/toc.yaml index 1e7d304b3e..29c54bc233 100644 --- a/_data/toc.yaml +++ b/_data/toc.yaml @@ -1561,6 +1561,8 @@ manuals: title: Multi-stage builds - path: /build/building/multi-platform/ title: Multi-platform images + - path: /build/building/opentelemetry/ + title: OpenTelemetry support - path: /build/building/base-images/ title: Create your own base image - sectiontitle: Drivers diff --git a/build/building/opentelemetry.md b/build/building/opentelemetry.md new file mode 100644 index 0000000000..7287d229e8 --- /dev/null +++ b/build/building/opentelemetry.md @@ -0,0 +1,37 @@ +--- +title: OpenTelemetry support +keywords: build, buildx buildkit, opentelemetry +--- + +Both Buildx and BuildKit support [OpenTelemetry](https://opentelemetry.io/){:target="blank" rel="noopener" class=""}. + +To capture the trace to [Jaeger](https://github.com/jaegertracing/jaeger){:target="blank" rel="noopener" class=""}, +set `JAEGER_TRACE` environment variable to the collection address using a +`driver-opt`. + +First create a Jaeger container: + +```console +$ docker run -d --name jaeger -p "6831:6831/udp" -p "16686:16686" jaegertracing/all-in-one +``` + +Then [create a `docker-container` builder](../drivers/docker-container.md) +that will use the Jaeger instance via the `JAEGER_TRACE` env var: + +```console +$ docker buildx create --use \ + --name mybuilder \ + --driver docker-container \ + --driver-opt "network=host" \ + --driver-opt "env.JAEGER_TRACE=localhost:6831" +``` + +Boot and [inspect `mybuilder`](../../engine/reference/commandline/buildx_inspect.md): + +```console +$ docker buildx inspect --bootstrap +``` + +Buildx commands should be traced at `http://127.0.0.1:16686/`: + +![OpenTelemetry Buildx Bake](../images/opentelemetry.png) diff --git a/build/images/opentelemetry.png b/build/images/opentelemetry.png new file mode 100644 index 0000000000..fdd0014f93 Binary files /dev/null and b/build/images/opentelemetry.png differ