RATATOSKRATATOSK
Sign in

OpenTelemetry

v0.156.0Observability
Jul 7, 2026

This Collector release (core v1.62.0 / contrib v0.156.0) is mostly bug fixes: it stops otlp_http from retrying already-accepted data and fixes a CPU-burning GC loop in memory_limiter during exporter outages.

  • breakingotlp_http no longer retries unparseable 2xx responses

    otlp_http exporter used to retry when a 2xx response body couldn't be parsed (e.g., truncated past the 64kB read limit), causing duplicate data to be sent. It's now treated as a permanent error and won't be retried. If you rely on retry behavior for large response bodies, check your backend's response size and confirm you're not silently dropping data that used to get retried.

  • enhancementUpdate if you've hit memory_limiter CPU spikes during exporter outages

    The memory_limiter processor could get stuck in a CPU-burning forced-GC loop when an exporter had ongoing problems. New backoff is enabled by default via max_gc_interval_when_soft_limited and max_gc_interval_when_hard_limited (both 30s). If you've seen collector CPU spikes correlated with exporter failures, this release should fix it with no config changes needed; tune the two settings only if 30s doesn't fit your workload.

  • breakingCheck custom pprofile integrations against new bounds checks

    pkg/pprofile's FromAttributeIndices now has bounds checks, which is listed under API breaking changes. If you build custom components against pkg/pprofile directly, check for out-of-range index handling that may now return errors instead of panicking or reading garbage.

Key changes (5)

  • otlp_http exporter: unparseable 2xx response bodies are now permanent errors instead of triggering retries, avoiding duplicate data delivery.
  • memory_limiter processor: forced GC now backs off exponentially when ineffective, fixing a CPU-burning loop during exporter problems (new max_gc_interval_when_soft_limited / max_gc_interval_when_hard_limited settings, default 30s).
  • pkg/service: receivers are now guaranteed to start only after all other pipeline components have started, closing a race that could drop early telemetry.
  • provider/env: ${env:VAR:-} with an unset variable now resolves to an empty string instead of nil.
  • pkg/pprofile: FromAttributeIndices gets bounds checks, marked as an API breaking change for anyone building against this package directly.