This release includes 1 breaking change for platform teams planning a safe upgrade.
✓ No known CVEs patched in this version
Topics
Affected surfaces
Summary
AI summaryUpdates 🧰 Bug fixes 🧰, 💡 Enhancements 💡, and 🛑 Breaking changes 🛑 across a mixed release.
Full changelog
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)
Breaking Changes
- `pkg/pprofile`: add bounds checks to FromAttributeIndices
Weekly OSS security release digest.
The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.
No spam, unsubscribe anytime.
Share this release
Related context
Earlier breaking changes
- v0.154.0 `cmd/builder`: `--skip-get-modules` no longer regenerates go.mod file.
- v0.153.0 Enable reaggregation config generation by default in mdatagen; set `reaggregation_enabled: false` to retain previous behavior.
- v0.153.0 Stabilize pdata.enableRefCounting feature gate.
- v0.153.0 Stabilize telemetry.UseLocalHostAsDefaultMetricsAddress gate.
- v0.153.0 Remove pdata.useCustomProtoEncoding feature gate.
Beta — feedback welcome: [email protected]