Skip to content

Conversation

@renovate
Copy link
Contributor

@renovate renovate bot commented Dec 15, 2025

Note: This PR body was truncated due to platform limits.

This PR contains the following updates:

Package Change Age Confidence
go.opentelemetry.io/otel v1.38.0 -> v1.39.0 age confidence
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.38.0 -> v1.39.0 age confidence
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.38.0 -> v1.39.0 age confidence
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.38.0 -> v1.39.0 age confidence
go.opentelemetry.io/otel/exporters/prometheus v0.60.0 -> v0.61.0 age confidence
go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.38.0 -> v1.39.0 age confidence
go.opentelemetry.io/otel/metric v1.38.0 -> v1.39.0 age confidence
go.opentelemetry.io/otel/sdk v1.38.0 -> v1.39.0 age confidence
go.opentelemetry.io/otel/sdk/metric v1.38.0 -> v1.39.0 age confidence
go.opentelemetry.io/otel/trace v1.38.0 -> v1.39.0 age confidence

Release Notes

open-telemetry/opentelemetry-go (go.opentelemetry.io/otel)

v1.39.0

Compare Source

Overview

Added
  • Greatly reduce the cost of recording metrics in go.opentelemetry.io/otel/sdk/metric using hashing for map keys. (#​7175)
  • Add WithInstrumentationAttributeSet option to go.opentelemetry.io/otel/log, go.opentelemetry.io/otel/metric, and go.opentelemetry.io/otel/trace packages. This provides a concurrent-safe and performant alternative to WithInstrumentationAttributes by accepting a pre-constructed attribute.Set. (#​7287)
  • Add experimental observability for the Prometheus exporter in go.opentelemetry.io/otel/exporters/prometheus. Check the go.opentelemetry.io/otel/exporters/prometheus/internal/x package documentation for more information. (#​7345)
  • Add experimental observability metrics in go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc. (#​7353)
  • Add temporality selector functions DeltaTemporalitySelector, CumulativeTemporalitySelector, LowMemoryTemporalitySelector to go.opentelemetry.io/otel/sdk/metric. (#​7434)
  • Add experimental observability metrics for simple log processor in go.opentelemetry.io/otel/sdk/log. (#​7548)
  • Add experimental observability metrics in go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc. (#​7459)
  • Add experimental observability metrics in go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp. (#​7486)
  • Add experimental observability metrics for simple span processor in go.opentelemetry.io/otel/sdk/trace. (#​7374)
  • Add experimental observability metrics in go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp. (#​7512)
  • Add experimental observability metrics for manual reader in go.opentelemetry.io/otel/sdk/metric. (#​7524)
  • Add experimental observability metrics for periodic reader in go.opentelemetry.io/otel/sdk/metric. (#​7571)
  • Support OTEL_EXPORTER_OTLP_LOGS_INSECURE and OTEL_EXPORTER_OTLP_INSECURE environmental variables in go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp. (#​7608)
  • Add Enabled method to the Processor interface in go.opentelemetry.io/otel/sdk/log. All Processor implementations now include an Enabled method. (#​7639)
  • The go.opentelemetry.io/otel/semconv/v1.38.0 package. The package contains semantic conventions from the v1.38.0 version of the OpenTelemetry Semantic Conventions. See the migration documentation for information on how to upgrade from go.opentelemetry.io/otel/semconv/v1.37.0.(#​7648)
Changed
  • Distinct in go.opentelemetry.io/otel/attribute is no longer guaranteed to uniquely identify an attribute set. Collisions between Distinct values for different Sets are possible with extremely high cardinality (billions of series per instrument), but are highly unlikely. (#​7175)
  • WithInstrumentationAttributes in go.opentelemetry.io/otel/trace synchronously de-duplicates the passed attributes instead of delegating it to the returned TracerOption. (#​7266)
  • WithInstrumentationAttributes in go.opentelemetry.io/otel/meter synchronously de-duplicates the passed attributes instead of delegating it to the returned MeterOption. (#​7266)
  • WithInstrumentationAttributes in go.opentelemetry.io/otel/log synchronously de-duplicates the passed attributes instead of delegating it to the returned LoggerOption. (#​7266)
  • Rename the OTEL_GO_X_SELF_OBSERVABILITY environment variable to OTEL_GO_X_OBSERVABILITY in go.opentelemetry.io/otel/sdk/trace, go.opentelemetry.io/otel/sdk/log, and go.opentelemetry.io/otel/exporters/stdout/stdouttrace. (#​7302)
  • Improve performance of histogram Record in go.opentelemetry.io/otel/sdk/metric when min and max are disabled using NoMinMax. (#​7306)
  • Improve error handling for dropped data during translation by using prometheus.NewInvalidMetric in go.opentelemetry.io/otel/exporters/prometheus. ⚠️ Breaking Change: Previously, these cases were only logged and scrapes succeeded. Now, when translation would drop data (e.g., invalid label/value), the exporter emits a NewInvalidMetric, and Prometheus scrapes fail with HTTP 500 by default. To preserve the prior behavior (scrapes succeed while errors are logged), configure your Prometheus HTTP handler with: promhttp.HandlerOpts{ ErrorHandling: promhttp.ContinueOnError }. (#​7363)
  • Replace fnv hash with xxhash in go.opentelemetry.io/otel/attribute for better performance. (#​7371)
  • The default TranslationStrategy in go.opentelemetry.io/exporters/prometheus is changed from otlptranslator.NoUTF8EscapingWithSuffixes to otlptranslator.UnderscoreEscapingWithSuffixes. (#​7421)
  • Improve performance of concurrent measurements in go.opentelemetry.io/otel/sdk/metric. (#​7427)
  • Include W3C TraceFlags (bits 0–7) in the OTLP Span.Flags field in go.opentelemetry.io/exporters/otlp/otlptrace/otlptracehttp and go.opentelemetry.io/exporters/otlp/otlptrace/otlptracegrpc. (#​7438)
  • The ErrorType function in go.opentelemetry.io/otel/semconv/v1.37.0 now handles custom error types.
    If an error implements an ErrorType() string method, the return value of that method will be used as the error type. (#​7442)
Fixed
  • Fix WithInstrumentationAttributes options in go.opentelemetry.io/otel/trace, go.opentelemetry.io/otel/metric, and go.opentelemetry.io/otel/log to properly merge attributes when passed multiple times instead of replacing them. Attributes with duplicate keys will use the last value passed. (#​7300)
  • The equality of attribute.Set when using the Equal method is not affected by the user overriding the empty set pointed to by attribute.EmptySet in go.opentelemetry.io/otel/attribute. (#​7357)
  • Return partial OTLP export errors to the caller in go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc. (#​7372)
  • Return partial OTLP export errors to the caller in go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp. (#​7372)
  • Return partial OTLP export errors to the caller in go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc. (#​7372)
  • Return partial OTLP export errors to the caller in go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp. (#​7372)
  • Return partial OTLP export errors to the caller in go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc. (#​7372)
  • Return partial OTLP export errors to the caller in go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp. (#​7372)
  • Fix AddAttributes, SetAttributes, SetBody on Record in go.opentelemetry.io/otel/sdk/log to not mutate input. (#​7403)
  • Do not double record measurements of RecordSet methods in go.opentelemetry.io/otel/semconv/v1.37.0. (#​7655)
  • Do not double record measurements of RecordSet methods in go.opentelemetry.io/otel/semconv/v1.36.0. (#​7656)
Removed
  • Drop support for [Go 1.23]. (#​7274)
  • Remove the FilterProcessor interface in go.opentelemetry.io/otel/sdk/log. The Enabled method has been added to the Processor interface instead. All Processor implementations must now implement the Enabled method. Custom processors that do not filter records can implement Enabled to return true. (#​7639)

What's Changed


Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

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.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate renovate bot requested a review from XSAM as a code owner December 15, 2025 23:31
@renovate
Copy link
Contributor Author

renovate bot commented Dec 15, 2025

ℹ️ Artifact update notice

File name: example/otel-collector/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):

  • 7 additional dependencies were updated

Details:

Package Change
google.golang.org/grpc v1.75.0 -> v1.77.0
github.com/grpc-ecosystem/grpc-gateway/v2 v2.27.2 -> v2.27.3
go.opentelemetry.io/proto/otlp v1.7.1 -> v1.9.0
golang.org/x/sys v0.38.0 -> v0.39.0
google.golang.org/genproto/googleapis/api v0.0.0-20250825161204-c5933d9347a5 -> v0.0.0-20251202230838-ff82c1b0f217
google.golang.org/genproto/googleapis/rpc v0.0.0-20250825161204-c5933d9347a5 -> v0.0.0-20251202230838-ff82c1b0f217
google.golang.org/protobuf v1.36.8 -> v1.36.10
File name: example/stdout/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):

  • 6 additional dependencies were updated

Details:

Package Change
github.com/prometheus/client_golang v1.23.0 -> v1.23.2
github.com/prometheus/common v0.65.0 -> v0.67.4
github.com/prometheus/otlptranslator v0.0.2 -> v1.0.0
github.com/prometheus/procfs v0.17.0 -> v0.19.2
golang.org/x/sys v0.38.0 -> v0.39.0
google.golang.org/protobuf v1.36.8 -> v1.36.10
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):

  • 1 additional dependency was updated

Details:

Package Change
golang.org/x/sys v0.38.0 -> v0.39.0

@codecov
Copy link

codecov bot commented Dec 15, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 86.7%. Comparing base (4b55e4a) to head (8e22daf).
⚠️ Report is 1 commits behind head on main.

Additional details and impacted files
@@           Coverage Diff           @@
##            main    #583     +/-   ##
=======================================
+ Coverage   85.8%   86.7%   +0.8%     
=======================================
  Files         16      16             
  Lines        754     752      -2     
=======================================
+ Hits         647     652      +5     
+ Misses        76      74      -2     
+ Partials      31      26      -5     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@renovate renovate bot force-pushed the renovate/opentelemetry-go-monorepo branch 7 times, most recently from c2d243f to 3d4c77b Compare December 16, 2025 05:31
@renovate renovate bot force-pushed the renovate/opentelemetry-go-monorepo branch from 3d4c77b to b0d9453 Compare December 16, 2025 05:36
@XSAM XSAM merged commit 3afe670 into main Dec 16, 2025
18 checks passed
@XSAM XSAM deleted the renovate/opentelemetry-go-monorepo branch December 16, 2025 21:51
@XSAM XSAM mentioned this pull request Dec 16, 2025
XSAM added a commit that referenced this pull request Dec 16, 2025
### ⚠️ Notice ⚠️

This release contains breaking changes:

- `RegisterDBStatsMetrics` now returns `(metric.Registration, error)`
(previously returned only `error`) so callers can `Unregister()` the
callback and avoid memory leaks.
- If you need to unregister: `reg, err := RegisterDBStatsMetrics(...)` +
`defer reg.Unregister()`.
- If you do not need to unregister: `_, err :=
RegisterDBStatsMetrics(...)`.
- `WithAttributes` now appends attributes when specified multiple times
(previously overwrote existing attributes).
- If you relied on overwriting: consolidate your attributes into a
single `WithAttributes(...)` call.

### Added

- `WithTextMapPropagator` allows customization of the OTel text map
propagator used by SQLCommenter. (#540)
This is an experimental feature and may be changed or removed in a later
release.

### Removed

- Drop support for [Go 1.23]. (#533)

### Changed

- Reduce allocations and improve performance when creating spans. (#549)
- Reduce allocations when recording metrics. (#550)
- `RegisterDBStatsMetrics` now returns a `metric.Registration` so
callbacks can be unregistered. (#580)
- `WithAttributes` now accumulates attributes across multiple calls
instead of overwriting. (#576)
- Upgrade OTel to `v1.39.0`. (#583)

[Go 1.23]: https://go.dev/doc/go1.23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants