Skip to content

opentelemetry-collector

v0.165.0
open-telemetry/opentelemetry-collector

OpenTelemetry Collector

Version of open-telemetry/opentelemetry-collector you run

CompareView on GitHub

Breaking changes

What to check before upgrading, taken from the notes of the last 30 releases.

  • v0.165.0Nov 6, 2026

    🛑 Breaking changes 🛑

    • pkg/confighttp: Remove deprecated fields IdleConnTimeout, MaxIdleConns, MaxIdleConnsPerHost, DisableKeepAlives. (#15973)

    🚩 Deprecations 🚩

    • pkg/componentstatus: Deprecate componentstatus.Watcher in favour of extensioncapabilities.ComponentStatusWatcher (#16304)
  • v0.162.0Sep 28, 2026

    🛑 Breaking changes 🛑

    • cmd/mdatagen: Generated processor lifecycle tests now assert that the processor propagates the incoming context unchanged to the next consumer by default. (#15994)

    Disable with skip_context_propagation: true

    • processor/queue_batch: Rename queuebatch processor to queue_batch processor. (#14396)

    🛑 Breaking changes 🛑

    • pkg/pprofile: Remove deprecated AggregationTemporality, Duration, SetDuration (#15855)
    • pkg/scraperhelper/controller: Remove deprecated AddScraper func (#15934)
    • pkg/service: Remove deprecated ZapOptions (#15935)
    • pkg/xconfmap: Remove deprecated WithForceUnmarshaler func (#15932)
  • v0.161.0Sep 14, 2026

    🛑 Breaking changes 🛑

    • pkg/pprofile: Remove deprecated AggregationTemporality, Duration, SetDuration (#15855)
    • pkg/scraperhelper/controller: Remove deprecated AddScraper func (#15934)
    • pkg/service: Remove deprecated ZapOptions (#15935)
    • pkg/xconfmap: Remove deprecated WithForceUnmarshaler func (#15932)

    🛑 Breaking changes 🛑

    • cmd/mdatagen: remove deprecated func DefaultMetricsBuilderConfig (#15854)
    • pkg/service: Remove the deprecated extensioncapabilities.ConfigWatcher interface, Extensions.NotifyConfig, and service.Settings.CollectorConf. (#15399)

    These were deprecated in v0.155.0. Use ConfigSnapshotWatcher, NotifyConfigSnapshot, and

    Settings.ConfigSnapshot instead.

    • pkg/service: Remove deprecated config option LoggingOptions (#15919)
  • v0.160.0Sep 2, 2026

    🚩 Deprecations 🚩

    • pkg/confighttp: Deprecate flat keepalive fields in client and server config in favor of the new keepalive section. (#14020)

    The following client configuration fields are deprecated in favor of the keepalive section:

    • idle_conn_timeout -> keepalive::idle_conn_timeout
    • max_idle_conns -> keepalive::max_idle_conns
    • max_idle_conns_per_host -> keepalive::max_idle_conns_per_host
    • disable_keep_alives: true -> keepalive::enabled: false

    The following server configuration fields are deprecated in favor of the keepalive section:

    • idle_timeout -> keepalive::idle_timeout
    • keep_alives_enabled: false -> keepalive::enabled: false

    Deprecated fields set in the configuration keep working exactly as before and produce a

    deprecation warning when the client or server is created. Setting deprecated fields together

    with the new keepalive section is an error.

    Code migrating off the deprecated fields can use the new NewDefaultKeepaliveClientConfig

    and NewDefaultKeepaliveServerConfig functions to build a keepalive section with the

    default values.

    🛑 Breaking changes 🛑

    • pkg/service: telemetry.Factory.CreateResource and telemetry.CreateResourceFunc now return (pcommon.Resource, string, error) instead of (pcommon.Resource, error) to expose the resource's schema URL. (#15129)

    The telemetry.Factory interface is experimental and cannot be implemented

    externally (it has an unexported method). Callers using

    telemetry.WithCreateResource must update the function signature to return

    a third string value for the schema URL.

    🚩 Deprecations 🚩

    • pkg/confighttp: Deprecate flat keepalive fields in client and server config in favor of the new keepalive section. (#14020)
  • v0.159.0Aug 17, 2026

    🛑 Breaking changes 🛑

    • extension/zpages: Make confighttp.ServerConfig a named field of Config instead of an embedded one. (#15308)
    • pkg/confighttp: Make configauth.Config a named field of AuthConfig instead of an embedded one. (#15308)
  • v0.158.0Aug 4, 2026

    🛑 Breaking changes 🛑

    • pkg/xconfmap: Remove Validator and Validate (#15613)

    Use the equivalent symbols in confmap instead.

  • v0.157.0Jul 21, 2026

    🛑 Breaking changes 🛑

    • pkg/exporterhelper: Replace histogram bucket boundaries for otelcol_exporter_queue_batch_send_size_bytes and otelcol_processor_batch_batch_send_size_bytes with a power-of-2 byte-scale set spanning 128 B to 16 MiB. (#15535)

    The previous boundaries included many small sub-kilobyte buckets that were not useful for byte-scale

    payloads, and otelcol_exporter_queue_batch_send_size_bytes topped out at 6000 bytes so nearly all

    observations fell into the +Inf overflow bucket. The new boundaries are powers of two from 128 B

    to 16777216 (16 MiB), giving a meaningful distribution for real batch payload sizes (including small

    timeout-flushed batches) and keeping the two

    metrics directly comparable on the same dashboards. Dashboards or alerts that hard-code specific le

    values for these histograms will need to be updated.

    • processor/batch: Replace histogram bucket boundaries for otelcol_processor_batch_batch_send_size_bytes with a power-of-2 byte-scale set spanning 128 B to 16 MiB. (#15535)

    The previous boundaries included many small sub-kilobyte buckets that were not useful for byte-scale

    payloads. The new boundaries are powers of two from 128 B to 16777216 (16 MiB), giving a meaningful

    distribution for real batch payload sizes (including small timeout-flushed batches) and keeping the

    metric directly comparable with

    otelcol_exporter_queue_batch_send_size_bytes on the same dashboards. Dashboards or alerts that

    hard-code specific le values for this histogram will need to be updated.

    🛑 Breaking changes 🛑

    • pkg/config/configgrpc: Remove the BalancerName function (#9477)

    Use the DefaultBalancerName constant instead.

    🚩 Deprecations 🚩

    • pkg/xconfmap: Deprecate WithForceUnmarshaler option. (#15614)

    Use confmap.WithForceUnmarshaler instead.

  • v0.156.0Jul 7, 2026

    🛑 Breaking changes 🛑

    • pkg/pprofile: add bounds checks to FromAttributeIndices (#15517)

Release history

All releases on GitHub
BadgeLatest version of open-telemetry/opentelemetry-collector[![version](/badge/open-telemetry/opentelemetry-collector)](/p/open-telemetry/opentelemetry-collector)

v1.71.0/v0.165.0

Images and binaries here: https://github.com/open-telemetry/opentelemetry-collector-releases/releases/tag/v0.165.0

End User Changelog

🛑 Breaking changes 🛑

  • pkg/confighttp: Remove deprecated fields IdleConnTimeout, MaxIdleConns, MaxIdleConnsPerHost, DisableKeepAlives. (#15973)

🚀 New components 🚀

  • pkg/xreceiverhelper: Add xreceiverhelper with an ObsReport that reports profile sample metrics per sample type. (#16251)

ObsReport.EndProfilesOpBySampleType records the

otelcol_receiver_{accepted,refused,failed}_profile_samples metrics with an additional

sample_type attribute, formatted as "type:unit", as a single payload can hold multiple profiles

with different sample types. Use ProfileSampleCountsByType to compute the sample counts before

the profiles are passed to the next consumer, as the data may be mutated downstream.

The OTLP receiver now uses EndProfilesOpBySampleType.

💡 Enhancements 💡

  • pkg/configmiddleware: allow to override the dialer used by confighttp.ToClient and configgrpc.ToClient (#16019)
  • pkg/featuregate: Allow underscores in feature gate IDs. (#16243)
  • pkg/pdata: Improve performance of pcommon.Map Get, Range, and All functions. (#16282, #16321)
  • pkg/pdata: Reduce number of allocations when updating an oneof primitive (#16226)
  • pkg/service: Service now supports configuring additional resource detectors for internal telemetry as per the update to otelconf v0.26.0. (#15869)
  • pkg/service: Warn at startup when a pipeline combines the batch processor with exporterhelper batching. (#15965)

Detection does not cross connectors or inspect exporter wrappers that hide exporterhelper's batching capability.

  • pkg/xprocessorhelper: Instrument xprocessorhelper.NewProfiles with otelcol_processor_incoming_items, otelcol_processor_outgoing_items, and otelcol_processor_internal_duration, consistent with the other signal constructors. (#15523)
  • processor/memory_limiter: Add garbage_collector config section to allow disabling forced garbage collection via enabled field. (#15081)
  • processor/queue_batch: Promote the queue_batch processor to beta for traces, metrics, and logs, and to alpha for profiles. (#12022)
  • processor/queue_batch: Report queue and batch metrics as processor metrics (#14038)

🧰 Bug fixes 🧰

  • cmd/mdatagen: Fix panic in Attribute.TestValue() and Attribute.TestValueTwo() when handling single-element or empty enum attributes. (#15644)
  • cmd/mdatagen: Fix generated metrics tests failing when a metric migration's through_gates feature gates are promoted past alpha. (#16249)

The generated tests now explicitly set the migration feature gates for each test case and restore

their previous state on cleanup, instead of assuming the gates are disabled by default.

When a gate's stage forbids the state a case needs, such as disabling a stable gate, the metrics-builder

test skips only its gate-dependent count and warning assertions, and the per-combination versioned-metric

sub-tests for that combination are skipped.

  • cmd/mdatagen: Generate README configuration docs for exported_configs definitions. (#16164)

Object definitions and scalar type aliases under exported_configs are now rendered in the README after the config: table.

Packages that only declare exported_configs can now get generated docs once their README contains the config markers.

Components that only declare exported_configs no longer get an empty configuration table.

  • cmd/schemagen: Handle file-not-found errors when loading schemas (#15925)
  • pkg/configgrpc: Bound the zstd decoder window by the configured maximum receive message size instead of the library default. (#16280)

A zstd frame declares its window in the header and the decoder allocated it

before producing any output, so a small crafted message could drive a large

allocation regardless of max_recv_msg_size_mib. The decoder is also

returned to its pool as soon as gRPC is done with a message.

  • pkg/confighttp: Bound the zstd decoder window by max_request_body_size instead of the library default. (#16280)

A zstd frame declares its window in the header and the decoder allocated it

before producing any output, so a small crafted body could drive a large

allocation regardless of the configured request body size.

  • pkg/confighttp: Accept Content-Encoding: identity as equivalent to no encoding. (#15122)
  • pkg/exporterhelper: Fix a Cannot unref freed data panic when a persistent sending queue forwards requests into another pipeline (#15256)
  • pkg/exporterhelper: With wait_for_result, canceling a request that the sending queue already accepted no longer returns early (#16255)

Previously a canceled context made it return context.Canceled while the request was still

delivered, so callers could report a failure for data that had been sent. Canceling still takes

effect while nothing has been done with the request.

  • pkg/pdata: Add recursion depth limit (100) to proto unmarshalling of AnyValue, ArrayValue, KeyValueList, and KeyValue to prevent stack overflow from maliciously crafted deeply nested payloads. (#15301)
  • pkg/service: Skip graph nodes that have not been built during shutdown to prevent a panic when a partial receiver reload fails to build a receiver. (#16261)

API Changelog

🚩 Deprecations 🚩

  • pkg/componentstatus: Deprecate componentstatus.Watcher in favour of extensioncapabilities.ComponentStatusWatcher (#16304)

🚀 New components 🚀

  • pkg/xreceiverhelper: Add xreceiverhelper with an ObsReport that reports profile sample metrics per sample type. (#16251)

ObsReport.EndProfilesOpBySampleType records the

Full release notesCompare with previous