RATATOSKRATATOSK
Sign in

OpenTelemetry

v0.156.0Observability
Jul 7, 2026

OpenTelemetry Collector v0.156.0 is a bugfix rollup with one operator-relevant behavior change: the memory_limiter processor switches from continuous forced GC to exponential backoff, with the cap exposed via two new config fields. Several targeted fixes address permanent-error handling in otlp_http, receiver startup ordering, env var nil resolution, and retry config validation.

  • enhancementmemory_limiter GC backoff now configurable via two new fields

    The memory_limiter processor now backs off GC calls exponentially when GC is deemed ineffective (soft limit still exceeded and less than 5% memory reclaimed). The backoff cap is controlled by max_gc_interval_when_soft_limited and max_gc_interval_when_hard_limited, both defaulting to 30s. If you tune GC aggressiveness, review these new fields; the default behavior changes from continuous forced GC to capped backoff.

Key changes (7)

  • memory_limiter processor: forced GC now uses exponential backoff when ineffective, capped by new fields max_gc_interval_when_soft_limited and max_gc_interval_when_hard_limited (default 30s each)
  • otlp_http exporter: parse errors on truncated 2xx response bodies are now permanent errors, preventing duplicate exports on retry
  • pkg/service: receivers now start only after all other components have fully initialized, fixing a race with shared-implementation receivers like OTLP
  • env provider: an unset variable with ${env:VAR:-} syntax now resolves to empty string instead of nil
  • configretry BackOffConfig fields validated regardless of the Enabled flag
  • memory_limiter processor now emits componentstatus health events reflecting its current state
  • mdatagen enhancements: stability levels for resource attributes, semantic convention references, field_name option in go_struct, enum validator support, and distinct named Go types for primitive exported config schemas