# OpenTofu can trace every apply # Observability on Board — episode 04 # docs: https://opentofu.org/docs/internals/tracing/ # page: https://observability-on-board.vercel.app/episodes/open-tofu/ # video: https://youtube.com/shorts/PcG-dpEBzRw # # variants: ?ship=bronto|collector|custom ®ion=us &dataset= # ?endpoint=&header=&value= (custom target) # ── Bronto ────────────────────────────────── export OTEL_TRACES_EXPORTER=otlp export OTEL_EXPORTER_OTLP_PROTOCOL=http/protobuf export OTEL_EXPORTER_OTLP_TRACES_ENDPOINT=https://ingestion.eu.bronto.io/v1/traces export OTEL_EXPORTER_OTLP_HEADERS="x-bronto-api-key=$BRONTO_API_KEY" export OTEL_SERVICE_NAME=opentofu tofu apply # ── Local Collector ─────────────────────────────── export OTEL_TRACES_EXPORTER=otlp export OTEL_EXPORTER_OTLP_PROTOCOL=http/protobuf export OTEL_EXPORTER_OTLP_TRACES_ENDPOINT=http://localhost:4318/v1/traces export OTEL_SERVICE_NAME=opentofu tofu apply # 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. # ── Your endpoint ────────────────────────────────── # This uses the endpoint and auth header you saved in the # setup guide (https://observability-on-board.vercel.app/setup/#custom). export OTEL_TRACES_EXPORTER=otlp export OTEL_EXPORTER_OTLP_PROTOCOL=http/protobuf export OTEL_EXPORTER_OTLP_TRACES_ENDPOINT=YOUR_OTLP_ENDPOINT/v1/traces export OTEL_EXPORTER_OTLP_HEADERS="YOUR_AUTH_HEADER=YOUR_AUTH_VALUE" export OTEL_SERVICE_NAME=opentofu tofu apply