This release contains the first stable release of the OpenTelemetry Go Logs API and SDK.
Our project stability guarantees now apply to the following modules:
go.opentelemetry.io/otel/log
go.opentelemetry.io/otel/sdk/log
See our versioning policy for more information about these stability guarantees.
Added
Add String method for KeyValue type in go.opentelemetry.io/otel/attribute. (#8205)
Add String method for Set type in go.opentelemetry.io/otel/attribute. (#8347)
Add WithMaxExportBatchSize to go.opentelemetry.io/otel/sdk/metric to configure the maximum export batch size for PeriodicReader. (#8960)
Add WithAttributeValueDepthLimit, DefaultAttributeValueDepthLimit, and SpanLimits.AttributeValueDepthLimit in go.opentelemetry.io/otel/sdk/trace to configure the maximum depth of span, event, link, and instrumentation scope attribute values. (#8938)
Add WithAttributeValueDepthLimit in go.opentelemetry.io/otel/sdk/log to configure the maximum depth of log record and instrumentation scope attribute values. (#8938)
Add WithMaxResponseSize to go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp, go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp, and go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp. (#8941)
Add experimental *Binder extension interfaces in go.opentelemetry.io/otel/metric/x for instruments that support binding attributes ahead of time. (#8760)
Add the experimental Finisher synchronous metric instrument extension interface to go.opentelemetry.io/otel/metric/x. (#8906)
Apply a maximum depth of 64 by default to span, event, link, log record, and instrumentation scope attribute values in go.opentelemetry.io/otel/sdk/trace and go.opentelemetry.io/otel/sdk/log. (#8938)
Reduce allocations when applying attribute value length limits in go.opentelemetry.io/otel/sdk/trace and go.opentelemetry.io/otel/sdk/log by rebuilding composite values only when truncation is needed. (#8912)
Decode traceparent using a hex lookup table in go.opentelemetry.io/otel/propagation, which rejects the specification-disallowed upper-case characters without a separate scan of the header. (#8739)
Decode all characters at constant indices in TraceIDFromHex and SpanIDFromHex in go.opentelemetry.io/otel/trace to eliminate bounds checks. (#8740)
Fixed
Count valid U+FFFD replacement characters toward attribute value length limits in go.opentelemetry.io/otel/trace, go.opentelemetry.io/otel/sdk/trace, and go.opentelemetry.io/otel/sdk/log.
Truncate string attribute values to empty strings when the configured length limit is zero, including malformed UTF-8, in go.opentelemetry.io/otel/trace, go.opentelemetry.io/otel/sdk/trace, and go.opentelemetry.io/otel/sdk/log. (#9054)
Fix a data race in NewPeriodicReader where r.inst was assigned after the background goroutine was launched in go.opentelemetry.io/otel/sdk/metric. (#9028)
Prevent precision loss for large int64 values in Sum, Histogram, and ExponentialHistogram aggregations in go.opentelemetry.io/otel/sdk/metric. (#8981)
Ensure grpc.DialOption values passed via WithDialOption take precedence over conflicting internally-computed defaults in go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc, go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc, and go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc. (#8805, #8834, #8836)
Treat overflowing OTEL_METRIC_EXPORT_INTERVAL and OTEL_METRIC_EXPORT_TIMEOUT values as invalid in go.opentelemetry.io/otel/sdk/metric. (#8800)
Prevent a panic in NewFixedSizeReservoir and FixedSizeReservoirProvider when given a negative size in go.opentelemetry.io/otel/sdk/metric/exemplar; negative sizes are now clamped to zero, consistent with a size of zero. (#8832)
Preserve exponential histogram ZeroThreshold during OTLP metric export in go.opentelemetry.io/otel/exporters/otlp/otlpmetric. (#8801)
Ensure metric helpers in go.opentelemetry.io/otel/semconv/v1.32.0, go.opentelemetry.io/otel/semconv/v1.33.0, and go.opentelemetry.io/otel/semconv/v1.34.0 record measurements only once when no attributes are provided. (#8849)
Treat empty OTEL_TRACES_SAMPLER and OTEL_TRACES_SAMPLER_ARG values as unset in go.opentelemetry.io/otel/sdk/trace. (#8873)
Normalize global OTEL_EXPORTER_OTLP_ENDPOINT path joining in go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp so trailing-slash base URLs do not produce double-slash log export paths. (#8864)
Prevent a deadlock when formatting an error passed to RecordError calls back into the span in go.opentelemetry.io/otel/sdk/trace. (#8815)
Prevent SimpleSpanProcessor.Shutdown from panicking when constructed with a nil exporter in go.opentelemetry.io/otel/sdk/trace. (#8844)
Propagate invalid exponential histogram scale errors to Prometheus exporter self-observability metrics in go.opentelemetry.io/otel/exporters/prometheus. (#8839)
Retain instrument advisory attributes configured with go.opentelemetry.io/otel/metric/x.WithDefaultAttributes when a matching View in go.opentelemetry.io/otel/sdk/metric does not specify an attribute filter. (#8859)
Ignore HTTP URL paths when building OTLP/gRPC metric exporter targets from OTEL_EXPORTER_OTLP_ENDPOINT and OTEL_EXPORTER_OTLP_METRICS_ENDPOINT, while preserving unix:// and unix-abstract:// targets; treat unix-abstract:// endpoints as insecure in go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc and go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp. (#8862)
Ignore HTTP(S) paths when deriving gRPC trace exporter endpoints from OTEL_EXPORTER_OTLP_ENDPOINT and OTEL_EXPORTER_OTLP_TRACES_ENDPOINT in go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc. (#8852)
Bound memory used while parsing dense W3C property metadata by storing it compactly and materializing Property values on demand in go.opentelemetry.io/otel/baggage and go.opentelemetry.io/otel/propagation.
Removed
Remove the experimental OTEL_GO_X_METRIC_EXPORT_BATCH_SIZE environment variable in go.opentelemetry.io/otel/sdk/metric.
Use the WithMaxExportBatchSize option instead. (#8960)
What's Changed
Prevent panic in FixedSizeReservoir for negative sizes by @chiliec in #8832
This PR contains the following updates:
| Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
| [go.opentelemetry.io/otel](https://github.com/open-telemetry/opentelemetry-go) | `v1.46.0` → `v1.47.0` |  |  |
| [go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp](https://github.com/open-telemetry/opentelemetry-go) | `v1.46.0` → `v1.47.0` |  |  |
| [go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp](https://github.com/open-telemetry/opentelemetry-go) | `v1.46.0` → `v1.47.0` |  |  |
| [go.opentelemetry.io/otel/exporters/stdout/stdoutlog](https://github.com/open-telemetry/opentelemetry-go) | `v0.22.0` → `v0.23.0` |  |  |
| [go.opentelemetry.io/otel/metric](https://github.com/open-telemetry/opentelemetry-go) | `v1.46.0` → `v1.47.0` |  |  |
| [go.opentelemetry.io/otel/sdk](https://github.com/open-telemetry/opentelemetry-go) | `v1.46.0` → `v1.47.0` |  |  |
| [go.opentelemetry.io/otel/sdk/metric](https://github.com/open-telemetry/opentelemetry-go) | `v1.46.0` → `v1.47.0` |  |  |
| [go.opentelemetry.io/otel/trace](https://github.com/open-telemetry/opentelemetry-go) | `v1.46.0` → `v1.47.0` |  |  |
---
### Release Notes
<details>
<summary>open-telemetry/opentelemetry-go (go.opentelemetry.io/otel)</summary>
### [`v1.47.0`](https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.47.0): /v0.69.0/v0.23.0/v0.1.0
[Compare Source](https://github.com/open-telemetry/opentelemetry-go/compare/v1.46.0...v1.47.0)
This release contains the first stable release of the OpenTelemetry Go Logs API and SDK.
Our project stability guarantees now apply to the following modules:
- `go.opentelemetry.io/otel/log`
- `go.opentelemetry.io/otel/sdk/log`
See our [versioning policy](https://github.com/open-telemetry/opentelemetry-go/blob/main/VERSIONING.md) for more information about these stability guarantees.
##### Added
- Add `String` method for `KeyValue` type in `go.opentelemetry.io/otel/attribute`. ([#​8205](https://github.com/open-telemetry/opentelemetry-go/issues/8205))
- Add `String` method for `Set` type in `go.opentelemetry.io/otel/attribute`. ([#​8347](https://github.com/open-telemetry/opentelemetry-go/issues/8347))
- Add `WithMaxExportBatchSize` to `go.opentelemetry.io/otel/sdk/metric` to configure the maximum export batch size for `PeriodicReader`. ([#​8960](https://github.com/open-telemetry/opentelemetry-go/issues/8960))
- Add `WithAttributeValueDepthLimit`, `DefaultAttributeValueDepthLimit`, and `SpanLimits.AttributeValueDepthLimit` in `go.opentelemetry.io/otel/sdk/trace` to configure the maximum depth of span, event, link, and instrumentation scope attribute values. ([#​8938](https://github.com/open-telemetry/opentelemetry-go/issues/8938))
- Add `WithAttributeValueDepthLimit` in `go.opentelemetry.io/otel/sdk/log` to configure the maximum depth of log record and instrumentation scope attribute values. ([#​8938](https://github.com/open-telemetry/opentelemetry-go/issues/8938))
- Add `WithMaxResponseSize` to `go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp`,
`go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp`, and
`go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp`. ([#​8941](https://github.com/open-telemetry/opentelemetry-go/issues/8941))
- Add experimental `ProbabilitySampler` in `go.opentelemetry.io/otel/sdk/trace/x` that conforms to the [OpenTelemetry specification's threshold-based sampling algorithm](https://opentelemetry.io/docs/specs/otel/trace/sdk/#probabilitysampler). ([#​8123](https://github.com/open-telemetry/opentelemetry-go/issues/8123))
- Add experimental `*Binder` extension interfaces in `go.opentelemetry.io/otel/metric/x` for instruments that support binding attributes ahead of time. ([#​8760](https://github.com/open-telemetry/opentelemetry-go/issues/8760))
- Add the experimental `Finisher` synchronous metric instrument extension interface to `go.opentelemetry.io/otel/metric/x`. ([#​8906](https://github.com/open-telemetry/opentelemetry-go/issues/8906))
##### Changed
- Use the [OpenTelemetry Attribute Collection representation for non-OTLP protocols](https://opentelemetry.io/docs/specs/otel/common/#attribute-collection-representation-for-non-otlp) for metric data diffs in `go.opentelemetry.io/otel/sdk/metric/metricdata/metricdatatest`. ([#​8993](https://github.com/open-telemetry/opentelemetry-go/issues/8993))
- Apply a maximum depth of 64 by default to span, event, link, log record, and instrumentation scope attribute values in `go.opentelemetry.io/otel/sdk/trace` and `go.opentelemetry.io/otel/sdk/log`. ([#​8938](https://github.com/open-telemetry/opentelemetry-go/issues/8938))
- Reduce allocations when applying attribute value length limits in `go.opentelemetry.io/otel/sdk/trace` and `go.opentelemetry.io/otel/sdk/log` by rebuilding composite values only when truncation is needed. ([#​8912](https://github.com/open-telemetry/opentelemetry-go/issues/8912))
- Decode `traceparent` using a hex lookup table in `go.opentelemetry.io/otel/propagation`, which rejects the specification-disallowed upper-case characters without a separate scan of the header. ([#​8739](https://github.com/open-telemetry/opentelemetry-go/issues/8739))
- Decode all characters at constant indices in `TraceIDFromHex` and `SpanIDFromHex` in `go.opentelemetry.io/otel/trace` to eliminate bounds checks. ([#​8740](https://github.com/open-telemetry/opentelemetry-go/issues/8740))
##### Fixed
- Count valid U+FFFD replacement characters toward attribute value length limits in `go.opentelemetry.io/otel/trace`, `go.opentelemetry.io/otel/sdk/trace`, and `go.opentelemetry.io/otel/sdk/log`.
- Truncate string attribute values to empty strings when the configured length limit is zero, including malformed UTF-8, in `go.opentelemetry.io/otel/trace`, `go.opentelemetry.io/otel/sdk/trace`, and `go.opentelemetry.io/otel/sdk/log`. ([#​9054](https://github.com/open-telemetry/opentelemetry-go/issues/9054))
- Fix a data race in `NewPeriodicReader` where `r.inst` was assigned after the background goroutine was launched in `go.opentelemetry.io/otel/sdk/metric`. ([#​9028](https://github.com/open-telemetry/opentelemetry-go/issues/9028))
- Prevent precision loss for large `int64` values in `Sum`, `Histogram`, and `ExponentialHistogram` aggregations in `go.opentelemetry.io/otel/sdk/metric`. ([#​8981](https://github.com/open-telemetry/opentelemetry-go/issues/8981))
- Ensure `grpc.DialOption` values passed via `WithDialOption` take precedence over conflicting internally-computed defaults in
`go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc`,
`go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc`, and
`go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc`. ([#​8805](https://github.com/open-telemetry/opentelemetry-go/issues/8805), [#​8834](https://github.com/open-telemetry/opentelemetry-go/issues/8834), [#​8836](https://github.com/open-telemetry/opentelemetry-go/issues/8836))
- Treat overflowing `OTEL_METRIC_EXPORT_INTERVAL` and `OTEL_METRIC_EXPORT_TIMEOUT` values as invalid in `go.opentelemetry.io/otel/sdk/metric`. ([#​8800](https://github.com/open-telemetry/opentelemetry-go/issues/8800))
- Prevent a panic in `NewFixedSizeReservoir` and `FixedSizeReservoirProvider` when given a negative size in `go.opentelemetry.io/otel/sdk/metric/exemplar`; negative sizes are now clamped to zero, consistent with a size of zero. ([#​8832](https://github.com/open-telemetry/opentelemetry-go/issues/8832))
- Preserve exponential histogram `ZeroThreshold` during OTLP metric export in `go.opentelemetry.io/otel/exporters/otlp/otlpmetric`. ([#​8801](https://github.com/open-telemetry/opentelemetry-go/issues/8801))
- Ensure metric helpers in `go.opentelemetry.io/otel/semconv/v1.32.0`, `go.opentelemetry.io/otel/semconv/v1.33.0`, and `go.opentelemetry.io/otel/semconv/v1.34.0` record measurements only once when no attributes are provided. ([#​8849](https://github.com/open-telemetry/opentelemetry-go/issues/8849))
- Treat empty `OTEL_TRACES_SAMPLER` and `OTEL_TRACES_SAMPLER_ARG` values as unset in `go.opentelemetry.io/otel/sdk/trace`. ([#​8873](https://github.com/open-telemetry/opentelemetry-go/issues/8873))
- Normalize global `OTEL_EXPORTER_OTLP_ENDPOINT` path joining in `go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp` so trailing-slash base URLs do not produce double-slash log export paths. ([#​8864](https://github.com/open-telemetry/opentelemetry-go/issues/8864))
- Prevent a deadlock when formatting an error passed to `RecordError` calls back into the span in `go.opentelemetry.io/otel/sdk/trace`. ([#​8815](https://github.com/open-telemetry/opentelemetry-go/issues/8815))
- Prevent `SimpleSpanProcessor.Shutdown` from panicking when constructed with a nil exporter in `go.opentelemetry.io/otel/sdk/trace`. ([#​8844](https://github.com/open-telemetry/opentelemetry-go/issues/8844))
- Propagate invalid exponential histogram scale errors to Prometheus exporter self-observability metrics in `go.opentelemetry.io/otel/exporters/prometheus`. ([#​8839](https://github.com/open-telemetry/opentelemetry-go/issues/8839))
- Retain instrument advisory attributes configured with `go.opentelemetry.io/otel/metric/x.WithDefaultAttributes` when a matching View in `go.opentelemetry.io/otel/sdk/metric` does not specify an attribute filter. ([#​8859](https://github.com/open-telemetry/opentelemetry-go/issues/8859))
- Ignore HTTP URL paths when building OTLP/gRPC metric exporter targets from `OTEL_EXPORTER_OTLP_ENDPOINT` and `OTEL_EXPORTER_OTLP_METRICS_ENDPOINT`, while preserving `unix://` and `unix-abstract://` targets; treat `unix-abstract://` endpoints as insecure in `go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc` and `go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp`. ([#​8862](https://github.com/open-telemetry/opentelemetry-go/issues/8862))
- Ignore HTTP(S) paths when deriving gRPC trace exporter endpoints from `OTEL_EXPORTER_OTLP_ENDPOINT` and `OTEL_EXPORTER_OTLP_TRACES_ENDPOINT` in `go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc`. ([#​8852](https://github.com/open-telemetry/opentelemetry-go/issues/8852))
- Bound memory used while parsing dense W3C property metadata by storing it compactly and materializing `Property` values on demand in `go.opentelemetry.io/otel/baggage` and `go.opentelemetry.io/otel/propagation`.
##### Removed
- Remove the experimental `OTEL_GO_X_METRIC_EXPORT_BATCH_SIZE` environment variable in `go.opentelemetry.io/otel/sdk/metric`.
Use the `WithMaxExportBatchSize` option instead. ([#​8960](https://github.com/open-telemetry/opentelemetry-go/issues/8960))
##### What's Changed
- Prevent panic in FixedSizeReservoir for negative sizes by [@​chiliec](https://github.com/chiliec) in [#​8832](https://github.com/open-telemetry/opentelemetry-go/pull/8832)
- fix(metric): reject overflowing export durations by [@​maithilijoshi20](https://github.com/maithilijoshi20) in [#​8800](https://github.com/open-telemetry/opentelemetry-go/pull/8800)
- chore(deps): update module github.com/gofrs/flock to v0.13.1 by [@​renovate](https://github.com/renovate)\[bot] in [#​8885](https://github.com/open-telemetry/opentelemetry-go/pull/8885)
- chore(deps): update module github.com/4meepo/tagalign to v1.4.4 by [@​renovate](https://github.com/renovate)\[bot] in [#​8900](https://github.com/open-telemetry/opentelemetry-go/pull/8900)
- fix(deps): update googleapis to [`18b4a75`](https://github.com/open-telemetry/opentelemetry-go/commit/18b4a75) by [@​renovate](https://github.com/renovate)\[bot] in [#​8907](https://github.com/open-telemetry/opentelemetry-go/pull/8907)
- fix(deps): update module github.com/prometheus/client\_model to v0.6.3 by [@​renovate](https://github.com/renovate)\[bot] in [#​8908](https://github.com/open-telemetry/opentelemetry-go/pull/8908)
- chore(deps): update module github.com/prometheus/procfs to v0.22.0 by [@​renovate](https://github.com/renovate)\[bot] in [#​8894](https://github.com/open-telemetry/opentelemetry-go/pull/8894)
- chore(deps): update module github.com/godoc-lint/godoc-lint to v0.11.4 by [@​renovate](https://github.com/renovate)\[bot] in [#​8897](https://github.com/open-telemetry/opentelemetry-go/pull/8897)
- chore(deps): update github.com/charmbracelet/ultraviolet digest to [`d60c349`](https://github.com/open-telemetry/opentelemetry-go/commit/d60c349) by [@​renovate](https://github.com/renovate)\[bot] in [#​8909](https://github.com/open-telemetry/opentelemetry-go/pull/8909)
- fix(deps): update module github.com/prometheus/common to v0.71.0 by [@​renovate](https://github.com/renovate)\[bot] in [#​8911](https://github.com/open-telemetry/opentelemetry-go/pull/8911)
- chore(deps): update golang.org/x/telemetry digest to [`86cb573`](https://github.com/open-telemetry/opentelemetry-go/commit/86cb573) by [@​renovate](https://github.com/renovate)\[bot] in [#​8895](https://github.com/open-telemetry/opentelemetry-go/pull/8895)
- fix(deps): update github.com/opentracing-contrib/go-grpc/test digest to [`7bb06b0`](https://github.com/open-telemetry/opentelemetry-go/commit/7bb06b0) by [@​renovate](https://github.com/renovate)\[bot] in [#​8902](https://github.com/open-telemetry/opentelemetry-go/pull/8902)
- chore(deps): update module github.com/timonwong/loggercheck to v0.12.0 by [@​renovate](https://github.com/renovate)\[bot] in [#​8898](https://github.com/open-telemetry/opentelemetry-go/pull/8898)
- \[otlptracegrpc] Grpc dialoption override bug by [@​ps-mir](https://github.com/ps-mir) in [#​8805](https://github.com/open-telemetry/opentelemetry-go/pull/8805)
- otlpmetricgrpc: fix preference for user supplied dialOptions by [@​ps-mir](https://github.com/ps-mir) in [#​8834](https://github.com/open-telemetry/opentelemetry-go/pull/8834)
- Do not panic on nil exporter in SimpleSpanProcessor.Shutdown by [@​ShreeyashPatil2708](https://github.com/ShreeyashPatil2708) in [#​8844](https://github.com/open-telemetry/opentelemetry-go/pull/8844)
- \[chore] Add doc comments to exported internal symbols (1/N) by [@​om7057](https://github.com/om7057) in [#​8752](https://github.com/open-telemetry/opentelemetry-go/pull/8752)
- \[chore] Add doc comments to exported internal symbols (3/N) by [@​om7057](https://github.com/om7057) in [#​8869](https://github.com/open-telemetry/opentelemetry-go/pull/8869)
- \[chore] docs: mark Logs as release candidate by [@​pellared](https://github.com/pellared) in [#​8910](https://github.com/open-telemetry/opentelemetry-go/pull/8910)
- chore(deps): update module github.com/mattn/go-runewidth to v0.0.29 by [@​renovate](https://github.com/renovate)\[bot] in [#​8917](https://github.com/open-telemetry/opentelemetry-go/pull/8917)
- chore(deps): update github.com/charmbracelet/ultraviolet digest to [`af8eda3`](https://github.com/open-telemetry/opentelemetry-go/commit/af8eda3) by [@​renovate](https://github.com/renovate)\[bot] in [#​8915](https://github.com/open-telemetry/opentelemetry-go/pull/8915)
- chore(deps): update github.com/golangci/rowserrcheck digest to [`241134d`](https://github.com/open-telemetry/opentelemetry-go/commit/241134d) by [@​renovate](https://github.com/renovate)\[bot] in [#​8913](https://github.com/open-telemetry/opentelemetry-go/pull/8913)
- fix(deps): update module go.opentelemetry.io/collector/pdata to v1.66.0 by [@​renovate](https://github.com/renovate)\[bot] in [#​8918](https://github.com/open-telemetry/opentelemetry-go/pull/8918)
- chore(deps): update otel/weaver docker tag to v0.26.1 by [@​renovate](https://github.com/renovate)\[bot] in [#​8922](https://github.com/open-telemetry/opentelemetry-go/pull/8922)
- chore(deps): update open-telemetry/shared-workflows action to v0.13.0 by [@​renovate](https://github.com/renovate)\[bot] in [#​8921](https://github.com/open-telemetry/opentelemetry-go/pull/8921)
- chore(deps): update github.com/charmbracelet/ultraviolet digest to [`043ea8a`](https://github.com/open-telemetry/opentelemetry-go/commit/043ea8a) by [@​renovate](https://github.com/renovate)\[bot] in [#​8919](https://github.com/open-telemetry/opentelemetry-go/pull/8919)
- fix(otlploggrpc): honor custom dial option precedence by [@​jstar0](https://github.com/jstar0) in [#​8836](https://github.com/open-telemetry/opentelemetry-go/pull/8836)
- Define bound instrument API in metric/x by [@​dashpole](https://github.com/dashpole) in [#​8760](https://github.com/open-telemetry/opentelemetry-go/pull/8760)
- fix(prometheus): report invalid histogram scale errors by [@​jstar0](https://github.com/jstar0) in [#​8839](https://github.com/open-telemetry/opentelemetry-go/pull/8839)
- Add experimental metric Finisher interface by [@​MrAlias](https://github.com/MrAlias) in [#​8906](https://github.com/open-telemetry/opentelemetry-go/pull/8906)
- chore(deps): update github.com/charmbracelet/ultraviolet digest to [`ae99b73`](https://github.com/open-telemetry/opentelemetry-go/commit/ae99b73) by [@​renovate](https://github.com/renovate)\[bot] in [#​8923](https://github.com/open-telemetry/opentelemetry-go/pull/8923)
- chore(deps): update golang.org/x by [@​renovate](https://github.com/renovate)\[bot] in [#​8920](https://github.com/open-telemetry/opentelemetry-go/pull/8920)
- sdk/trace/x: Add experimental `ProbabilitySampler` by [@​yuanyuanzhao3](https://github.com/yuanyuanzhao3) in [#​8123](https://github.com/open-telemetry/opentelemetry-go/pull/8123)
- sdk/trace/x: Adding GoDev badge. by [@​yuanyuanzhao3](https://github.com/yuanyuanzhao3) in [#​8927](https://github.com/open-telemetry/opentelemetry-go/pull/8927)
- perf(propagation): use a hex lookup table to decode traceparent by [@​itssaharsh](https://github.com/itssaharsh) in [#​8739](https://github.com/open-telemetry/opentelemetry-go/pull/8739)
- chore(deps): update github.com/charmbracelet/ultraviolet digest to [`0277a17`](https://github.com/open-telemetry/opentelemetry-go/commit/0277a17) by [@​renovate](https://github.com/renovate)\[bot] in [#​8931](https://github.com/open-telemetry/opentelemetry-go/pull/8931)
- fix(deps): update googleapis to [`f8649dd`](https://github.com/open-telemetry/opentelemetry-go/commit/f8649dd) by [@​renovate](https://github.com/renovate)\[bot] in [#​8929](https://github.com/open-telemetry/opentelemetry-go/pull/8929)
- chore(deps): update module github.com/dlclark/regexp2/v2 to v2.8.0 by [@​renovate](https://github.com/renovate)\[bot] in [#​8930](https://github.com/open-telemetry/opentelemetry-go/pull/8930)
- \[chore] Add doc comments to exported internal symbols (5/N) by [@​om7057](https://github.com/om7057) in [#​8934](https://github.com/open-telemetry/opentelemetry-go/pull/8934)
- \[chore] Add doc comments to exported internal symbols (4/N) by [@​om7057](https://github.com/om7057) in [#​8926](https://github.com/open-telemetry/opentelemetry-go/pull/8926)
- sdk: optimize composite attribute truncation by [@​pellared](https://github.com/pellared) in [#​8912](https://github.com/open-telemetry/opentelemetry-go/pull/8912)
- chore(deps): update module github.com/go-critic/go-critic to v0.15.0 by [@​renovate](https://github.com/renovate)\[bot] in [#​8924](https://github.com/open-telemetry/opentelemetry-go/pull/8924)
- chore(deps): update module go.augendre.info/fatcontext to v0.10.1 by [@​renovate](https://github.com/renovate)\[bot] in [#​8939](https://github.com/open-telemetry/opentelemetry-go/pull/8939)
- chore(deps): update module mvdan.cc/gofumpt to v0.12.0 by [@​renovate](https://github.com/renovate)\[bot] in [#​8935](https://github.com/open-telemetry/opentelemetry-go/pull/8935)
- chore(deps): update module dev.gaijin.team/go/exhaustruct/v5 to v5.2.0 by [@​renovate](https://github.com/renovate)\[bot] in [#​8928](https://github.com/open-telemetry/opentelemetry-go/pull/8928)
- fix(deps): update golang.org/x by [@​renovate](https://github.com/renovate)\[bot] in [#​8936](https://github.com/open-telemetry/opentelemetry-go/pull/8936)
- chore(deps): update module github.com/ghostiam/protogetter to v1.0.1 by [@​renovate](https://github.com/renovate)\[bot] in [#​8940](https://github.com/open-telemetry/opentelemetry-go/pull/8940)
- fix(trace): avoid reentrant RecordError deadlock by [@​jstar0](https://github.com/jstar0) in [#​8815](https://github.com/open-telemetry/opentelemetry-go/pull/8815)
- \[chore] Add doc comments to exported internal symbols (6/6), remove exclusion by [@​om7057](https://github.com/om7057) in [#​8937](https://github.com/open-telemetry/opentelemetry-go/pull/8937)
- otlploghttp: normalize global endpoint path joining by [@​RedZapdos123](https://github.com/RedZapdos123) in [#​8864](https://github.com/open-telemetry/opentelemetry-go/pull/8864)
- sdk/trace: treat empty sampler env values as unset by [@​RedZapdos123](https://github.com/RedZapdos123) in [#​8873](https://github.com/open-telemetry/opentelemetry-go/pull/8873)
- Run full benchmarks weekly by [@​XSAM](https://github.com/XSAM) in [#​8932](https://github.com/open-telemetry/opentelemetry-go/pull/8932)
- fix(semconv): avoid duplicate metric recording without attributes by [@​jstar0](https://github.com/jstar0) in [#​8849](https://github.com/open-telemetry/opentelemetry-go/pull/8849)
- chore(deps): update module github.com/mattn/go-runewidth to v0.0.30 by [@​renovate](https://github.com/renovate)\[bot] in [#​8946](https://github.com/open-telemetry/opentelemetry-go/pull/8946)
- chore(deps): update ubuntu:26.04 docker digest to [`e5a4d62`](https://github.com/open-telemetry/opentelemetry-go/commit/e5a4d62) by [@​renovate](https://github.com/renovate)\[bot] in [#​8945](https://github.com/open-telemetry/opentelemetry-go/pull/8945)
- chore(deps): update github/codeql-action action to v4.38.0 by [@​renovate](https://github.com/renovate)\[bot] in [#​8944](https://github.com/open-telemetry/opentelemetry-go/pull/8944)
- chore(deps): update golang.org/x/telemetry digest to [`55ac43c`](https://github.com/open-telemetry/opentelemetry-go/commit/55ac43c) by [@​renovate](https://github.com/renovate)\[bot] in [#​8943](https://github.com/open-telemetry/opentelemetry-go/pull/8943)
- otlptracegrpc: fix env endpoint URL parsing by [@​RedZapdos123](https://github.com/RedZapdos123) in [#​8852](https://github.com/open-telemetry/opentelemetry-go/pull/8852)
- otlpmetricgrpc: preserve gRPC env endpoint targets by [@​RedZapdos123](https://github.com/RedZapdos123) in [#​8862](https://github.com/open-telemetry/opentelemetry-go/pull/8862)
- chore(deps): update module github.com/sourcegraph/go-diff to v0.9.0 by [@​renovate](https://github.com/renovate)\[bot] in [#​8947](https://github.com/open-telemetry/opentelemetry-go/pull/8947)
- feat(otlphttp): configure maximum response size by [@​pellared](https://github.com/pellared) in [#​8941](https://github.com/open-telemetry/opentelemetry-go/pull/8941)
- fix(otlpmetric): preserve exponential histogram zero threshold by [@​maithilijoshi20](https://github.com/maithilijoshi20) in [#​8801](https://github.com/open-telemetry/opentelemetry-go/pull/8801)
- chore(deps): update golang.org/x/telemetry digest to [`15ceca2`](https://github.com/open-telemetry/opentelemetry-go/commit/15ceca2) by [@​renovate](https://github.com/renovate)\[bot] in [#​8948](https://github.com/open-telemetry/opentelemetry-go/pull/8948)
- chore(deps): update github.com/charmbracelet/ultraviolet digest to [`6c9e17d`](https://github.com/open-telemetry/opentelemetry-go/commit/6c9e17d) by [@​renovate](https://github.com/renovate)\[bot] in [#​8950](https://github.com/open-telemetry/opentelemetry-go/pull/8950)
- chore(deps): update module github.com/dave/dst to v0.28.0 by [@​renovate](https://github.com/renovate)\[bot] in [#​8949](https://github.com/open-telemetry/opentelemetry-go/pull/8949)
- fix(deps): update googleapis to [`f61a6ca`](https://github.com/open-telemetry/opentelemetry-go/commit/f61a6ca) by [@​renovate](https://github.com/renovate)\[bot] in [#​8951](https://github.com/open-telemetry/opentelemetry-go/pull/8951)
- chore(deps): update module github.com/nishanths/exhaustive to v0.13.0 by [@​renovate](https://github.com/renovate)\[bot] in [#​8953](https://github.com/open-telemetry/opentelemetry-go/pull/8953)
- chore(deps): update module github.com/xo/terminfo to v1.2.0 by [@​renovate](https://github.com/renovate)\[bot] in [#​8954](https://github.com/open-telemetry/opentelemetry-go/pull/8954)
- sdk/log: add queue\_full shutdown regression test by [@​RedZapdos123](https://github.com/RedZapdos123) in [#​8754](https://github.com/open-telemetry/opentelemetry-go/pull/8754)
- internal/tools/verifyreadmes: skip hidden dot-directories on Windows by [@​RedZapdos123](https://github.com/RedZapdos123) in [#​8729](https://github.com/open-telemetry/opentelemetry-go/pull/8729)
- sdk/metric: add internal finish-aware Sum lifecycle by [@​MrAlias](https://github.com/MrAlias) in [#​8925](https://github.com/open-telemetry/opentelemetry-go/pull/8925)
- sdk: limit nested attribute value depth by [@​pellared](https://github.com/pellared) in [#​8938](https://github.com/open-telemetry/opentelemetry-go/pull/8938)
- chore(deps): update codecov/codecov-action action to v7.1.0 by [@​renovate](https://github.com/renovate)\[bot] in [#​8966](https://github.com/open-telemetry/opentelemetry-go/pull/8966)
- fix(deps): update module go.opentelemetry.io/collector/pdata to v1.67.0 by [@​renovate](https://github.com/renovate)\[bot] in [#​8965](https://github.com/open-telemetry/opentelemetry-go/pull/8965)
- chore(deps): update open-telemetry/shared-workflows action to v0.14.0 by [@​renovate](https://github.com/renovate)\[bot] in [#​8961](https://github.com/open-telemetry/opentelemetry-go/pull/8961)
- Fix Alex Kats emeritus mention by [@​dmathieu](https://github.com/dmathieu) in [#​8933](https://github.com/open-telemetry/opentelemetry-go/pull/8933)
- sdk/metric: stabilize max batch size in PeriodicReader by [@​dashpole](https://github.com/dashpole) in [#​8960](https://github.com/open-telemetry/opentelemetry-go/pull/8960)
- chore(deps): update ubuntu:26.04 docker digest to [`61ebaa5`](https://github.com/open-telemetry/opentelemetry-go/commit/61ebaa5) by [@​renovate](https://github.com/renovate)\[bot] in [#​8968](https://github.com/open-telemetry/opentelemetry-go/pull/8968)
- sdk/metric: Retain advisory attributes when View has no AttributeFilter by [@​dashpole](https://github.com/dashpole) in [#​8859](https://github.com/open-telemetry/opentelemetry-go/pull/8859)
- chore(deps): update module github.com/ldez/tagliatelle to v0.8.0 by [@​renovate](https://github.com/renovate)\[bot] in [#​8970](https://github.com/open-telemetry/opentelemetry-go/pull/8970)
- sdk/metric: Document nil AttributeFilter behavior by [@​pellared](https://github.com/pellared) in [#​8971](https://github.com/open-telemetry/opentelemetry-go/pull/8971)
- chore: fix gofumpt extra-rules warning by [@​dmathieu](https://github.com/dmathieu) in [#​8942](https://github.com/open-telemetry/opentelemetry-go/pull/8942)
- chore(deps): update codecov/codecov-action action to v7.1.1 by [@​renovate](https://github.com/renovate)\[bot] in [#​8975](https://github.com/open-telemetry/opentelemetry-go/pull/8975)
- chore(deps): update module github.com/ldez/gomoddirectives to v0.10.0 by [@​renovate](https://github.com/renovate)\[bot] in [#​8974](https://github.com/open-telemetry/opentelemetry-go/pull/8974)
- sdk/trace/x: deduplicate tracestate combination error report in ProbabilitySampler by [@​alex131125](https://github.com/alex131125) in [#​8969](https://github.com/open-telemetry/opentelemetry-go/pull/8969)
- \[chore]: fix article and word typos in doc comments by [@​simpleqt](https://github.com/simpleqt) in [#​8972](https://github.com/open-telemetry/opentelemetry-go/pull/8972)
- \[chore]: fix two doc comments that name the wrong method by [@​simpleqt](https://github.com/simpleqt) in [#​8973](https://github.com/open-telemetry/opentelemetry-go/pull/8973)
- Update googleapis to [`eeb232e`](https://github.com/open-telemetry/opentelemetry-go/commit/eeb232e) by [@​renovate](https://github.com/renovate)\[bot] in [#​8983](https://github.com/open-telemetry/opentelemetry-go/pull/8983)
- sdk/metric: extract generic hotColdMap for delta aggregators by [@​dashpole](https://github.com/dashpole) in [#​8756](https://github.com/open-telemetry/opentelemetry-go/pull/8756)
- Update github/codeql-action action to v4.38.1 by [@​renovate](https://github.com/renovate)\[bot] in [#​8987](https://github.com/open-telemetry/opentelemetry-go/pull/8987)
- Update googleapis to [`cecb647`](https://github.com/open-telemetry/opentelemetry-go/commit/cecb647) by [@​renovate](https://github.com/renovate)\[bot] in [#​8986](https://github.com/open-telemetry/opentelemetry-go/pull/8986)
- \[chore]: remove CLAUDE.md in favor of AGENTS.md by [@​jarrensj](https://github.com/jarrensj) in [#​8988](https://github.com/open-telemetry/opentelemetry-go/pull/8988)
- test(internal/tools/verifyreadmes): add unit tests for verifyReadme by [@​marcschaeferger](https://github.com/marcschaeferger) in [#​8066](https://github.com/open-telemetry/opentelemetry-go/pull/8066)
- perf(trace): unroll hex decoders to drop bounds checks by [@​itssaharsh](https://github.com/itssaharsh) in [#​8740](https://github.com/open-telemetry/opentelemetry-go/pull/8740)
- sdk/metric: add canonical attribute identity by [@​MrAlias](https://github.com/MrAlias) in [#​8963](https://github.com/open-telemetry/opentelemetry-go/pull/8963)
- attribute: add Set.String by [@​iyiola-dev](https://github.com/iyiola-dev) in [#​8347](https://github.com/open-telemetry/opentelemetry-go/pull/8347)
- attribute: add String method for KeyValue by [@​pellared](https://github.com/pellared) in [#​8205](https://github.com/open-telemetry/opentelemetry-go/pull/8205)
- Update open-telemetry/shared-workflows action to v0.15.0 by [@​renovate](https://github.com/renovate)\[bot] in [#​8992](https://github.com/open-telemetry/opentelemetry-go/pull/8992)
- Update googleapis to [`b142276`](https://github.com/open-telemetry/opentelemetry-go/commit/b142276) by [@​renovate](https://github.com/renovate)\[bot] in [#​8991](https://github.com/open-telemetry/opentelemetry-go/pull/8991)
- Update golang.org/x/telemetry digest to [`bdcd072`](https://github.com/open-telemetry/opentelemetry-go/commit/bdcd072) by [@​renovate](https://github.com/renovate)\[bot] in [#​8990](https://github.com/open-telemetry/opentelemetry-go/pull/8990)
- Update module google.golang.org/grpc to v1.84.0 by [@​renovate](https://github.com/renovate)\[bot] in [#​8982](https://github.com/open-telemetry/opentelemetry-go/pull/8982)
- Update open-telemetry/shared-workflows action to v0.16.0 by [@​renovate](https://github.com/renovate)\[bot] in [#​8995](https://github.com/open-telemetry/opentelemetry-go/pull/8995)
- Update github.com/opentracing-contrib/go-grpc/test digest to [`c4b3818`](https://github.com/open-telemetry/opentelemetry-go/commit/c4b3818) by [@​renovate](https://github.com/renovate)\[bot] in [#​8994](https://github.com/open-telemetry/opentelemetry-go/pull/8994)
- Revert "Update module google.golang.org/grpc to v1.84.0 ([#​8982](https://github.com/open-telemetry/opentelemetry-go/issues/8982))" by [@​dashpole](https://github.com/dashpole) in [#​8997](https://github.com/open-telemetry/opentelemetry-go/pull/8997)
- metricdatatest: use attribute collection formatting by [@​pellared](https://github.com/pellared) in [#​8993](https://github.com/open-telemetry/opentelemetry-go/pull/8993)
- Update github.com/charmbracelet/ultraviolet digest to [`4e49372`](https://github.com/open-telemetry/opentelemetry-go/commit/4e49372) by [@​renovate](https://github.com/renovate)\[bot] in [#​8998](https://github.com/open-telemetry/opentelemetry-go/pull/8998)
- fix(sdk/metric): preserve int64 precision in sum and histogram aggregations by [@​dashpole](https://github.com/dashpole) in [#​8981](https://github.com/open-telemetry/opentelemetry-go/pull/8981)
- Update golang.org/x/telemetry digest to [`c6096d2`](https://github.com/open-telemetry/opentelemetry-go/commit/c6096d2) by [@​renovate](https://github.com/renovate)\[bot] in [#​9000](https://github.com/open-telemetry/opentelemetry-go/pull/9000)
- Fix OSS-Fuzz issues in FuzzHashKVs, FuzzGetBin, and FuzzSpanIDFromHex by [@​dashpole](https://github.com/dashpole) in [#​8996](https://github.com/open-telemetry/opentelemetry-go/pull/8996)
- Update github.com/timakin/bodyclose digest to [`98ded9a`](https://github.com/open-telemetry/opentelemetry-go/commit/98ded9a) by [@​renovate](https://github.com/renovate)\[bot] in [#​9003](https://github.com/open-telemetry/opentelemetry-go/pull/9003)
- Update module github.com/ProtonMail/go-crypto to v1.5.0 by [@​renovate](https://github.com/renovate)\[bot] in [#​9004](https://github.com/open-telemetry/opentelemetry-go/pull/9004)
- Update module github.com/ProtonMail/go-crypto to v1.5.1 by [@​renovate](https://github.com/renovate)\[bot] in [#​9021](https://github.com/open-telemetry/opentelemetry-go/pull/9021)
- Update golang.org/x/telemetry digest to [`9662f6f`](https://github.com/open-telemetry/opentelemetry-go/commit/9662f6f) by [@​renovate](https://github.com/renovate)\[bot] in [#​9020](https://github.com/open-telemetry/opentelemetry-go/pull/9020)
- Update module github.com/mgechev/revive to v1.17.0 by [@​renovate](https://github.com/renovate)\[bot] in [#​9022](https://github.com/open-telemetry/opentelemetry-go/pull/9022)
- Add ps-mir as an approver by [@​MrAlias](https://github.com/MrAlias) in [#​9018](https://github.com/open-telemetry/opentelemetry-go/pull/9018)
- Add Marc Schäfer as a project Triager by [@​MrAlias](https://github.com/MrAlias) in [#​9019](https://github.com/open-telemetry/opentelemetry-go/pull/9019)
- Update golang.org/x/telemetry digest to [`ed294f9`](https://github.com/open-telemetry/opentelemetry-go/commit/ed294f9) by [@​renovate](https://github.com/renovate)\[bot] in [#​9027](https://github.com/open-telemetry/opentelemetry-go/pull/9027)
- Update github/codeql-action action to v4.38.2 by [@​renovate](https://github.com/renovate)\[bot] in [#​9025](https://github.com/open-telemetry/opentelemetry-go/pull/9025)
- Update module github.com/golangci/golangci-lint/v2 to v2.14.0 by [@​renovate](https://github.com/renovate)\[bot] in [#​9026](https://github.com/open-telemetry/opentelemetry-go/pull/9026)
- Update github.com/charmbracelet/ultraviolet digest to [`b78653f`](https://github.com/open-telemetry/opentelemetry-go/commit/b78653f) by [@​renovate](https://github.com/renovate)\[bot] in [#​9036](https://github.com/open-telemetry/opentelemetry-go/pull/9036)
- Update github.com/charmbracelet/ultraviolet digest to [`bbf040a`](https://github.com/open-telemetry/opentelemetry-go/commit/bbf040a) by [@​renovate](https://github.com/renovate)\[bot] in [#​9037](https://github.com/open-telemetry/opentelemetry-go/pull/9037)
- Update module github.com/golangci/golines to v0.16.0 by [@​renovate](https://github.com/renovate)\[bot] in [#​9043](https://github.com/open-telemetry/opentelemetry-go/pull/9043)
- Update module github.com/prometheus/common to v0.72.0 by [@​renovate](https://github.com/renovate)\[bot] in [#​9044](https://github.com/open-telemetry/opentelemetry-go/pull/9044)
- Update module go.opentelemetry.io/collector/pdata to v1.68.0 by [@​renovate](https://github.com/renovate)\[bot] in [#​9046](https://github.com/open-telemetry/opentelemetry-go/pull/9046)
- Update module github.com/uudashr/iface to v1.5.2 by [@​renovate](https://github.com/renovate)\[bot] in [#​9042](https://github.com/open-telemetry/opentelemetry-go/pull/9042)
- Update module github.com/ProtonMail/go-crypto to v1.5.2 by [@​renovate](https://github.com/renovate)\[bot] in [#​9040](https://github.com/open-telemetry/opentelemetry-go/pull/9040)
- Update open-telemetry/shared-workflows action to v0.17.0 by [@​renovate](https://github.com/renovate)\[bot] in [#​9047](https://github.com/open-telemetry/opentelemetry-go/pull/9047)
- Update github.com/golangci/canonicalheader digest to [`e18e5c5`](https://github.com/open-telemetry/opentelemetry-go/commit/e18e5c5) by [@​renovate](https://github.com/renovate)\[bot] in [#​9039](https://github.com/open-telemetry/opentelemetry-go/pull/9039)
- Update googleapis to [`8a89bd6`](https://github.com/open-telemetry/opentelemetry-go/commit/8a89bd6) by [@​renovate](https://github.com/renovate)\[bot] in [#​9041](https://github.com/open-telemetry/opentelemetry-go/pull/9041)
- Update github.com/charmbracelet/ultraviolet digest to [`666ce5e`](https://github.com/open-telemetry/opentelemetry-go/commit/666ce5e) by [@​renovate](https://github.com/renovate)\[bot] in [#​9051](https://github.com/open-telemetry/opentelemetry-go/pull/9051)
- Remove retired Go Report Card badge from README by [@​kijimad](https://github.com/kijimad) in [#​9050](https://github.com/open-telemetry/opentelemetry-go/pull/9050)
- fix(sdk/metric): Fix data race with initialization of NewPeriodicReader by [@​CTrando](https://github.com/CTrando) in [#​9028](https://github.com/open-telemetry/opentelemetry-go/pull/9028)
- Update module github.com/dlclark/regexp2/v2 to v2.8.1 by [@​renovate](https://github.com/renovate)\[bot] in [#​9061](https://github.com/open-telemetry/opentelemetry-go/pull/9061)
- Update github.com/charmbracelet/ultraviolet digest to [`270558f`](https://github.com/open-telemetry/opentelemetry-go/commit/270558f) by [@​renovate](https://github.com/renovate)\[bot] in [#​9060](https://github.com/open-telemetry/opentelemetry-go/pull/9060)
- chore: Replace deprecated gofumpt extra-rules with extra options by [@​kijimad](https://github.com/kijimad) in [#​9062](https://github.com/open-telemetry/opentelemetry-go/pull/9062)
- Update module github.com/pjbgf/sha1cd to v0.7.0 by [@​renovate](https://github.com/renovate)\[bot] in [#​9064](https://github.com/open-telemetry/opentelemetry-go/pull/9064)
- Update github.com/golangci/rowserrcheck digest to [`f772fe6`](https://github.com/open-telemetry/opentelemetry-go/commit/f772fe6) by [@​renovate](https://github.com/renovate)\[bot] in [#​9066](https://github.com/open-telemetry/opentelemetry-go/pull/9066)
- Update github.com/charmbracelet/ultraviolet digest to [`8786532`](https://github.com/open-telemetry/opentelemetry-go/commit/8786532) by [@​renovate](https://github.com/renovate)\[bot] in [#​9065](https://github.com/open-telemetry/opentelemetry-go/pull/9065)
- Fix zero attribute value length for malformed UTF-8 by [@​pellared](https://github.com/pellared) in [#​9054](https://github.com/open-telemetry/opentelemetry-go/pull/9054)
- Update module github.com/uudashr/iface to v1.5.3 by [@​renovate](https://github.com/renovate)\[bot] in [#​9067](https://github.com/open-telemetry/opentelemetry-go/pull/9067)
- Update ubuntu:26.04 Docker digest to [`88a381d`](https://github.com/open-telemetry/opentelemetry-go/commit/88a381d) by [@​renovate](https://github.com/renovate)\[bot] in [#​9069](https://github.com/open-telemetry/opentelemetry-go/pull/9069)
- Release 1.47.0/0.69.0/0.23.0/0.1.0 by [@​pellared](https://github.com/pellared) in [#​9024](https://github.com/open-telemetry/opentelemetry-go/pull/9024)
##### New Contributors
- [@​chiliec](https://github.com/chiliec) made their first contribution in [#​8832](https://github.com/open-telemetry/opentelemetry-go/pull/8832)
- [@​maithilijoshi20](https://github.com/maithilijoshi20) made their first contribution in [#​8800](https://github.com/open-telemetry/opentelemetry-go/pull/8800)
- [@​ps-mir](https://github.com/ps-mir) made their first contribution in [#​8805](https://github.com/open-telemetry/opentelemetry-go/pull/8805)
- [@​ShreeyashPatil2708](https://github.com/ShreeyashPatil2708) made their first contribution in [#​8844](https://github.com/open-telemetry/opentelemetry-go/pull/8844)
- [@​alex131125](https://github.com/alex131125) made their first contribution in [#​8969](https://github.com/open-telemetry/opentelemetry-go/pull/8969)
- [@​simpleqt](https://github.com/simpleqt) made their first contribution in [#​8972](https://github.com/open-telemetry/opentelemetry-go/pull/8972)
- [@​jarrensj](https://github.com/jarrensj) made their first contribution in [#​8988](https://github.com/open-telemetry/opentelemetry-go/pull/8988)
- [@​iyiola-dev](https://github.com/iyiola-dev) made their first contribution in [#​8347](https://github.com/open-telemetry/opentelemetry-go/pull/8347)
- [@​kijimad](https://github.com/kijimad) made their first contribution in [#​9050](https://github.com/open-telemetry/opentelemetry-go/pull/9050)
- [@​CTrando](https://github.com/CTrando) made their first contribution in [#​9028](https://github.com/open-telemetry/opentelemetry-go/pull/9028)
**Full Changelog**: <https://github.com/open-telemetry/opentelemetry-go/compare/v1.47.0-rc.1...v1.47.0>
</details>
---
### Configuration
📅 **Schedule**: (UTC)
- Branch creation
- At any time (no schedule defined)
- Automerge
- At any time (no schedule defined)
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Mend Renovate CLI](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4xMzMuMCIsInVwZGF0ZWRJblZlciI6IjQ0LjEzMy4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->
renovate
scheduled this pull request to auto merge when all checks succeed 2026-10-05 11:13:07 +00:00
In order to perform the update(s) described in the table above, Renovate ran the go get command, which resulted in the following additional change(s):
9 additional dependencies were updated
Due to Go's usage of Minimal Version Selection (MVS), these packages have been updated to the minimum version available, so will still abide by minimumReleaseAge=3 days
### ℹ️ Artifact update notice
##### File name: go.mod
In order to perform the update(s) described in the table above, Renovate ran the `go get` command, which resulted in the following additional change(s):
- 9 additional dependencies were updated
Due to Go's usage of [Minimal Version Selection (MVS)](https://go.dev/ref/mod#minimal-version-selection), these packages have been updated to the minimum version available, so will still abide by `minimumReleaseAge=3 days`
Details:
| **Package** | **Change** |
| :-------------------------------------------------- | :--------------------------------------------------------------------------- |
| `go.opentelemetry.io/otel/log` | `v0.22.0` -> `v1.47.0` |
| `go.opentelemetry.io/otel/sdk/log` | `v0.22.0` -> `v1.47.0` |
| `go.opentelemetry.io/otel/exporters/otlp/otlptrace` | `v1.46.0` -> `v1.47.0` |
| `golang.org/x/net` | `v0.58.0` -> `v0.59.0` |
| `golang.org/x/sync` | `v0.22.0` -> `v0.23.0` |
| `golang.org/x/sys` | `v0.47.0` -> `v0.48.0` |
| `golang.org/x/text` | `v0.41.0` -> `v0.42.0` |
| `google.golang.org/genproto/googleapis/api` | `v0.0.0-20260819154853-08b0e4226688` -> `v0.0.0-20260928230214-8a89bd6388cc` |
| `google.golang.org/genproto/googleapis/rpc` | `v0.0.0-20260831171406-18b4a7587f8a` -> `v0.0.0-20260928230214-8a89bd6388cc` |
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
This PR contains the following updates:
v1.46.0→v1.47.0v1.46.0→v1.47.0v1.46.0→v1.47.0v0.22.0→v0.23.0v1.46.0→v1.47.0v1.46.0→v1.47.0v1.46.0→v1.47.0v1.46.0→v1.47.0Release Notes
open-telemetry/opentelemetry-go (go.opentelemetry.io/otel)
v1.47.0: /v0.69.0/v0.23.0/v0.1.0Compare Source
This release contains the first stable release of the OpenTelemetry Go Logs API and SDK.
Our project stability guarantees now apply to the following modules:
go.opentelemetry.io/otel/loggo.opentelemetry.io/otel/sdk/logSee our versioning policy for more information about these stability guarantees.
Added
Stringmethod forKeyValuetype ingo.opentelemetry.io/otel/attribute. (#8205)Stringmethod forSettype ingo.opentelemetry.io/otel/attribute. (#8347)WithMaxExportBatchSizetogo.opentelemetry.io/otel/sdk/metricto configure the maximum export batch size forPeriodicReader. (#8960)WithAttributeValueDepthLimit,DefaultAttributeValueDepthLimit, andSpanLimits.AttributeValueDepthLimitingo.opentelemetry.io/otel/sdk/traceto configure the maximum depth of span, event, link, and instrumentation scope attribute values. (#8938)WithAttributeValueDepthLimitingo.opentelemetry.io/otel/sdk/logto configure the maximum depth of log record and instrumentation scope attribute values. (#8938)WithMaxResponseSizetogo.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp,go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp, andgo.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp. (#8941)ProbabilitySampleringo.opentelemetry.io/otel/sdk/trace/xthat conforms to the OpenTelemetry specification's threshold-based sampling algorithm. (#8123)*Binderextension interfaces ingo.opentelemetry.io/otel/metric/xfor instruments that support binding attributes ahead of time. (#8760)Finishersynchronous metric instrument extension interface togo.opentelemetry.io/otel/metric/x. (#8906)Changed
go.opentelemetry.io/otel/sdk/metric/metricdata/metricdatatest. (#8993)go.opentelemetry.io/otel/sdk/traceandgo.opentelemetry.io/otel/sdk/log. (#8938)go.opentelemetry.io/otel/sdk/traceandgo.opentelemetry.io/otel/sdk/logby rebuilding composite values only when truncation is needed. (#8912)traceparentusing a hex lookup table ingo.opentelemetry.io/otel/propagation, which rejects the specification-disallowed upper-case characters without a separate scan of the header. (#8739)TraceIDFromHexandSpanIDFromHexingo.opentelemetry.io/otel/traceto eliminate bounds checks. (#8740)Fixed
go.opentelemetry.io/otel/trace,go.opentelemetry.io/otel/sdk/trace, andgo.opentelemetry.io/otel/sdk/log.go.opentelemetry.io/otel/trace,go.opentelemetry.io/otel/sdk/trace, andgo.opentelemetry.io/otel/sdk/log. (#9054)NewPeriodicReaderwherer.instwas assigned after the background goroutine was launched ingo.opentelemetry.io/otel/sdk/metric. (#9028)int64values inSum,Histogram, andExponentialHistogramaggregations ingo.opentelemetry.io/otel/sdk/metric. (#8981)grpc.DialOptionvalues passed viaWithDialOptiontake precedence over conflicting internally-computed defaults ingo.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc,go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc, andgo.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc. (#8805, #8834, #8836)OTEL_METRIC_EXPORT_INTERVALandOTEL_METRIC_EXPORT_TIMEOUTvalues as invalid ingo.opentelemetry.io/otel/sdk/metric. (#8800)NewFixedSizeReservoirandFixedSizeReservoirProviderwhen given a negative size ingo.opentelemetry.io/otel/sdk/metric/exemplar; negative sizes are now clamped to zero, consistent with a size of zero. (#8832)ZeroThresholdduring OTLP metric export ingo.opentelemetry.io/otel/exporters/otlp/otlpmetric. (#8801)go.opentelemetry.io/otel/semconv/v1.32.0,go.opentelemetry.io/otel/semconv/v1.33.0, andgo.opentelemetry.io/otel/semconv/v1.34.0record measurements only once when no attributes are provided. (#8849)OTEL_TRACES_SAMPLERandOTEL_TRACES_SAMPLER_ARGvalues as unset ingo.opentelemetry.io/otel/sdk/trace. (#8873)OTEL_EXPORTER_OTLP_ENDPOINTpath joining ingo.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttpso trailing-slash base URLs do not produce double-slash log export paths. (#8864)RecordErrorcalls back into the span ingo.opentelemetry.io/otel/sdk/trace. (#8815)SimpleSpanProcessor.Shutdownfrom panicking when constructed with a nil exporter ingo.opentelemetry.io/otel/sdk/trace. (#8844)go.opentelemetry.io/otel/exporters/prometheus. (#8839)go.opentelemetry.io/otel/metric/x.WithDefaultAttributeswhen a matching View ingo.opentelemetry.io/otel/sdk/metricdoes not specify an attribute filter. (#8859)OTEL_EXPORTER_OTLP_ENDPOINTandOTEL_EXPORTER_OTLP_METRICS_ENDPOINT, while preservingunix://andunix-abstract://targets; treatunix-abstract://endpoints as insecure ingo.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpcandgo.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp. (#8862)OTEL_EXPORTER_OTLP_ENDPOINTandOTEL_EXPORTER_OTLP_TRACES_ENDPOINTingo.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc. (#8852)Propertyvalues on demand ingo.opentelemetry.io/otel/baggageandgo.opentelemetry.io/otel/propagation.Removed
OTEL_GO_X_METRIC_EXPORT_BATCH_SIZEenvironment variable ingo.opentelemetry.io/otel/sdk/metric.Use the
WithMaxExportBatchSizeoption instead. (#8960)What's Changed
18b4a75by @renovate[bot] in #8907d60c349by @renovate[bot] in #890986cb573by @renovate[bot] in #88957bb06b0by @renovate[bot] in #8902af8eda3by @renovate[bot] in #8915241134dby @renovate[bot] in #8913043ea8aby @renovate[bot] in #8919ae99b73by @renovate[bot] in #8923ProbabilitySamplerby @yuanyuanzhao3 in #81230277a17by @renovate[bot] in #8931f8649ddby @renovate[bot] in #8929e5a4d62by @renovate[bot] in #894555ac43cby @renovate[bot] in #894315ceca2by @renovate[bot] in #89486c9e17dby @renovate[bot] in #8950f61a6caby @renovate[bot] in #895161ebaa5by @renovate[bot] in #8968eeb232eby @renovate[bot] in #8983cecb647by @renovate[bot] in #8986b142276by @renovate[bot] in #8991bdcd072by @renovate[bot] in #8990c4b3818by @renovate[bot] in #89944e49372by @renovate[bot] in #8998c6096d2by @renovate[bot] in #900098ded9aby @renovate[bot] in #90039662f6fby @renovate[bot] in #9020ed294f9by @renovate[bot] in #9027b78653fby @renovate[bot] in #9036bbf040aby @renovate[bot] in #9037e18e5c5by @renovate[bot] in #90398a89bd6by @renovate[bot] in #9041666ce5eby @renovate[bot] in #9051270558fby @renovate[bot] in #9060f772fe6by @renovate[bot] in #90668786532by @renovate[bot] in #906588a381dby @renovate[bot] in #9069New Contributors
Full Changelog: https://github.com/open-telemetry/opentelemetry-go/compare/v1.47.0-rc.1...v1.47.0
Configuration
📅 Schedule: (UTC)
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.
This PR has been generated by Mend Renovate CLI.
ℹ️ Artifact update notice
File name: go.mod
In order to perform the update(s) described in the table above, Renovate ran the
go getcommand, which resulted in the following additional change(s):Due to Go's usage of Minimal Version Selection (MVS), these packages have been updated to the minimum version available, so will still abide by
minimumReleaseAge=3 daysDetails:
go.opentelemetry.io/otel/logv0.22.0->v1.47.0go.opentelemetry.io/otel/sdk/logv0.22.0->v1.47.0go.opentelemetry.io/otel/exporters/otlp/otlptracev1.46.0->v1.47.0golang.org/x/netv0.58.0->v0.59.0golang.org/x/syncv0.22.0->v0.23.0golang.org/x/sysv0.47.0->v0.48.0golang.org/x/textv0.41.0->v0.42.0google.golang.org/genproto/googleapis/apiv0.0.0-20260819154853-08b0e4226688->v0.0.0-20260928230214-8a89bd6388ccgoogle.golang.org/genproto/googleapis/rpcv0.0.0-20260831171406-18b4a7587f8a->v0.0.0-20260928230214-8a89bd6388ccCoverage Report
Total coverage: 23%
808832cb8eto1a71b54d70Coverage Report
Total coverage: 23%