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.EndProfilesOpBySampleTyperecords the
otelcol_receiver_{accepted,refused,failed}_profile_samplesmetrics with an additional
sample_typeattribute, formatted as "type:unit", as a single payload can hold multiple profiles
with different sample types. UseProfileSampleCountsByTypeto compute the sample counts before
the profiles are passed to the next consumer, as the data may be mutated downstream.
The OTLP receiver now usesEndProfilesOpBySampleType.
💡 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 underexported_configsare now rendered in the README after theconfig:table.
Packages that only declareexported_configscan now get generated docs once their README contains the config markers.
Components that only declareexported_configsno 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 ofmax_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 returncontext.Canceledwhile 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.EndProfilesOpBySampleTyperecords the
otelcol_receiver_{accepted,refused,failed}_profile_samplesmetrics with an additional
sample_typeattribute, formatted as "type:unit", as a single payload can hold multiple profiles
with different sample types. UseProfileSampleCountsByTypeto compute the sample counts before
the profiles are passed to the next consumer, as the data may be mutated downstream.
The OTLP receiver now usesEndProfilesOpBySampleType.