Home Explore Blog CI



docker

content/manuals/build/debug/opentelemetry.md
93b5f3e48cc9ca4b695e3363605c7317f3cd35c3ffb1537500000003000004a2
---
title: OpenTelemetry support
description: Analyze telemetry data for builds
keywords: build, buildx buildkit, opentelemetry
aliases:
- /build/building/opentelemetry/
---

Both Buildx and BuildKit support [OpenTelemetry](https://opentelemetry.io/).

To capture the trace to [Jaeger](https://github.com/jaegertracing/jaeger),
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" --restart unless-stopped jaegertracing/all-in-one
```

Then [create a `docker-container` builder](/manuals/build/builders/drivers/docker-container.md)
that will use the Jaeger instance via the `JAEGER_TRACE` environment variable:

```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`](/reference/cli/docker/buildx/inspect.md):

```console
$ docker buildx inspect --bootstrap
```

Buildx commands should be traced at `http://127.0.0.1:16686/`:



Chunks
4d3ea48d (1st chunk of `content/manuals/build/debug/opentelemetry.md`)
Title: OpenTelemetry Integration with Buildx and BuildKit
Summary
This section details how to integrate OpenTelemetry with Buildx and BuildKit to capture traces, specifically to Jaeger. It outlines the steps to set up a Jaeger container, create a Buildx builder configured to use the Jaeger instance, and then view the resulting traces in the Jaeger UI.