RATATOSKRATATOSK
Sign in

OpenTelemetry

v0.162.0Observability
Sep 28, 2026

ACTION 2CHECK 2OTHER 19

A maintenance release with performance and correctness fixes, along with breaking configuration and processor-name changes. It also adds exporter, telemetry, and schema capabilities, including new metrics and configurable exporter partition behavior.

Action needed (2)

  • breakingDefault keepalive configuration

    Keepalive configuration is enabled by default in pkg/confighttp.

  • breakingConfigurable partition idle timeout

    The partition idle timeout is configurable through batch::partition::idle_timeout, and its default is raised to 90s in pkg/exporterhelper.

Check if affected (2)

  • breakingDefault context propagation in generated processor tests

    Applies if you do not configure skip_context_propagation.

    Generated processor lifecycle tests now assert that the processor propagates the incoming context unchanged to the next consumer by default. Set skip_context_propagation: true to disable this behavior in cmd/mdatagen.

  • breakingThe queuebatch processor renamed to queue_batch

    Applies if you configure queuebatch.

    The queuebatch processor is renamed to the queue_batch processor in processor/queue_batch.

All 19 other recorded changesadditions 7 · fixes 5 · value changes 4 · constraints 1 · removals 1 · renames 1

additions (7)

  • - extension/memory_limiter: Add otelcol_memorylimiter_refused_requests metric to record network request refusals in extension mode. (#15561)
  • Introduces the feature gate pkg.confighttp.PrioritizeNewKeepalive. When disabled, this flag restores the old behaviour of removing the keepalive configuration in favour of the deprecated fields IdleConnTimeout, MaxIdleConns, MaxIdleConnsPerHost, DisableKeepAlives when the flag is disabled.
  • - pkg/exporterhelper: Make the partition idle timeout configurable via batch::partition::idle_timeout and raise the default to 90s. (#15894)
  • - pkg/exporterhelper: Make the multi-batcher partition LRU cache size configurable and export cache size metrics. (#14526) Adds sending_queue::batch::partition::cache_size (default 10000) to cap the number of active partition batchers. The value must be positive. Current size and configured capacity are exported as otelcol_exporter_queue_batch_partition_cache_size and otelcol_exporter_queue_batch_partition_cache_capacity.×2
  • - cmd/mdatagen: Allow config metadata authors to choose configoptional.Some or configoptional.Default for generated optional fields (#15977) Set go_struct.optional_mode: default to generate an optional object configuration section with a fallback default while keeping it absent until configured. Omitting optional_mode preserves the existing configoptional.Some behavior.
  • - pkg/exporterhelper: Add NewDefaultBatchConfig to build a BatchConfig with default values, including the partition cache_size and idle_timeout defaults. (#14526, #15894)

fixes (5)

  • - exporter/debug: Support known sync error handling on AIX (#15924) Enable the debug exporter to handle known synchronous errors on AIX.
  • - pkg/exporterhelper: Drop only the oversized item when splitting a batch, instead of discarding every item queued behind it (#15936) Applied to logs only for now
  • - receiver/otlp: Error handler preserves the HTTP status code when the request Content-Type is not one a Status can be encoded in (#15995) Extends the fix in #13414, which handled a missing Content-Type. A Content-Type that was present but unsupported, or malformed, still fell through to 500 {"code": 13, "message": "failed to marshal error message"}, reporting client errors such as 401 from a server auth extension or 400 from an unsupported Content-Encoding as server faults.
  • - cmd/schemagen: Fix RefResolver mutating shared, cached type definitions with per-occurrence annotations, which caused generated schemas to have incorrect (and run-to-run nondeterministic) description/x-optional/x-pointer values whenever multiple fields referenced the same type. (#15984)
  • - pkg/pdata: Fix pcommon.Value.CopyTo to deep-copy ValueTypeBytes values instead of sharing the backing array (#15621) The bytes oneof field in CopyAnyValue was assigned directly, so the copy and source shared the same []byte. This also affected Map.CopyTo and Slice.CopyTo, which delegate to CopyAnyValue.

value changes (4)

  • - pkg/pprofile: Speed up profiles dictionary merging during exporter-queue batching by replacing the linear-scan dedup in switchDictionary with an indexed lookup, reducing per-merge cost from O(N*L^2) to O(N+L). (#15544) No behavior change: merged dictionary contents and remapped indices are identical to before.
  • - pkg/xpdata: Reduce the time xhash.MapHash takes for maps with many entries. (#15990)
  • - pkg/exporterhelper: Add exporter and data_type attributes to exporter/enqueue spans. (#16022)
  • - pkg/config/configgrpc: Migrate core types of common settings for a gRPC client to schema-based configuration generated by mdatagen. (#15967)

constraints (1)

  • - pkg/exporterhelper: Make the multi-batcher partition LRU cache size configurable and export cache size metrics. (#14526) Adds sending_queue::batch::partition::cache_size (default 10000) to cap the number of active partition batchers. The value must be positive. Current size and configured capacity are exported as otelcol_exporter_queue_batch_partition_cache_size and otelcol_exporter_queue_batch_partition_cache_capacity.

removals (1)

  • - pkg/receiverhelper: Stop allocating a span link that is always discarded when a long-lived-context receiver starts an operation without a parent span context. (#15998) Receivers created with LongLivedCtx: true no longer build a trace.Link when the long-lived context carries no valid span context. The SDK already discarded such a link, so behaviour is unchanged. This removes 3 of 7 allocations per receive operation.

renames (1)

  • - pkg/xpdata: Move pdata hash APIs from the contrib repo (#15914)
Add OpenTelemetry to your stack

A weekly email arrives when a release needs action. Like the breaking changes in this release.

Add to stack →