Releases: open-telemetry/opentelemetry-collector
v1.44.0/v0.138.0
Images and binaries here: https://github.com/open-telemetry/opentelemetry-collector-releases/releases/tag/v0.138.0
End User Changelog
π Breaking changes π
- 
all: Remove deprecated typeTracesConfig(#14036)
- 
pkg/exporterhelper: Add default values forsending_queue::batchconfiguration. (#13766)
 Settingsending_queue::batchto an empty value now results in the same setup as the default batch processor configuration.
- 
all: Add unified print-config command with mode support (redacted, unredacted), json support (unstable), and validation support. (#11775)
 This replaces theprint-initial-configcommand. See theservicepackage README for more details. The original command nameprint-initial-configremains an alias, to be retired with the feature flag.
π‘ Enhancements π‘
- all: Add- keep_alives_enabledoption to ServerConfig to control HTTP keep-alives for all components that create an HTTP server. (#13783)
- pkg/otelcol: Avoid unnecessary mutex in collector logs, replace by atomic pointer (#14008)
- cmd/mdatagen: Add lint/ordering validation for metadata.yaml (#13781)
- pdata/xpdata: Refactor JSON marshaling and unmarshaling to use- pcommon.Valueinstead of- AnyValue. (#13837)
- pkg/exporterhelper: Expose- MergeCtxin exporterhelper's queue batch settings` (#13742)
π§° Bug fixes π§°
- all: Fix zstd decoder data corruption due to decoder pooling for all components that create an HTTP server. (#13954)
- pkg/otelcol: Remove UB when taking internal logs and move them to the final zapcore.Core (#14009)
 This can happen because of a race on accessing- logsTaken.
- pkg/confmap: Fix a potential race condition in confmap by closing the providers first. (#14018)
API Changelog
π Breaking changes π
- 
pkg/xexporterhelper: Remove definition of Sizer from public API and ability to configure. (#14001)
 Now that Request has both Items/Bytes sizes no need to allow custom sizers.
- 
pkg/service: Theservice.Settingstype now requires atelemetry.Factoryto be provided (#4970)
π© Deprecations π©
- pdata/pprofile: Deprecated- PutAttributehelper method (#14016, #14041)
- pdata/pprofile: Deprecated- PutLocationhelper method (#14019)
π‘ Enhancements π‘
- all: Add- keep_alives_enabledoption to ServerConfig to control HTTP keep-alives for all components that create an HTTP server. (#13783)
- pkg/pdata: Add pcommon.Map helper to add a key to the map if does not exists (#14023)
- pdata/pprofile: Introduce- Equalmethod on the- KeyValueAndUnittype (#14041)
- pkg/pdata: Add- RemoveIfmethod to primitive slice types (StringSlice, Int64Slice, UInt64Slice, Float64Slice, Int32Slice, ByteSlice) (#14027)
- pdata/pprofile: Introduce- SetAttributehelper method (#14016, #14041)
- pdata/pprofile: Introduce- SetLocationhelper method (#14019)
- pdata/pprofile: Introduce- Equalmethod on the- Stacktype (#13952)
v1.43.0/v0.137.0
Images and binaries here: https://github.com/open-telemetry/opentelemetry-collector-releases/releases/tag/v0.137.0
End User Changelog
π‘ Enhancements π‘
- 
cmd/mdatagen: Improve validation for resource attributeenabledfield in metadata files (#12722)
 Resource attributes now require an explicitenabledfield in metadata.yaml files, while regular attributes
 are prohibited from having this field. This improves validation and prevents configuration errors.
- 
all: Changelog entries will now have their component field checked against a list of valid components. (#13924)
 This will ensure a more standardized changelog format which makes it easier to parse.
- 
pkg/pdata: Mark featuregate pdata.useCustomProtoEncoding as stable (#13883)
API Changelog
π Breaking changes π
- pkg/exporterhelper: Remove all experimental symbols in exporterhelper (#11143)
 They have all been moved to xexporterhelper
π© Deprecations π©
- all: service/telemetry.TracesConfig is deprecated (#13904)
 This type alias has been added to otelconftelemetry.TracesConfig,
 where the otelconf-based telemetry implementation now lives.
π‘ Enhancements π‘
v1.42.0/v0.136.0
Images and binaries here: https://github.com/open-telemetry/opentelemetry-collector-releases/releases/tag/v0.136.0
End User Changelog
π‘ Enhancements π‘
- xpdata: Add Serialization and Deserialization of AnyValue (#12826)
- debugexporter: add support for batching (#13791)
 The default queue size is 1
- configtls: Add early validation for TLS server configurations to fail fast when certificates are missing instead of failing at runtime. (#13130, #13245)
- mdatagen: Expose stability level in generated metric documentation (#13748)
- internal/tools: Add support for modernize in Makefile (#13796)
π§° Bug fixes π§°
- otelcol: Fix a potential deadlock during collector shutdown. (#13740)
- otlpexporter: fix the validation of unix socket endpoints (#13826)
API Changelog
π Breaking changes π
- exporterhelper: Remove deprecated function NewRequestsSizer (#13803)
- pdata/pprofile: Upgrade the OTLP protobuf definitions to version 1.8.0 (#13758, #13825, #13839)
- pdata/pprofile: Remove deprecated ProfilesDictionary method (#13858)
π© Deprecations π©
- exporterhelper: Deprecate all experimental symbols in exporterhelper and move them to xexporterhelper (#11143)
π‘ Enhancements π‘
- 
configoptional: AddGetOrInsertDefaultmethod toconfigoptional.Optional(#13856)
 This method inserts a default or zero value into aNone/DefaultOptionalbeforeGetting its inner value.
- 
exporter: Stabilize exporter module. (#12978)
 This does not stabilize the exporterhelper module or configuration
- 
pdata: Upgrade the OTLP protobuf definitions to version 1.8.0 (#13758)
v1.41.0/v0.135.0
Images and binaries here: https://github.com/open-telemetry/opentelemetry-collector-releases/releases/tag/v0.135.0
End User Changelog
π‘ Enhancements π‘
- exporterhelper: Add new- exporter_queue_batch_send_sizeand- exporter_queue_batch_send_size_bytesmetrics, showing the size of telemetry batches from the exporter. (#12894)
API Changelog
π Breaking changes π
- pdata/pprofile: Remove deprecated AddAttribute method (#13764)
π‘ Enhancements π‘
v1.40.0/v0.134.0
Images and binaries here: https://github.com/open-telemetry/opentelemetry-collector-releases/releases/tag/v0.134.0
End User Changelog
π‘ Enhancements π‘
- pdata: Add custom grpc/encoding that replaces proto and calls into the custom marshal/unmarshal logic in pdata. (#13631)
 This change should not affect other gRPC calls since it fallbacks to the default grpc/proto encoding if requests are not pdata/otlp requests.
- pdata: Avoid copying the pcommon.Map when same origin (#13731)
 This is a very large improvement if using OTTL with map functions since it will avoid a map copy.
- exporterhelper: Respect- num_consumerswhen batching and partitioning are enabled. (#13607)
π§° Bug fixes π§°
- pdata: Correctly parse OTLP payloads containing non-packed repeated primitive fields (#13727, #13730)
 This bug prevented the Collector from ingesting most Histogram, ExponentialHistogram,
 and Profile payloads.
API Changelog
π‘ Enhancements π‘
- exporterhelper: Split exporterhelper into a separate module (#12985)
v1.39.0/v0.133.0
Images and binaries here: https://github.com/open-telemetry/opentelemetry-collector-releases/releases/tag/v0.133.0
End User Changelog
π Breaking changes π
- all: Increase minimum Go version to 1.24 (#13627)
π‘ Enhancements π‘
- 
otlphttpexporter: Addprofiles_endpointconfiguration option to allow custom endpoint for profiles data export (#13504)
 Theprofiles_endpointconfiguration follows the same pattern astraces_endpoint,metrics_endpoint, andlogs_endpoint.
 When specified, profiles data will be sent to the custom URL instead of the default{endpoint}/v1development/profiles.
- 
pdata: Add support for local memory pooling for data objects. (#13678)
 This is still an early experimental (alpha) feature. Do not recommended to be used production. To enable use "--featuregate=+pdata.useProtoPooling"
- 
pdata: Optimize CopyTo messages to avoid any copy when same source and destination (#13680)
- 
receiverhelper: New feature flag to make receiverhelper distinguish internal vs. downstream errors using newotelcol_receiver_failed_xandotelcol_receiver_requestsmetrics (#12207, #12802)
 This is a breaking change for the semantics of the otelcol_receiver_refused_metric_points, otelcol_receiver_refused_log_records and otelcol_receiver_refused_spans metrics.
 These new metrics and semantics are enabled through thereceiverhelper.newReceiverMetricsfeature gate.
- 
debugexporter: Add support for entity references in debug exporter output (#13324)
- 
pdata: Fix unnecessary allocation of a new state when adding new values to pcommon.Map (#13634)
- 
service: Implement refcounting for pipeline data owned memory. (#13631)
 This feature is protected by--featuregate=+pdata.useProtoPooling.
- 
service: Add a debug-level log message when a consumer returns an error. (#13357)
- 
xpdata: Optimize xpdata/context for persistent queue when only one value for key (#13636)
- 
otlpreceiver: Log the listening addresses of the receiver, rather than the configured endpoints. (#13654)
- 
pdata: Use the newly added proto marshaler/unmarshaler for the official proto Marshaler/Unmarshaler (#13637)
 If any problems observed with this consider to disable the featuregate--feature-gates=-pdata.useCustomProtoEncoding
- configtls: Enable X25519MLKEM768 as per draft-ietf-tls-ecdhe-mlkem (#13670)
π§° Bug fixes π§°
- exporterhelper: Prevent uncontrolled goroutines in batcher due to a incorrect worker pool behaviour. (#13689)
- service: Ensure the insecure configuration is accounted for when normalizing the endpoint. (#13691)
- configoptional: Allow validating nested types (#13579)
 - configoptional.Optionalnow implements- xconfmap.Validator
- batchprocessor: Fix UB in batch processor when trying to read bytes size after adding request to pipeline (#13698)
 This bug only happens id detailed metrics are enabled and also an async (sending queue enabled) exporter that mutates data is configure.
API Changelog
π Breaking changes π
- configgrpc: Set- tcpas the default transport type (#13657)
 gRPC is generally used with HTTP/2, so this will simplify usage for most components.
π© Deprecations π©
- pdata/pprofile: Deprecate Profiles.ProfilesDictionary in favor of Profiles.Dictionary. (#13644)
π‘ Enhancements π‘
- pdata: Add support for local memory pooling for data objects. (#13678)
 This is still an early experimental (alpha) feature. Do not recommended to be used production. To enable use "--featuregate=+pdata.useProtoPooling"
π§° Bug fixes π§°
- configoptional: Allow validating nested types (#13579)
 - configoptional.Optionalnow implements- xconfmap.Validator
v1.38.0/v0.132.0
Images and binaries here: https://github.com/open-telemetry/opentelemetry-collector-releases/releases/tag/v0.132.0
End User Changelog
π Breaking changes π
- componentstatus: Change the signature of the componentstatus.NewEvent to accept multiple options. (#13210)
 Changes the signature of the component.NewEvent to accept multiple EventBuilderOption,
 like the new WithAttributes constructor.
π© Deprecations π©
- 
service: move service.noopTraceProvider feature gate to deprecated stage (#13492)
 The functionality of the feature gate is available via configuration with the following telemetry settings:service: telemetry: traces: level: none
- 
mdatagen: Remove the deletion ofgenerated_component_telemetry_test.go. (#12067)
 This file used to be generated by mdatagen. Starting with 0.122.0, the code deletes that file.
 It is no longer necessary to delete the file, as code has had time to upgrade to mdatagen and delete the file.
- 
service: Thetelemetry.disableHighCardinalityMetricsfeature gate is deprecated (#13537)
 The feature gate is now deprecated since metric views can be configured.
 The feature gate will be removed in v0.134.0.The metric attributes removed by this feature gate are no longer emitted 
 by the Collector by default, but if needed, you can achieve the same
 functionality by configuring the following metric views:service: telemetry: metrics: level: detailed views: - selector: meter_name: "go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc" stream: attribute_keys: excluded: ["net.sock.peer.addr", "net.sock.peer.port", "net.sock.peer.name"] - selector: meter_name: "go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp" stream: attribute_keys: excluded: ["net.host.name", "net.host.port"] Note that this requires setting service::telemetry::metrics::level: detailed.
 If you have a strong use case for using views in combination with a different
 level, please show your interest in
 #10769.
π‘ Enhancements π‘
- pdata: Generate Logs/Traces/Metrics/Profiles and p[log|trace|metric|profile]ExportResponse with pdatagen. (#13597)
 This change brings consistency on how these structs are written and remove JSON marshaling/unmarshaling hand written logic.
- confighttp: Add option to configure ForceAttemptHTTP2 to support HTTP/1 specific transport settings. (#13426)
- pdata: Avoid unnecessary buffer copy when JSON marshal fails. (#13598)
- cmd/mdatagen: Use a custom host implementation for lifecycle tests (#13589)
 Use a custom noop host implementation that implements all non-deprecated, publicly-accessible interfaces implemented by the Collector service.
- processorhelper: Add processor internal duration metric. (#13231)
- pdata: Improve RemoveIf for slices to not reference anymore the removed memory (#13522)
π§° Bug fixes π§°
- 
pdata: Fix null pointer access when copying into a slice with larger cap but smaller len. (#13523)
- 
confighttp: Fix middleware configuration field name from "middleware" to "middlewares" for consistency with configgrpc (#13444)
- 
memorylimiterextension, memorylimiterprocessor: Memory limiter extension and processor shutdown don't throw an error if the component was not started first. (#9687)
 The components would throw an error if they were shut down before being started.
 With this change, they will no longer return an error, conforming to the lifecycle of components expected.
- 
confighttp: Reuse zstd Reader objects (#11824)
API Changelog
π Breaking changes π
- componenttest: Remove- GetFactoryfrom the host returned by- NewNopHost(#13577)
 This method is no longer part of the- component.Hostinterface.
π‘ Enhancements π‘
- 
exporterhelper: Provide an interfacequeue_batch.Setting.MergeCtxso users can control how context values are preserved or combined (#13320)
 By supplying a custom mergeCtx function, users can control how context values are preserved or combined.
 The default behavior is to preserve no context values.
- 
pdata: Generate Logs/Traces/Metrics/Profiles and p[log|trace|metric|profile]ExportResponse with pdatagen. (#13597)
 This change brings consistency on how these structs are written and remove JSON marshaling/unmarshaling hand written logic.
- 
pdata: Avoid unnecessary buffer copy when JSON marshal fails. (#13598)
- 
pipeline: Mark module as stable (#12831)
v1.37.0/v0.131.0
Images and binaries here: https://github.com/open-telemetry/opentelemetry-collector-releases/releases/tag/v0.131.0
End User Changelog
π Breaking changes π
- confighttp: Move- confighttp.framedSnappyfeature gate to beta. (#10584)
π‘ Enhancements π‘
- 
exporter/debug: Move to alpha stability except profiles (#13487)
- 
exporterhelper: Enableexporter.PersistRequestContextfeature gate by default. (#13437)
 Request context is now preserved by default when using persistent queues.
 Note that Auth extensions context is not propagated through the persistent queue.
- 
pdata: Use pdatagen to generate marshalJSON without using gogo proto jsonpb. (#13450)
- 
otlpreceiver: Remove usage of gogo proto which uses reflect.Value.MethodByName. Removes one source of disabling DCE. (#12747)
- 
exporterhelper: Fix metrics split logic to consider metrics description into the size. (#13418)
- 
service: New pipeline instrumentation now differentiates internal failures from downstream errors (#13234)
 With the telemetry.newPipelineTelemetry feature gate enabled, the "received" and "produced"
 metrics related to a component now distinguish between two types of errors:- "outcome = failure" indicates that the component returned an internal error;
- "outcome = refused" indicates that the component successfully emitted data, but returned an
 error coming from a downstream component processing that data.
 
- 
pdata: Remove usage of text/template from pdata, improves DCE. (#12747)
- 
architecture: New Tier 3 platform riscv64 allowing the collector to be built and distributed for this platform. (#13462)
π§° Bug fixes π§°
- exporterhelper: Prevents the exporter for being stuck when telemetry data is bigger than batch.max_size (#12893)
- mdatagen: Fix import paths for mdatagen component (#13069)
- otlpreceiver: Error handler correctly fallbacks to content type (#13414)
- pdata/pprofiles: Fix profiles JSON unmarshal logic for originalPayload. The bytes have to be base64 encoded. (#13483)
- xpdata: Fix unmarshaling JSON for entities, add e2e tests to avoid this in the future. (#13480)
- service: Downgrade dependency of prometheus exporter in OTel Go SDK (#13429)
 This fixes the bug where collector's internal metrics are emitted with an unexpected suffix in their names when users configure the service::telemetry::metrics::readers with Prometheus
- service: Revert Default internal metrics config now enables- otel_scope_labels (#12939, #13344)
 Reverting change temporarily due to prometheus exporter downgrade. This unfortunately re-introduces the bug that instrumentation scope attributes cause errors in Prometheus exporter. See http://github.com/open-telemetry/opentelemetry-collector/issues/12939 for details.
- builder: Remove undocumented handling of- DIST_*environment variables replacements (#13335)
API Changelog
π Breaking changes π
- 
configgrpc: Update optional fields to useconfigoptional.Optionalfield for optional values. (#13252, #13364)
 Specifically, the following fields have been updated toconfigoptional:- KeepaliveServerConfig.ServerParameters(- KeepaliveServerParameterstype)
- KeepaliveServerConfig.EnforcementPolicy(- KeepaliveEnforcementPolicytype)
 
- 
xexporterhelper: Remove deprecated NewProfilesExporter function from xexporterhelper package (#13391)
π‘ Enhancements π‘
- 
consumererror: Add new "Downstream" error marker (#13234)
 This new error wrapper type indicates that the error returned by a component's
 Consumemethod is not an internal failure of the component, but instead
 was passed through from another component further downstream.
 This is used internally by the new pipeline instrumentation feature to
 determine theoutcomeof a component call. This wrapper is not intended to
 be used by components directly.
- 
pdata/pprofile: IntroduceEqualmethod on theFunctiontype (#13222)
- 
pdata/pprofile: IntroduceEqualmethod on theLinktype (#13223)
- 
pdata/pprofile: Add new helper methodSetFunctionto set a new function on a line. (#13222)
- 
pdata/pprofile: Add new helper methodSetLinkto set a new link on a sample. (#13223)
- 
pdata/pprofile: Add new helper methodSetStringto set or retrieve the index of a value in the StringTable. (#13225)
v1.36.1/v0.130.1
Images and binaries here: https://github.com/open-telemetry/opentelemetry-collector-releases/releases/tag/v0.130.1
End User Changelog
π§° Bug fixes π§°
- service: Fixes bug where internal metrics are emitted with an unexpected suffix in their names when users configure- service::telemetry::metrics::readerswith Prometheus. (#13449)
 See more details on open-telemetry/opentelemetry-go#7039
API Changelog
v1.36.0/v0.130.0
Images and binaries here: https://github.com/open-telemetry/opentelemetry-collector-releases/releases/tag/v0.130.0
End User Changelog
β Known Issues β
- 
Due to a bug in the internal telemetry Prometheus exporter, if you are configuring an internal telemetry Prometheus exporter, the collector's internal metrics will be emitted with an unexpected suffix in its name. For example, the metric otelcol_exporter_sent_spans__spans__totalinstead ofotelcol_exporter_sent_spans_total. The workaround is to manually configurewithout_units: truein your internal telemetry Prometheus exporter configservice: telemetry: metrics: readers: - pull: exporter: prometheus: host: 0.0.0.0 port: 8888 without_units: true If you are using the collector's default internal telemetry Prometheus exporter for exporting internal metrics you are unaffected. 
This issue has been fixed in v0.130.1. If you are using the Collector builder, please use the builder v0.130.1 to fix this issue.
π Breaking changes π
- exporter/otlp: Remove deprecated batcher config from OTLP, use queuebatch (#13339)
π‘ Enhancements π‘
- exporterhelper: Enable items and bytes sizers for persistent queue (#12881)
- exporterhelper: Refactor persistent storage size backup to always record it. (#12890)
- exporterhelper: Add support to configure a different Sizer for the batcher than the queue (#13313)
- yaml: Replaced- sigs.k8s.io/yamlwith- go.yaml.in/yamlfor improved support and long-term maintainability. (#13308)
π§° Bug fixes π§°
- 
exporterhelper: Fix exporter.PersistRequestContext feature gate (#13342)
- 
exporterhelper: Preserve all metrics metadata when batch splitting. (#13236)
 Previously, when large batches of metrics were processed, the splitting logic inmetric_batch.gocould
 cause thenamefield of some metrics to disappear. This fix ensures that all metric fields are
 properly preserved whenmetricRequestobjects are split.
- 
service: Default internal metrics config now enablesotel_scope_labels (#12939, #13344)
 By default, the Collector exports its internal metrics using a Prometheus
 exporter from the opentelemetry-go repository. With this change, the Collector
 no longer sets "without_scope_info" to true in its configuration.This means that all exported metrics will have otel_scope_name,
 otel_scope_schema_url, andotel_scope_versionlabels corresponding to the
 instrumentation scope metadata for that metric.This notably prevents an error when multiple metrics are only distinguished 
 by their instrumentation scopes and end up aliased during export.If this is not desired behavior, a Prometheus exporter can be explicitly 
 configured with this option enabled.
API Changelog
π Breaking changes π
- exporterhelper: Use configoptional for sending_queue::batch field (#13345)
- configgrpc: Update optional fields to use- configoptional.Optionalfield for optional values. (#13250, #13252)
 Components using- configgrpcpackage may need to update config values.
- confighttp: Use configoptional.Optional in confighttp (#9478)
- exporterhelper: Remove sizer map in favor of items/bytes sizers. Request based is automatically supported. (#13262)
- pdata/pprofile: Remove field Profile.StartTime from pdata/pprofile (#13315)
 Remove Profile.StartTime from OTel Profiling signal.
- exporterhelper: Remove deprecated old batcher config (#13003)
- exporter/otlp: Remove deprecated batcher config from OTLP, use queuebatch (#13339)
π© Deprecations π©
- exporterhelper: Deprecate NewRequestsSizer always supported. (#13262)
- xexporterhelper: Introduce NewProfiles method and deprecate NewProfilesExporter (#13372)
π‘ Enhancements π‘
- 
consumererror: AddErrortype (#7047)
 This type can contain information about errors that allow components (e.g. exporters)
 to communicate error information back up the pipeline.
- 
pdata: Document that changing pcommon.Map (Remove/removeIf/Put*) invalidates Value references obtained via Get. (#13073)
- 
cmd/mdatagen: Add support for optional attribute (#12571)
- 
exporterhelper: Add support to configure a different Sizer for the batcher than the queue (#13313)
- 
pdata: Add support for the new resource-entity reference API as part of the experimental xpdata package. (#13264)