opentelemetry-collector
v0.165.0OpenTelemetry Collector
- Maintenance
- Active332 commits in 3 months · bus factor 4
- License
- Apache-2.0Permissive · OSI-approved
- Security
- 4 advisories2 high, 2 medium · Scorecard 7.7/10
- Supported versions
- No scheduleendoflife.date does not track this project
7.8k stars · 2.4k forks · 715 open issues · last release 8 days ago · data checked 5 hours ago
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 fieldsIdleConnTimeout,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: trueprocessor/queue_batch: Renamequeuebatchprocessor toqueue_batchprocessor. (#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 deprecatedextensioncapabilities.ConfigWatcherinterface,Extensions.NotifyConfig, andservice.Settings.CollectorConf. (#15399)
These were deprecated in v0.155.0. Use
ConfigSnapshotWatcher,NotifyConfigSnapshot, andSettings.ConfigSnapshotinstead.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 newkeepalivesection. (#14020)
The following client configuration fields are deprecated in favor of the
keepalivesection:idle_conn_timeout->keepalive::idle_conn_timeoutmax_idle_conns->keepalive::max_idle_connsmax_idle_conns_per_host->keepalive::max_idle_conns_per_hostdisable_keep_alives: true->keepalive::enabled: false
The following server configuration fields are deprecated in favor of the
keepalivesection:idle_timeout->keepalive::idle_timeoutkeep_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
keepalivesection is an error.Code migrating off the deprecated fields can use the new
NewDefaultKeepaliveClientConfigand
NewDefaultKeepaliveServerConfigfunctions to build akeepalivesection with thedefault values.
🛑 Breaking changes 🛑
pkg/service:telemetry.Factory.CreateResourceandtelemetry.CreateResourceFuncnow return(pcommon.Resource, string, error)instead of(pcommon.Resource, error)to expose the resource's schema URL. (#15129)
The
telemetry.Factoryinterface is experimental and cannot be implementedexternally (it has an unexported method). Callers using
telemetry.WithCreateResourcemust update the function signature to returna third
stringvalue for the schema URL.🚩 Deprecations 🚩
pkg/confighttp: Deprecate flat keepalive fields in client and server config in favor of the newkeepalivesection. (#14020)
- v0.159.0Aug 17, 2026
🛑 Breaking changes 🛑
extension/zpages: Makeconfighttp.ServerConfiga named field ofConfiginstead of an embedded one. (#15308)pkg/confighttp: Makeconfigauth.Configa named field ofAuthConfiginstead of an embedded one. (#15308)
- v0.158.0Aug 4, 2026
🛑 Breaking changes 🛑
pkg/xconfmap: RemoveValidatorandValidate(#15613)
Use the equivalent symbols in
confmapinstead. - v0.157.0Jul 21, 2026
🛑 Breaking changes 🛑
pkg/exporterhelper: Replace histogram bucket boundaries forotelcol_exporter_queue_batch_send_size_bytesandotelcol_processor_batch_batch_send_size_byteswith 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_bytestopped out at 6000 bytes so nearly allobservations fell into the
+Infoverflow bucket. The new boundaries are powers of two from 128 Bto 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
levalues for these histograms will need to be updated.
processor/batch: Replace histogram bucket boundaries forotelcol_processor_batch_batch_send_size_byteswith 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_byteson the same dashboards. Dashboards or alerts thathard-code specific
levalues for this histogram will need to be updated.🛑 Breaking changes 🛑
pkg/config/configgrpc: Remove theBalancerNamefunction (#9477)
Use the
DefaultBalancerNameconstant instead.🚩 Deprecations 🚩
pkg/xconfmap: DeprecateWithForceUnmarshaleroption. (#15614)
Use
confmap.WithForceUnmarshalerinstead. - v0.156.0Jul 7, 2026
🛑 Breaking changes 🛑
pkg/pprofile: add bounds checks to FromAttributeIndices (#15517)
Release history
All releases on GitHubv1.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 fieldsIdleConnTimeout,MaxIdleConns,MaxIdleConnsPerHost,DisableKeepAlives. (#15973)
🚀 New components 🚀
pkg/xreceiverhelper: Add xreceiverhelper with anObsReportthat 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: Instrumentxprocessorhelper.NewProfileswithotelcol_processor_incoming_items,otelcol_processor_outgoing_items, andotelcol_processor_internal_duration, consistent with the other signal constructors. (#15523)processor/memory_limiter: Addgarbage_collectorconfig section to allow disabling forced garbage collection viaenabledfield. (#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 inAttribute.TestValue()andAttribute.TestValueTwo()when handling single-element or empty enum attributes. (#15644)cmd/mdatagen: Fix generated metrics tests failing when a metric migration'sthrough_gatesfeature 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 forexported_configsdefinitions. (#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 bymax_request_body_sizeinstead 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 aCannot unref freed datapanic when a persistent sending queue forwards requests into another pipeline (#15256)pkg/exporterhelper: Withwait_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 anObsReportthat reports profile sample metrics per sample type. (#16251)
ObsReport.EndProfilesOpBySampleType records the