Releases: open-telemetry/opentelemetry-collector
Release list
v1.62.0/v0.156.0
Images and binaries here: https://github.com/open-telemetry/opentelemetry-collector-releases/releases/tag/v0.156.0
End User Changelog
💡 Enhancements 💡
cmd/mdatagen: Add support for defining stability levels for resource attributes (#15312)cmd/mdatagen: Add semantic convention reference to resource attributes (#15313)processor/memory_limiter: Adding health events for the memorylimiter (#14700)
Publish health event from memorylimiter using componentstatus.ReportStatus
🧰 Bug fixes 🧰
-
cmd/mdatagen: Removes the extra line in the documentation.md between extended description and table (#15458) -
exporter/otlp_http: Treat errors parsing successful (2xx) HTTP response bodies as permanent errors to prevent retrying already-accepted data. (#15386)
When a server returns a 2xx status but the response body exceeds the 64kB read limit,
the body is truncated and proto unmarshaling fails. Previously this was treated as a
retryable error, causing duplicate data to be exported. Now it is marked as a permanent
error so the retry logic will not re-send data that was already accepted by the server. -
pkg/config/configretry: Always validate BackOffConfig fields regardless of the Enabled flag. (#15437) -
pkg/service: Ensure receivers always start after all other components (#15495)
There was previously a race condition where multiple receivers using a shared internal implementation,
such as the OTLP receiver, could start sending telemetry into a pipeline before all its components had fully started. -
processor/memory_limiter: Fix degenerate collector performance when exporter has problems causing permanent CPU-burning GC loop (#4981)
Forced GC runs now use exponential backoff when deemed ineffective
(still above soft limit and less than 5% reclaimed) to avoid preventing
recovery by overloading CPU with excessive GC runs. The cap on the
backoff interval is exposed viamax_gc_interval_when_soft_limitedand
max_gc_interval_when_hard_limited(both default30s); set either to
0to disable backoff on that path. -
provider/env: Fix empty env var default resolving to nil instead of empty string (#14587)
When using ${env:VAR:-} with an unset variable, the empty default now correctly
resolves to an empty string instead of nil.
API Changelog
🛑 Breaking changes 🛑
pkg/pprofile: add bounds checks to FromAttributeIndices (#15517)
💡 Enhancements 💡
cmd/mdatagen: Addfield_namefield togo_structconfig inmetadata.yamlto allow customizing the Go struct field name for generated config properties. (#15486)cmd/mdatagen: Handle enum validators in generated config structs (#14805)
Supported validators includeenum.cmd/mdatagen: Generate named Go types for primitive exported config schemas. (#15487)
Primitive exported configs for string, integer, number, and boolean schemas now produce distinct exported types while default values and validation remain on referencing fields.
🧰 Bug fixes 🧰
pkg/pprofile: fix wrong error sentinel in SetString (#15511)
v1.61.0/v0.155.0
Images and binaries here: https://github.com/open-telemetry/opentelemetry-collector-releases/releases/tag/v0.155.0
End User Changelog
🛑 Breaking changes 🛑
pkg/confighttp: Remove stabilized gateconfighttp.framedSnappy(#15420)pkg/configoptional: Remove stabilized gateconfigoptional.AddEnabledField. (#15421)pkg/confmap: Remove stabilized featuregateconfmap.newExpandedValueSanitizer(#15418)pkg/exporterhelper: Remove stable gateexporter.PersistRequestContext. (#15424)pkg/otelcol: Remove stable gateotelcol.printInitialConfig(#15425)pkg/service: Remove stable featuregatetelemetry.UseLocalHostAsDefaultMetricsAddress(#15419)pkg/xpdata: Remove stable gatepdata.enableRefCounting. (#15426)processor/memory_limiter: Rename deprecated memory limiter metrics to include thememory_limiterprefix (e.g.otelcol_processor_memory_limiter_*) to clarify they are specific to this processor. (#11203)
🚀 New components 🚀
cmd/schemagen: Move theschemagenCLI from opentelemetry-collector-contrib to this repository ascmd/schemagen. (#14543)
The tool's source is identical to the upstream contrib version
(github.com/open-telemetry/opentelemetry-collector-contrib/cmd/schemagen) except for the module path and
the test fixtures' namespace, which now reflect the collector module
(go.opentelemetry.io/collector/cmd/schemagen). A contrib-only integration test that pointed at three
contrib components is removed; contrib's existingmake generate-schemas+ git-diff CI continues to
exercise the FactoryMaps feature against real-world components.
💡 Enhancements 💡
-
cmd/mdatagen: Add support for versioned metrics (#15309)
Allows metadata to specify versioned metrics for migrating to new semantic conventions.
There are two scenarios catered for when the metric name stays the same during migration.
When a metric name stays the same but its type differs, just the latest metric is
emitted with the new type.
When a metric name stays the same but its attributes differ, the latest version
is emitted with combined attributes during the migration period. -
cmd/schemagen: AddoverlayFilesupport to deep-merge hand-curated schema fragments into generated schemas. (#14543)
Components can declare anoverlayFilein.schemagen.yamlpointing to a YAML file
whose keys are recursively merged into the auto-generated schema after generation.
This allows injecting descriptions, constraints, or additional properties that cannot
be derived from Go types.
Originally added to the contrib copy ofcmd/schemagenin
open-telemetry/opentelemetry-collector-contrib#48917 and brought over with the tool
in this move. -
cmd/schemagen: Add-pflag to specify a custom Go package pattern for the config struct. (#14543)
The new-pflag lets callers override the default.package pattern with an arbitrary
Go package selector (e.g. a sub-package whoseConfigtype schemagen should walk).
Originally added to the contrib copy ofcmd/schemagenin
open-telemetry/opentelemetry-collector-contrib#48966 and brought over with the tool
in this move.
🧰 Bug fixes 🧰
cmd/mdatagen: Fix an issue when the last feature gate is removed, stale files are left. (#15423)cmd/mdatagen: Fix known acronyms at the end of generated Go identifiers to be all-caps, same as in any other position (#15438)cmd/schemagen: Fix mode detection when using-pto target a package outside the current directory. (#15453)
A new-m component|packageflag is available as a manual override when auto-detection is not possible.
API Changelog
🛑 Breaking changes 🛑
cmd/mdatagen: Remove thereaggregation_enabledmetadata setting and always generate per-metric reaggregation config. (#15305)
Legacy metadata files that still containreaggregation_enabledare accepted, but the value is ignored.
🚩 Deprecations 🚩
pkg/service: Deprecateservice.Settings.CollectorConfandextensioncapabilities.ConfigWatcherin favor ofservice.Settings.ConfigSnapshotandextensioncapabilities.ConfigSnapshotWatcher, which provide effective and unexpanded configuration representations. (#15432)
💡 Enhancements 💡
pkg/config/configmiddleware: Migrated middleware config to schema based (#15440)pkg/pdata: AddDisallowUnknownFieldsoption toJSONUnmarshalerin plog, ptrace, pmetric, pprofile, and xpdata to error on JSON fields not defined by the OTLP schema. (#15279)
WhenDisallowUnknownFieldsis false (the default), unknown fields are silently ignored, matching the previous behavior.
Warning: enabling this option breaks forwards compatibility with future evolutions of the OTLP format, as fields added to the format in newer versions will be rejected as unknown.
🧰 Bug fixes 🧰
cmd/mdatagen: Fix known acronyms at the end of generated Go identifiers to be all-caps, same as in any other position (#15438)
v1.60.0/v0.154.0
Images and binaries here: https://github.com/open-telemetry/opentelemetry-collector-releases/releases/tag/v0.154.0
End User Changelog
🛑 Breaking changes 🛑
cmd/builder: The--skip-get-modulesflag will no longer regenerate yourgo.modfile. (#15390)
This is mostly a bug fix, as it led to adverse behaviour that was unintended in the described flow in the README.
Now when you run--skip-get-modules, yourgo.modfile will truly be untouched byocbas the info log claims.
💡 Enhancements 💡
pkg/config/configtls: Addinclude_insecure_cipher_suitesto configtls to enable insecure cipher suites. Insecure cipher suites are disabled by default for security. (#13829)pkg/confighttp: AddExposedHeadersfield toCORSConfigto allow setting theAccess-Control-Expose-Headersresponse header. (#15119)
🧰 Bug fixes 🧰
cmd/mdatagen: Removes the extra line in the README.md between status and description (#15306)pkg/exporterhelper: Fix nil-pointer panic insending_queue::batchUnmarshal whensending_queue::sizeris set andsending_queue::batch::enabledis false. (#14687)
Whensending_queue::sizerwas set andsending_queue::batch::enabled: false
cleared the batch Optional to None, the sizer-inheritance branch in
queuebatch.Config.Unmarshaldereferenced a nil Optional and crashed the
collector at startup. The branch now also requiresBatch.HasValue().
API Changelog
💡 Enhancements 💡
cmd/mdatagen: Handle numeric validators in generated config structs (#14806)
Supported validators includeminimum,maximum,exclusiveMinimumandexclusiveMaximum.pkg/config/configtls: Addinclude_insecure_cipher_suitesto configtls to enable insecure cipher suites. Insecure cipher suites are disabled by default for security. (#13829)pkg/confighttp: AddExposedHeadersfield toCORSConfigto allow setting theAccess-Control-Expose-Headersresponse header. (#15119)
v1.59.0/v0.153.0
Images and binaries here: https://github.com/open-telemetry/opentelemetry-collector-releases/releases/tag/v0.153.0
End User Changelog
🛑 Breaking changes 🛑
pkg/configoptional: Stabilize feature gate configoptional.AddEnabledField (#15333)pkg/confmap: Stabilize confmap.newExpandedValueSanitizer feature gate (#15339)pkg/exporterhelper: mark exporter.PersistRequestContext as stable (#15330)pkg/otelcol: Stabilize otelcol.printInitialConfig gate (#15340)pkg/pdata: Remove pdata.useCustomProtoEncoding feature gate (#15332)pkg/service: Stabilize telemetry.UseLocalHostAsDefaultMetricsAddress gate (#15342)pkg/xpdata: Stabilize pdata.enableRefCounting feature gate (#15331)
🧰 Bug fixes 🧰
API Changelog
🛑 Breaking changes 🛑
cmd/mdatagen: Enable reaggregation config generation by default; setreaggregation_enabled: falseto keep generating metric config with only theenabledfield. (#14689)
💡 Enhancements 💡
-
cmd/mdatagen: Enforce stricterfeature_gatesvalidation inmetadata.yamlby default. (#15310)
Strict validation can be skipped on a per-gate basis by setting
skip_strict_validation: trueon the gate entry. -
cmd/mdatagen: Support generating config schema and Go config types for package metadata that defines reusable configs under$defs. (#15235) -
cmd/mdatagen: Generate config documentation table and inject it into README.md between sentinel comments (#14564)
When a component defines aconfig:section in itsmetadata.yaml,mdatagennow
generates a Markdown configuration table and injects it intoREADME.mdbetween:The table lists every YAML-visible property (including fields from embedded structs),
with type, default value, required status, and description. Nested objects generate
sub-tables linked from the parent row. Components whose README lacks the sentinel
markers are unaffected. -
pkg/configoptional: Add methods allowing scalar unmarshaling (#15175) -
pkg/scraperhelper: Switchscraperhelper.ControllerConfigto schema-based generated configuration and publish its reusablecontroller_configschema. (#15258) -
pkg/xconfmap: AddScalarMarshalerandScalarUnmarshalerinterfaces to allow custom marshaling and unmarshaling of wrapped scalar values. (#15175) -
pkg/xextension/storage: Add Walker interface, WalkFunc type, and SkipAll error value to support iterating over storage key/value entries. (#15190, #15191)
A storage Client may optionally implement the Walker interface to allow
consumers to range through all stored entries. This enables use cases such
as storage migrations and TTL-based garbage collection.
v1.58.0/v0.152.1
Images and binaries here: https://github.com/open-telemetry/opentelemetry-collector-releases/releases/tag/v0.152.1
End User Changelog
💡 Enhancements 💡
pkg/exporterhelper: Addotelcol_exporter_in_flight_requestsmetric to track the number of export requests currently in-flight per exporter. (#15009)
This UpDownCounter increments in startOp and decrements in endOp, allowing operators to monitor
concurrent export activity and detect when an exporter is saturating its worker pool.
🧰 Bug fixes 🧰
-
pkg/confighttp: Close the original request body after reading block-formatContent-Encoding: snappyrequests. (#15262) -
pkg/confighttp: Recover from panics in decompression libraries, return HTTP 400 instead of 500. (#13228) -
pkg/confighttp: Enforcemax_request_body_sizeonContent-Encoding: snappyrequests before the decoded buffer is allocated. (#15252) -
pkg/otelcol: Stop emitting verbose gRPC transport messages at WARN during normal client disconnect. (#5169)
grpc-go gates chatty per-RPC notices (e.g. "HandleStreams failed to read frame:
connection reset by peer") behindLoggerV2.V(2). zapgrpc.Logger.V conflates
grpclog verbosity with zap severity, so V(2) returns true whenever WARN is
enabled and these messages emit at WARN. Wrap the installed grpclog.LoggerV2
with a corrected V() that compares against a fixed verbosity threshold,
matching grpclog's intended semantics. See uber-go/zap#1544. -
pkg/pdata:pcommon.Value.AsStringno longer HTML-escapes<,>, and&insideValueTypeMapandValueTypeSlicevalues, matching the behavior already used forValueTypeStr. (#14662) -
pkg/service: Fix Prometheus config defaults mismatch when host is explicitly set in telemetry configuration. (#13867)
When users explicitly configured the telemetry metrics section (e.g. to change the host),
the Prometheus exporter boolean fields (WithoutScopeInfo, WithoutUnits, WithoutTypeSuffix)
defaulted to nil/false instead of true, causing metric name format changes compared to the
implicit default configuration. This fix applies the correct defaults during config unmarshaling. -
pkg/service: Return noop tracer provider when no trace processors are defined (#15135)
API Changelog
🚩 Deprecations 🚩
pkg/xconfmap: Deprecatexconfmap.Validatorandconfmap.Validatein favor ofconfmap.Validatorandconfmap.Validate. (#15142)
💡 Enhancements 💡
-
cmd/mdatagen: Addgo_struct.ignore_defaultflag to suppress default value generation for individual config fields. (#15156)
Settinggo_struct.ignore_default: trueon a config field causes mdatagen to omit that field's default
from the generatedcreateDefaultConfigfunction, emittingnilfor pointer fields
andconfigoptional.Nonefor optional fields. -
pkg/confmap: Add theconfmap.Validatorinterface andconfmap.Validatefunction for configuration validation. (#15142)
Config structs should generally implement the interface to provide validation
of their fields. Theconfmap.Validatefunction can be used to validate
config structs in testing, but is only meant to be called at runtime by the
Collector itself.
🧰 Bug fixes 🧰
pkg/pdata:pcommon.Value.AsStringno longer HTML-escapes<,>, and&insideValueTypeMapandValueTypeSlicevalues, matching the behavior already used forValueTypeStr. (#14662)
v1.58.0/v0.152.0
Images and binaries here: https://github.com/open-telemetry/opentelemetry-collector-releases/releases/tag/v0.152.0
End User Changelog
💡 Enhancements 💡
pkg/exporterhelper: Addotelcol_exporter_in_flight_requestsmetric to track the number of export requests currently in-flight per exporter. (#15009)
This UpDownCounter increments in startOp and decrements in endOp, allowing operators to monitor
concurrent export activity and detect when an exporter is saturating its worker pool.
🧰 Bug fixes 🧰
-
pkg/confighttp: Close the original request body after reading block-formatContent-Encoding: snappyrequests. (#15262) -
pkg/confighttp: Recover from panics in decompression libraries, return HTTP 400 instead of 500. (#13228) -
pkg/confighttp: Enforcemax_request_body_sizeonContent-Encoding: snappyrequests before the decoded buffer is allocated. (#15252) -
pkg/otelcol: Stop emitting verbose gRPC transport messages at WARN during normal client disconnect. (#5169)
grpc-go gates chatty per-RPC notices (e.g. "HandleStreams failed to read frame:
connection reset by peer") behindLoggerV2.V(2). zapgrpc.Logger.V conflates
grpclog verbosity with zap severity, so V(2) returns true whenever WARN is
enabled and these messages emit at WARN. Wrap the installed grpclog.LoggerV2
with a corrected V() that compares against a fixed verbosity threshold,
matching grpclog's intended semantics. See uber-go/zap#1544. -
pkg/pdata:pcommon.Value.AsStringno longer HTML-escapes<,>, and&insideValueTypeMapandValueTypeSlicevalues, matching the behavior already used forValueTypeStr. (#14662) -
pkg/service: Fix Prometheus config defaults mismatch when host is explicitly set in telemetry configuration. (#13867)
When users explicitly configured the telemetry metrics section (e.g. to change the host),
the Prometheus exporter boolean fields (WithoutScopeInfo, WithoutUnits, WithoutTypeSuffix)
defaulted to nil/false instead of true, causing metric name format changes compared to the
implicit default configuration. This fix applies the correct defaults during config unmarshaling. -
pkg/service: Return noop tracer provider when no trace processors are defined (#15135)
API Changelog
🚩 Deprecations 🚩
pkg/xconfmap: Deprecatexconfmap.Validatorandconfmap.Validatein favor ofconfmap.Validatorandconfmap.Validate. (#15142)
💡 Enhancements 💡
-
cmd/mdatagen: Addgo_struct.ignore_defaultflag to suppress default value generation for individual config fields. (#15156)
Settinggo_struct.ignore_default: trueon a config field causes mdatagen to omit that field's default
from the generatedcreateDefaultConfigfunction, emittingnilfor pointer fields
andconfigoptional.Nonefor optional fields. -
pkg/confmap: Add theconfmap.Validatorinterface andconfmap.Validatefunction for configuration validation. (#15142)
Config structs should generally implement the interface to provide validation
of their fields. Theconfmap.Validatefunction can be used to validate
config structs in testing, but is only meant to be called at runtime by the
Collector itself.
🧰 Bug fixes 🧰
pkg/pdata:pcommon.Value.AsStringno longer HTML-escapes<,>, and&insideValueTypeMapandValueTypeSlicevalues, matching the behavior already used forValueTypeStr. (#14662)
v1.57.0/v0.151.0
Images and binaries here: https://github.com/open-telemetry/opentelemetry-collector-releases/releases/tag/v0.151.0
End User Changelog
🛑 Breaking changes 🛑
-
cmd/builder: In the generated Collector source, thereplacestatements in the Go module will now use relative paths by default. (#15097)
We expect that this will not break existing use-cases where the generated collector is only used in an interim manner for builds. It enables the possibility of tracking the generated Collector code as a longer living artifact, allowing it to be run on any machine (whereas absolute paths will be different depending on the machine the Collector source is generated on.) We have addeddist::use_absolute_replace_pathsto go back to the absolute path behaviour in the case where there is an unforeseen use-case that requires absolute paths. -
pkg/confighttp: Stabilize framedSnappy feature gate. (#15096)
💡 Enhancements 💡
-
all: Add declarative schema support for service telemetry resource configuration. (#14411)
Theservice::telemetry::resourceconfiguration now accepts the declarative schema with explicit name/value pairs:service: telemetry: resource: schema_url: https://opentelemetry.io/schemas/1.38.0 attributes: - name: service.name value: my-collector - name: host.name value: collector-host
The legacy inline attribute map format is still supported for backward compatibility:
service: telemetry: resource: service.name: my-collector host.name: collector-host
Note:
resource.detectorsis accepted for forward compatibility but is not yet applied by the collector. -
exporter/otlp_grpc: Added theserver.addressandurl.pathattributes to metrics generated by the otlp exporter. (#14998) -
exporter/otlp_http: Added theserver.addressandurl.pathattributes to metrics generated by the otlp_http exporter. (#14998) -
pkg/config/configgrpc: AddUserAgentfield toClientConfigto allow overriding the default gRPC user-agent string. (#14686)
The otlp gRPC exporter was unconditionally setting the User-Agent via
grpc.WithUserAgent() at dial time, which takes precedence over per-call
metadata, causing any user-configured User-Agent to be silently discarded.
A dedicatedUserAgentfield has been added toClientConfigwhich, when
set, is used in the dial option directly instead of the default BuildInfo-derived string. -
pkg/config/configgrpc: Accept gRPC resolver scheme URIs in client endpoint (e.g. passthrough:///host:port) to allow control over name resolution (#14990)
After the migration to grpc.NewClient, some gRPC client components such as the OTLP
exporter experienced connection issues in dual-stack DNS environments. This can now be
fixed by using the passthrough:/// gRPC resolver scheme in the endpoint field. -
pkg/config/confignet: Add support for Windows Named Pipe (npipe) transport (#15085) -
pkg/service: Emit a warning when using the old v0.2.0 declarative config format (#15088)
🧰 Bug fixes 🧰
-
pkg/otelcol: Print components exactly once in theotelcol componentscommand (#14682)
This resolves an issue where aliased components were skipped. -
pkg/otelcol: Synchronize Collector Run and Shutdown lifecycles so that Shutdown blocks until Run completes all cleanup. (#4947)
Shutdown now blocks until Run finishes cleanup, matching http.Server semantics.
If Shutdown is called before Run, the next Run call returns nil after cleaning up
the config provider. -
pkg/pdata: Use spec-compliant string representation for NaN, Infinity, and -Infinity in Value.AsString(). (#14487) -
pkg/pprofile: Fix data corruption of resource and scope attributes after marshal-unmarshal-merge round-trip. (#15084) -
pkg/service: Non-string resource attributes in telemetry configuration now return an error instead of panicking (#15171) -
pkg/xscraperhelper: fix the merge of profiles in the profiling scraper helpers (#14790) -
receiver/otlp: Fix profiles receiver reporting its samples as spans (#15089)
API Changelog
🛑 Breaking changes 🛑
receiver/otlp:Config.Protocolsis now a named field instead of an anonymous embedded field. (#15178)
Access tocfg.GRPCandcfg.HTTPmust be updated tocfg.Protocols.GRPCandcfg.Protocols.HTTP.
🚩 Deprecations 🚩
cmd/mdatagen: TheDefaultMetricsBuilderConfigfunction is deprecated. UseNewDefaultMetricsBuilderConfiginstead. (#15165)
The generatedDefaultMetricsBuilderConfigfunction has been renamed toNewDefaultMetricsBuilderConfig
to follow Go naming conventions. The old function is kept as a deprecated wrapper and will be removed
in a future release.
💡 Enhancements 💡
-
cmd/mdatagen: Handle default values for configuration fields in generated code in mdatagen. (#14560) -
cmd/mdatagen: Add opt-in override_value support for resource_attributes config viaoverride_value_enabledflag (#15109)
Components can opt in by settingoverride_value_enabled: truein their metadata.yaml.
When enabled, per-attribute config types are generated with typedoverride_valuefields
that let users override resource attribute values in the collector configuration.
Components without the flag continue to use the sharedResourceAttributeConfigtype. -
cmd/mdatagen: Extend mdatagen config code generation to correctly handle default values for allOf embedded references (#14560) -
cmd/mdatagen: Handle string validators in generated config structs (#14807)
Supported validators includeminLength,maxLengthandpattern. -
pkg/config/configgrpc: Add aDefaultBalancerNameconstant for the name of the default load balancer (#15139)
This replaces theBalancerNamefunction. -
pkg/config/configgrpc: Accept gRPC resolver scheme URIs in client endpoint (e.g. passthrough:///host:port) to allow control over name resolution (#14990)
After the migration to grpc.NewClient, some gRPC client components such as the OTLP
exporter experienced connection issues in dual-stack DNS environments. This can now be
fixed by using the passthrough:/// gRPC resolver scheme in the endpoint field. -
pkg/exporterhelper: Added theWithAttrsoption to allow custom attributes on exporter metrics (#14998)
🧰 Bug fixes 🧰
-
cmd/mdatagen: Fix a bug in mdatagen where theallOffield was not being properly handled, resulting in incorrect generation of data models. (#15153) -
pkg/otelcol: Synchronize Collector Run and Shutdown lifecycles so that Shutdown blocks until Run completes all cleanup. (#4947)
Shutdown now blocks until Run finishes cleanup, matching http.Server semantics.
If Shutdown is called before Run, the next Run call returns nil after cleaning up
the config provider. -
pkg/pdata: Use pool-aware constructors in gRPC service handlers so top-level request structs participate in the sync.Pool lifecycle. (#14763)
The gRPC service handlers for all signal types allocated the top-level
ExportXxxServiceRequest with bare new(), bypassing the sync.Pool when
pdata.useProtoPooling is enabled. This caused objects returned to the pool
via Delete to never be retrieved. The handlers now use the pool-aware
New*() constructors.
v1.56.0/v0.150.0
Images and binaries here: https://github.com/open-telemetry/opentelemetry-collector-releases/releases/tag/v0.150.0
End User Changelog
💡 Enhancements 💡
all: Update semconv package from 1.38.0 to 1.40.0 (#15095)cmd/mdatagen: Only allow theToVersionfeature flag attribute to be set for theStableandDeprecatedstages. (#15040)
To better match the feature flag README
(https://github.com/open-telemetry/opentelemetry-collector/blob/main/featuregate/README.md#feature-lifecycle).
🧰 Bug fixes 🧰
-
exporter/debug: Guard from out of bounds profiles dictionary indices (#14803) -
pdata/pprofile: create a copy when the input is marked as read-only (#15080) -
pkg/otelcol: Fix missing default values in unredacted print-config command by introducing confmap.WithUnredacted MarshalOption. (#14750)
Resolves an issue where the unredacted mode output omitted all default-valued options. By introducing a new MarshalOption to disable redaction directly at the confmap encoding level, the unredacted mode now preserves all component defaults natively without requiring post-processing. -
pkg/service: Headers on the internal telemetry OTLP exporter are now redacted when the configuration is marshaled (#14756)
API Changelog
💡 Enhancements 💡
cmd/mdatagen: Add custom validation support for Go config structs (#14563)
v1.55.0/v0.149.0
Images and binaries here: https://github.com/open-telemetry/opentelemetry-collector-releases/releases/tag/v0.149.0
End User Changelog
🛑 Breaking changes 🛑
pkg/service: Removeservice_name,service_instance_id, andservice_versionas constant labels on every internal metric datapoint. These attributes are already present intarget_infoand were being duplicated on each series for OpenCensus backwards compatibility. (#14811)
Previously, the collector stamped every internal metric series (e.g.otelcol_process_runtime_heap_alloc_bytes)
withservice_name,service_instance_id, andservice_versionlabels to match the old OpenCensus behavior.
These attributes are now only present in thetarget_infometric, which is the correct Prometheus/OTel convention.
Users who filter or group by these labels on individual metrics will need to update their queries to use
target_infojoins instead.
💡 Enhancements 💡
-
all: Move aix/ppc64 to tier 3 support (#13380) -
all: Upgrade the profiles stability status to alpha (#14817)
The following components have their profiles status upgraded from development to alpha:- pdata/pprofile
- connector/forward
- exporter/debug
- receiver/nop
- exporter/nop
- exporter/otlp_grpc
- exporter/otlp_http
-
cmd/mdatagen: Add semconv reference for attributes (#13297)
🧰 Bug fixes 🧰
cmd/mdatagen: Fix entity code generation soextra_attributesare emitted as resource attributes instead of entity descriptive attributes. (#14778)
API Changelog
💡 Enhancements 💡
cmd/mdatagen: Added ability to generate required fields validation to config go structs generated by mdatagen (#14563)
🧰 Bug fixes 🧰
cmd/mdatagen: Fix RootPackage to use go module root instead of git repo root (#14801)
Fixes issue with running mdatagen when the git repository root is different from the go module root.
v1.54.0/v0.148.0
Images and binaries here: https://github.com/open-telemetry/opentelemetry-collector-releases/releases/tag/v0.148.0
End User Changelog
❗ Known Issues ❗
service: The collector's internal Prometheus metrics endpoint (:8888) now emits OTel service labels with underscore
names (service_name,service_instance_id,service_version) instead of dot-notation names (service.name,
service.instance.id,service.version). Users scraping this endpoint with the Prometheus receiver will see these renamed
labels in resource and datapoint attributes. As a workaround, add the followingmetric_relabel_configsto your scrape
config in prometheus receiver:See #14814 for details and updates.metric_relabel_configs: - source_labels: [service_name] target_label: service.name - source_labels: [service_instance_id] target_label: service.instance.id - source_labels: [service_version] target_label: service.version - regex: service_name|service_instance_id|service_version action: labeldrop
🛑 Breaking changes 🛑
all: Change metric units to be singular to match OTel specification, e.g.{requests}->{request}(#14753)
💡 Enhancements 💡
cmd/mdatagen: Add deprecated_type field to allow specifying an alias for component types. (#14718)cmd/mdatagen: Generate entity-scoped MetricsBuilder API that enforces entity-metric associations at compile time (#14659)cmd/mdatagen: Skip generating reaggregation config options for metrics that have no aggregatable attributes. (#14689)pkg/service: The internal status reporter no longer drops repeated Ok and RecoverableError statuses (#14282)
Status events can now carry metadata and there's value in allowing them to be emitted despite the status value itself
not changing.
🧰 Bug fixes 🧰
-
cmd/builder: Add.exeto output binary names when building for Windows targets. (#12591) -
exporter/debug: Add printing of metric metadata in detailed verbosity. (#14667) -
exporter/otlp_grpc: Prevent nil pointer panic when push methods are called before the OTLP exporter initializes its gRPC clients. (#14663)
When the sending queue and retry are disabled, calling ConsumeTraces,
ConsumeMetrics, ConsumeLogs, or ConsumeProfiles before the OTLP exporter
initializes its gRPC clients could cause a nil pointer dereference panic.
The push methods now return an error instead of panicking. -
exporter/otlp_http: Show the actual destination URL in error messages when request URL is modified by middleware. (#14673)
Unwraps the*url.Errorreturned byhttp.Client.Do()to prevent misleading error logs when a middleware extension dynamically updates the endpoint. -
pdata/pprofile: Switch the dictionary of dictionary tables entries only once when merging profiles (#14709)
For dictionary table data, we used to switch their dictionaries when doing
the switch for the data that uses them.
However, when an entry is associated with multiple other data (several
samples can use the same stack), we would have been switching the
dictionaries of the entry multiple times.We now switch dictionaries for dictionary table data only once, before
switching the resource profiles.
API Changelog
🛑 Breaking changes 🛑
-
cmd/mdatagen: Generate a per-metric config type<MetricName>Configfor each metric whenreaggregation_enabled: true(#14689)
Metrics with aggregatable attributes getAggregationStrategyandEnabledAttributes []<MetricName>AttributeKey
fields; others getEnabledonly. Typed attribute key constants (e.g.DefaultMetricAttributeKeyStringAttr)
replace[]string, eliminating runtime attribute slice allocations. Validation errors now list valid attributes
and strategies by name. Components usingreaggregation_enabled: truewill need to update references toMetricConfig. -
pdata/pprofile: Update protoID for message Sample fields (#14652)
💡 Enhancements 💡
-
cmd/mdatagen: Extend mdatagen tool to generate go config structs for OpenTelemetry collector components. (#14561)
The component config go code is generated fromconfigsection of the metadata.yaml file. -
cmd/mdatagen: Extend mdatagen tool to generate config JSON schema for OpenTelemetry components. (#14543)
The component config JSON schema is generated fromconfigsection of the metadata.yaml file. -
cmd/mdatagen: Schema generation for mdatagen-controlled config parts (#14562)
The schema is generated in separate yaml file and used to create full component schema. -
pdata/pprofile: Implement reference based attributes in Profiles (#14546) -
pkg/pdata: Upgrade the OTLP protobuf definitions to version 1.10.0 (#14766) -
pkg/service: The internal status reporter no longer drops repeated Ok and RecoverableError statuses (#14282)
Status events can now carry metadata and there's value in allowing them to be emitted despite the status value itself
not changing. -
pkg/xexporterhelper: Add logic to cleanup partitions from memory which are not being used for specific time period. (#14526) -
pkg/xpdata: AddNewEntityconstructor,Entity.CopyToResource, andEntityAttributeMap.Alltopdata/xpdata/entity(#14659)
🧰 Bug fixes 🧰
-
cmd/mdatagen: Preserve custom extensions (e.g.,x-customType,x-pointer) during schema reference resolution. (#14713, #14565)
Fixes an issue where custom properties defined locally on a node were
overwritten and lost when resolving a$refto an external/internal schema. -
pkg/xexporterhelper: Fix race when partition is being removed from LRU and new items are being added at the same time. (#14526)