Skip to content

fix(serverboot): honor OTEL_TRACES_EXPORTER=none - #107

Merged
teemow merged 3 commits into
giantswarmfrom
fork/traces-exporter-none
Oct 2, 2026
Merged

teemow merged 3 commits into
giantswarmfrom
fork/traces-exporter-none

Conversation

@teemow

@teemow teemow commented Oct 1, 2026

Copy link
Copy Markdown
Member

From Timo's agent.

Problem

The chart's otel.traces.enabled: false renders OTEL_TRACES_EXPORTER=none, but serverboot.InitTracing never reads it and always builds the OTLP span exporter. On a cluster without a collector, ate-api-server, ate-controller, atelet, the atenet router and ateom export spans to the SDK default localhost:4317 and log OpenTelemetry SDK error … traces export … dial tcp [::1]:4317: connect: connection refused on every batch (giantswarm/agent-platform#463). OTEL_METRICS_EXPORTER=none got the same fix earlier (#82).

Proposed solution

  • serverboot.TracesExportDisabled(), next to MetricsExportDisabled() and sharing its parsing. When it is true, InitTracing adds no span exporter. The provider, its sampler and the TraceContext propagator stay, so trace context still propagates. The Tracing initialized line logs export.
  • Tests: the switch's parsing; a span dials the OTLP endpoint by default and never with none. The none test fails on the old code.
  • The chart's otel comment and README row now describe the switch; a FORK.md row. Upstream-ready.

Acceptance criteria

  • go test ./internal/serverboot/ passes; the none test fails without the change.
  • On a lab whose meta chart turns the signals off, ate-api-server, atelet and the router log no traces export error.

InitTracing always built the OTLP span exporter, so a component told to
export no traces still exported them to localhost:4317 and logged an SDK
error on every batch. With none it keeps the provider, its sampler and
the propagator and adds no exporter, as OTEL_METRICS_EXPORTER=none does
for metrics.
teemow added 2 commits October 2, 2026 17:06
…orter-none

* origin/giantswarm:
  docs(fork): name the ledger row of the gVisor worker image patch
  docs(fork): name the pull request of the gVisor worker image row
  fix(atecontroller): run gVisor workers on the release's own ateom
  feat(atenet): tell the actor why a credential was refused
  fix(ci): move the agentgateway-image parameter to 2.2.2 with the chart
  chore(chart): pin the egress gateway to agentgateway 2.2.2

# Conflicts:
#	FORK.md
…orter-none

* origin/giantswarm:
  fix(helm): give the egress ext-proc the chart's otel settings (#106)

# Conflicts:
#	FORK.md
@teemow
teemow merged commit 74a0d1f into giantswarm Oct 2, 2026
14 checks passed
@teemow
teemow deleted the fork/traces-exporter-none branch October 2, 2026 15:55
teemow added a commit that referenced this pull request Oct 2, 2026
…-off

* origin/giantswarm:
  fix(serverboot): honor OTEL_TRACES_EXPORTER=none (#107)

# Conflicts:
#	FORK.md
QuentinBisson pushed a commit that referenced this pull request Oct 5, 2026
InitTracing always built the OTLP span exporter, so a component told to
export no traces still exported them to localhost:4317 and logged an SDK
error on every batch. With none it keeps the provider, its sampler and
the propagator and adds no exporter, as OTEL_METRICS_EXPORTER=none does
for metrics.
@heraldbot heraldbot Bot mentioned this pull request Oct 12, 2026
1 of 4 tasks
teemow added a commit that referenced this pull request Oct 12, 2026
InitTracing always built the OTLP span exporter, so a component told to
export no traces still exported them to localhost:4317 and logged an SDK
error on every batch. With none it keeps the provider, its sampler and
the propagator and adds no exporter, as OTEL_METRICS_EXPORTER=none does
for metrics.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant