# Docker already traces every build # Observability on Board — episode 02 # docs: https://docs.docker.com/reference/cli/docker/buildx/history/trace/ # page: https://observability-on-board.vercel.app/episodes/docker-buildx/ # video: https://youtube.com/shorts/zclxLor0Rww # # variants: ?ship=bronto|collector|custom ®ion=us &dataset= # ?endpoint=&header=&value= (custom target) # ── Bronto ────────────────────────────────── docker buildx create --name otel-builder \ --driver docker-container \ --driver-opt env.OTEL_TRACES_EXPORTER=otlp \ --driver-opt env.OTEL_EXPORTER_OTLP_PROTOCOL=http/protobuf \ --driver-opt env.OTEL_EXPORTER_OTLP_ENDPOINT=https://ingestion.eu.bronto.io \ --driver-opt env.OTEL_EXPORTER_OTLP_HEADERS=x-bronto-api-key=$BRONTO_API_KEY \ --driver-opt env.OTEL_SERVICE_NAME=buildx docker buildx use --default otel-builder docker buildx build -t myapp . # ── Local Collector ─────────────────────────────── # This assumes a Collector listening on localhost:4318; the # Local Collector setup (https://observability-on-board.vercel.app/setup/#collector) shows how to start one. On Linux, use # http://localhost:4318 and add --driver-opt network=host. docker buildx create --name otel-builder \ --driver docker-container \ --driver-opt env.OTEL_TRACES_EXPORTER=otlp \ --driver-opt env.OTEL_EXPORTER_OTLP_PROTOCOL=http/protobuf \ --driver-opt env.OTEL_EXPORTER_OTLP_ENDPOINT=http://host.docker.internal:4318 \ --driver-opt env.OTEL_EXPORTER_OTLP_HEADERS=x-otel-auth=none \ --driver-opt env.OTEL_SERVICE_NAME=buildx docker buildx use --default otel-builder docker buildx build -t myapp . # ── Your endpoint ────────────────────────────────── # This uses the endpoint and auth header you saved in the # setup guide (https://observability-on-board.vercel.app/setup/#custom). BuildKit needs a headers line even without # authentication; a dummy value works. docker buildx create --name otel-builder \ --driver docker-container \ --driver-opt env.OTEL_TRACES_EXPORTER=otlp \ --driver-opt env.OTEL_EXPORTER_OTLP_PROTOCOL=http/protobuf \ --driver-opt env.OTEL_EXPORTER_OTLP_ENDPOINT=YOUR_OTLP_ENDPOINT \ --driver-opt env.OTEL_EXPORTER_OTLP_HEADERS=YOUR_AUTH_HEADER=YOUR_AUTH_VALUE \ --driver-opt env.OTEL_SERVICE_NAME=buildx docker buildx use --default otel-builder docker buildx build -t myapp .