Releases: open-telemetry/opentelemetry-collector
v1.46.0/v0.140.0
Images and binaries here: https://github.com/open-telemetry/opentelemetry-collector-releases/releases/tag/v0.140.0
End User Changelog
💡 Enhancements 💡
-
cmd/mdatagen:metadata.yamlnow supports an optionalentitiessection to organize resource attributes into logical entities with identity and description attributes (#14051)
When entities are defined, mdatagen generatesAssociateWith{EntityType}()methods on ResourceBuilder
that associate resources with entity types using the entity refs API. The entities section is backward
compatible - existing metadata.yaml files without entities continue to work as before. -
cmd/mdatagen: Add semconv reference for metrics (#13920) -
connector/forward: Add support for Profiles to Profiles (#14092) -
exporter/debug: Disable sending queue by default (#14138)
The recently added sending queue configuration in Debug exporter was enabled by default and had a problematic default size of 1.
This change disables the sending queue by default.
Users can enable and configure the sending queue if needed. -
pkg/config/configoptional: Markconfigoptional.AddEnabledFieldas beta (#14021) -
pkg/otelcol: This feature has been improved and tested; secure-by-default redacts configopaque values (#12369)
🧰 Bug fixes 🧰
all: Ensure service service.instance.id is the same for all the signals when it is autogenerated. (#14140)
API Changelog
🛑 Breaking changes 🛑
-
pdata/pprofile: Upgrade the OTLP protobuf definitions to version 1.9.0 (#14128)- Drop field
CommentStrindicesinProfile. - Rename
SampletoSamplesinProfile. - Rename
LinetoLinesinLocation. - Remove
AggregationTemporalityfield inValueType.
See https://github.com/open-telemetry/opentelemetry-proto/releases/tag/v1.9.0
- Drop field
-
pkg/otelcol: Theotelcol.Factories.Telemetryfield is now required (#14003)
Previously if this field was not set, then it would default to an otelconftelemetry factory.
Callers of the otelcol package must now set the field explicitly.
💡 Enhancements 💡
pkg/pdata: Upgrade the OTLP protobuf definitions to version 1.9.0 (#14128)
v1.45.0/v0.139.0
Images and binaries here: https://github.com/open-telemetry/opentelemetry-collector-releases/releases/tag/v0.139.0
End User Changelog
🛑 Breaking changes 🛑
-
cmd/mdatagen: Make stability.level a required field for metrics (#14070) -
cmd/mdatagen: Replaceoptionalfield withrequirement_levelfield for attributes in metadata schema (#13913)
Theoptionalboolean field for attributes has been replaced with arequirement_levelfield that accepts enum values:required,conditionally_required,recommended, oropt_in.required: attribute is always included and cannot be excludedconditionally_required: attribute is included by default when certain conditions are met (replacesoptional: true)recommended: attribute is included by default but can be disabled via configuration (replacesoptional: false)opt_in: attribute is not included unless explicitly enabled in user config
Whenrequirement_levelis not specified, it defaults torecommended.
-
pdata/pprofile: Remove deprecatedPutAttributehelper method (#14082) -
pdata/pprofile: Remove deprecatedPutLocationhelper method (#14082)
💡 Enhancements 💡
all: Add FIPS and non-FIPS implementations for allowed TLS curves (#13990)cmd/builder: Set CGO_ENABLED=0 by default, add thecgo_enabledconfiguration to enable it. (#10028)pkg/config/configgrpc: Errors of type status.Status returned from an Authenticator extension are being propagated as is to the upstream client. (#14005)pkg/config/configoptional: Adds newconfigoptional.AddEnabledFieldfeature gate that allows users to explicitly disable aconfigoptional.Optionalthrough a newenabledfield. (#14021)pkg/exporterhelper: Replace usage of gogo proto for persistent queue metadata (#14079)pkg/pdata: Remove usage of gogo proto and generate the structs with pdatagen (#14078)
🧰 Bug fixes 🧰
exporter/debug: add queue configuration (#14101)
API Changelog
🛑 Breaking changes 🛑
-
all: Change type ofconfiggrpc.ClientConfig.Headers,confighttp.ClientConfig.Headers, andconfighttp.ServerConfig.ResponseHeaders(#13930)
configopaque.MapListis a new alternative tomap[string]configopaque.Stringwhich can unmarshal
both maps and lists of name/value pairs.For example, if
headersis a field of typeconfigopaque.MapList,
then the following YAML configs will unmarshal to the same thing:headers: "foo": "bar" headers: - name: "foo" value: "bar"
-
pdata/pprofile: UpdateSetFunctionto return the function's ID rather than update the Line (#14016, #14032) -
pdata/pprofile: UpdateSetLinkto return the link's ID rather than update the Sample (#14016, #14031) -
pdata/pprofile: UpdateSetMappingto return the mapping's ID rather than update the Location (#14016, #14030) -
pkg/otelcol: Require a telemetry factory to be injected through otelcol.Factories (#4970)
otelcol.Factories now has a required Telemetry field,
which contains the telemetry factory to be used by the service.
Set it to otelconftelemetry.NewFactory() for the existing behavior. -
pkg/pdata: Remove unused generated code from pprofile (#14073)
Experimental package, ok to break since not used.
💡 Enhancements 💡
pdata/pprofile: IntroduceSetStackmethod (#14007)pdata/xpdata: Add high-level Entity API for managing entities attached to resources (#14042)
IntroducesEntity,EntitySlice, andEntityAttributeMaptypes that provide a user-friendly interface
for working with resource entities. The new API ensures consistency between entity and resource attributes
by sharing the underlying attribute map, and prevents attribute conflicts between entities. This API may
eventually replace the generated protobuf-based API for better usability.
🧰 Bug fixes 🧰
cmd/mdatagen: Fix mdatagen generated_metrics for connectors (#12402)
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: Addkeep_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 usepcommon.Valueinstead ofAnyValue. (#13837)pkg/exporterhelper: ExposeMergeCtxin 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 accessinglogsTaken.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: DeprecatedPutAttributehelper method (#14016, #14041)pdata/pprofile: DeprecatedPutLocationhelper method (#14019)
💡 Enhancements 💡
all: Addkeep_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: IntroduceEqualmethod on theKeyValueAndUnittype (#14041)pkg/pdata: AddRemoveIfmethod to primitive slice types (StringSlice, Int64Slice, UInt64Slice, Float64Slice, Int32Slice, ByteSlice) (#14027)pdata/pprofile: IntroduceSetAttributehelper method (#14016, #14041)pdata/pprofile: IntroduceSetLocationhelper method (#14019)pdata/pprofile: IntroduceEqualmethod on theStacktype (#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 1configtls: 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 newexporter_queue_batch_send_sizeandexporter_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: Respectnum_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 implementsxconfmap.Validatorbatchprocessor: 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: Settcpas 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 implementsxconfmap.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: RemoveGetFactoryfrom the host returned byNewNopHost(#13577)
This method is no longer part of thecomponent.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: Moveconfighttp.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 Prometheusservice: Revert Default internal metrics config now enablesotel_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 ofDIST_*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)