1
0
mirror of https://github.com/open-telemetry/opentelemetry-go.git synced 2026-06-03 18:35:08 +02:00
Commit Graph

4684 Commits

Author SHA1 Message Date
renovate[bot] c7e701a06a chore(deps): update github.com/charmbracelet/ultraviolet digest to 6cf7526 (#8408)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[github.com/charmbracelet/ultraviolet](https://redirect.github.com/charmbracelet/ultraviolet)
| indirect | digest | `948f455` → `6cf7526` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the [Dependency
Dashboard](../issues/5322) for more information.

---

### Configuration

📅 **Schedule**: (UTC)

- 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.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-telemetry/opentelemetry-go).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yMDYuMSIsInVwZGF0ZWRJblZlciI6IjQzLjIwNi4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJTa2lwIENoYW5nZWxvZyIsImRlcGVuZGVuY2llcyJdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-01 14:21:23 -07:00
renovate[bot] 3e89d82e78 fix(deps): update module github.com/prometheus/common to v0.68.0 (#8395)
This PR contains the following updates:

| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
|
[github.com/prometheus/common](https://redirect.github.com/prometheus/common)
| `v0.67.5` → `v0.68.0` |
![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fprometheus%2fcommon/v0.68.0?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fprometheus%2fcommon/v0.67.5/v0.68.0?slim=true)
|

---

> [!WARNING]
> Some dependencies could not be looked up. Check the [Dependency
Dashboard](../issues/5322) for more information.

---

### Release Notes

<details>
<summary>prometheus/common (github.com/prometheus/common)</summary>

###
[`v0.68.0`](https://redirect.github.com/prometheus/common/releases/tag/v0.68.0)

[Compare
Source](https://redirect.github.com/prometheus/common/compare/v0.67.5...v0.68.0)

##### What's Changed

- Synchronize common files from prometheus/prometheus by
[@&#8203;prombot](https://redirect.github.com/prombot) in
[#&#8203;873](https://redirect.github.com/prometheus/common/pull/873)
- Synchronize common files from prometheus/prometheus by
[@&#8203;prombot](https://redirect.github.com/prombot) in
[#&#8203;874](https://redirect.github.com/prometheus/common/pull/874)
- build(deps): bump github.com/golang-jwt/jwt/v5 from 5.3.0 to 5.3.1 by
[@&#8203;dependabot](https://redirect.github.com/dependabot)\[bot] in
[#&#8203;879](https://redirect.github.com/prometheus/common/pull/879)
- build(deps): bump golang.org/x/net from 0.48.0 to 0.49.0 by
[@&#8203;dependabot](https://redirect.github.com/dependabot)\[bot] in
[#&#8203;878](https://redirect.github.com/prometheus/common/pull/878)
- Synchronize common files from prometheus/prometheus by
[@&#8203;prombot](https://redirect.github.com/prombot) in
[#&#8203;875](https://redirect.github.com/prometheus/common/pull/875)
- Synchronize common files from prometheus/prometheus by
[@&#8203;prombot](https://redirect.github.com/prombot) in
[#&#8203;880](https://redirect.github.com/prometheus/common/pull/880)
- Remove logic adding unit to metrics name by
[@&#8203;vesari](https://redirect.github.com/vesari) in
[#&#8203;877](https://redirect.github.com/prometheus/common/pull/877)
- Synchronize common files from prometheus/prometheus by
[@&#8203;prombot](https://redirect.github.com/prombot) in
[#&#8203;881](https://redirect.github.com/prometheus/common/pull/881)
- Update for Go 1.26 by
[@&#8203;SuperQ](https://redirect.github.com/SuperQ) in
[#&#8203;883](https://redirect.github.com/prometheus/common/pull/883)
- build(deps): bump golang.org/x/net from 0.49.0 to 0.51.0 by
[@&#8203;dependabot](https://redirect.github.com/dependabot)\[bot] in
[#&#8203;882](https://redirect.github.com/prometheus/common/pull/882)
- version: Add a slog helper by
[@&#8203;SuperQ](https://redirect.github.com/SuperQ) in
[#&#8203;886](https://redirect.github.com/prometheus/common/pull/886)
- Remove Arthur from maintainers list by
[@&#8203;ArthurSens](https://redirect.github.com/ArthurSens) in
[#&#8203;885](https://redirect.github.com/prometheus/common/pull/885)
- Synchronize common files from prometheus/prometheus by
[@&#8203;prombot](https://redirect.github.com/prombot) in
[#&#8203;895](https://redirect.github.com/prometheus/common/pull/895)
- Synchronize common files from prometheus/prometheus by
[@&#8203;prombot](https://redirect.github.com/prombot) in
[#&#8203;896](https://redirect.github.com/prometheus/common/pull/896)
- config: change NewOAuth2RoundTripper to accept variadic
HTTPClientOption by
[@&#8203;alliasgher](https://redirect.github.com/alliasgher) in
[#&#8203;898](https://redirect.github.com/prometheus/common/pull/898)
- config: guard against nil oauth2 credential in RoundTrip by
[@&#8203;alliasgher](https://redirect.github.com/alliasgher) in
[#&#8203;897](https://redirect.github.com/prometheus/common/pull/897)
- build(deps): bump golang.org/x/net from 0.51.0 to 0.52.0 by
[@&#8203;dependabot](https://redirect.github.com/dependabot)\[bot] in
[#&#8203;890](https://redirect.github.com/prometheus/common/pull/890)
- build(deps): bump go.yaml.in/yaml/v2 from 2.4.3 to 2.4.4 by
[@&#8203;dependabot](https://redirect.github.com/dependabot)\[bot] in
[#&#8203;891](https://redirect.github.com/prometheus/common/pull/891)
- build(deps): bump golang.org/x/oauth2 from 0.34.0 to 0.36.0 by
[@&#8203;dependabot](https://redirect.github.com/dependabot)\[bot] in
[#&#8203;892](https://redirect.github.com/prometheus/common/pull/892)
- Move interface assertions to a test file by
[@&#8203;msiegen](https://redirect.github.com/msiegen) in
[#&#8203;839](https://redirect.github.com/prometheus/common/pull/839)
- fix(http\_config): fix client cert rotation when no CA is configured
by [@&#8203;machine424](https://redirect.github.com/machine424) in
[#&#8203;908](https://redirect.github.com/prometheus/common/pull/908)
- Remove CircleCI by
[@&#8203;ArthurSens](https://redirect.github.com/ArthurSens) in
[#&#8203;910](https://redirect.github.com/prometheus/common/pull/910)
- Fix: apply DialContextFunc to OAuth2 token-fetch transport by
[@&#8203;yuri-tceretian](https://redirect.github.com/yuri-tceretian) in
[#&#8203;911](https://redirect.github.com/prometheus/common/pull/911)

##### New Contributors

- [@&#8203;alliasgher](https://redirect.github.com/alliasgher) made
their first contribution in
[#&#8203;898](https://redirect.github.com/prometheus/common/pull/898)
- [@&#8203;msiegen](https://redirect.github.com/msiegen) made their
first contribution in
[#&#8203;839](https://redirect.github.com/prometheus/common/pull/839)
- [@&#8203;machine424](https://redirect.github.com/machine424) made
their first contribution in
[#&#8203;908](https://redirect.github.com/prometheus/common/pull/908)
- [@&#8203;yuri-tceretian](https://redirect.github.com/yuri-tceretian)
made their first contribution in
[#&#8203;911](https://redirect.github.com/prometheus/common/pull/911)

**Full Changelog**:
<https://github.com/prometheus/common/compare/v0.67.5...v0.68.0>

</details>

---

### Configuration

📅 **Schedule**: (UTC)

- 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.

🔕 **Ignore**: Close this PR and you won't be reminded about these
updates again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-telemetry/opentelemetry-go).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yMDIuMSIsInVwZGF0ZWRJblZlciI6IjQzLjIwNi4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJTa2lwIENoYW5nZWxvZyIsImRlcGVuZGVuY2llcyJdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-01 13:58:36 -07:00
renovate[bot] 9791ffa76e chore(deps): update module github.com/mattn/go-colorable to v0.1.15 (#8391)
This PR contains the following updates:

| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
|
[github.com/mattn/go-colorable](https://redirect.github.com/mattn/go-colorable)
| `v0.1.14` → `v0.1.15` |
![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fmattn%2fgo-colorable/v0.1.15?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fmattn%2fgo-colorable/v0.1.14/v0.1.15?slim=true)
|

---

> [!WARNING]
> Some dependencies could not be looked up. Check the [Dependency
Dashboard](../issues/5322) for more information.

---

### Release Notes

<details>
<summary>mattn/go-colorable (github.com/mattn/go-colorable)</summary>

###
[`v0.1.15`](https://redirect.github.com/mattn/go-colorable/compare/v0.1.14...v0.1.15)

[Compare
Source](https://redirect.github.com/mattn/go-colorable/compare/v0.1.14...v0.1.15)

</details>

---

### Configuration

📅 **Schedule**: (UTC)

- 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.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-telemetry/opentelemetry-go).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yMDIuMSIsInVwZGF0ZWRJblZlciI6IjQzLjIwNi4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJTa2lwIENoYW5nZWxvZyIsImRlcGVuZGVuY2llcyJdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-01 13:37:17 -07:00
Abhijeet Prasad f67594caf7 fix(otlphttp): honor retry-after seconds (#8383)
This PR updates the log, metric, and trace exporters to read the HTTP
`Retry-After` header as seconds when retrying OTLP HTTP exports.
Previously, these exporters converted the parsed integer directly to
`time.Duration`, so values such as Retry-After: 10 were honored as 10ns
instead of 10s. This means that no otel go client has respected
`Retry-After`, which makes it not spec compliant as per
https://opentelemetry.io/docs/specs/otlp/#otlphttp-throttling

> If the server receives more requests than the client is allowed or the
server is overloaded, the server SHOULD respond with HTTP 429 Too Many
Requests or HTTP 503 Service Unavailable and MAY include
[“Retry-After”](https://tools.ietf.org/html/rfc7231#section-7.1.3)
header with a recommended time interval in seconds to wait before
retrying.
>
> The client SHOULD honour the waiting interval specified in the
“Retry-After” header if it is present. If the client receives a
retryable error code (see [table
above](https://opentelemetry.io/docs/specs/otlp/#retryable-response-codes))
and the “Retry-After” header is not present in the response, then the
client SHOULD implement an exponential backoff strategy between retries.

This problem has existed since the start of all the exporter usage.
2026-06-01 22:10:41 +02:00
renovate[bot] d059699f9c chore(deps): update module github.com/securego/gosec/v2 to v2.27.1 (#8413) 2026-06-01 22:01:29 +02:00
renovate[bot] a1bbbfc36a chore(deps): update module github.com/butuzov/mirror to v1.3.3 (#8390)
This PR contains the following updates:

| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
|
[github.com/butuzov/mirror](https://redirect.github.com/butuzov/mirror)
| `v1.3.0` → `v1.3.3` |
![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fbutuzov%2fmirror/v1.3.3?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fbutuzov%2fmirror/v1.3.0/v1.3.3?slim=true)
|

---

### Release Notes

<details>
<summary>butuzov/mirror (github.com/butuzov/mirror)</summary>

###
[`v1.3.3`](https://redirect.github.com/butuzov/mirror/releases/tag/v1.3.3)

[Compare
Source](https://redirect.github.com/butuzov/mirror/compare/v1.3.2...v1.3.3)

This is maintenance & compatibility (go1.25) release

#### Changelog

-
[`bdf3a32`](https://redirect.github.com/butuzov/mirror/commit/bdf3a32bb23a5d30ef7a76c4c73de5384819797e)
chores: maintenance
([#&#8203;90](https://redirect.github.com/butuzov/mirror/issues/90))

###
[`v1.3.2`](https://redirect.github.com/butuzov/mirror/compare/v1.3.0...v1.3.2)

[Compare
Source](https://redirect.github.com/butuzov/mirror/compare/v1.3.0...v1.3.2)

</details>

---

### Configuration

📅 **Schedule**: (UTC)

- 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.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-telemetry/opentelemetry-go).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yMDIuMSIsInVwZGF0ZWRJblZlciI6IjQzLjIwNi4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJTa2lwIENoYW5nZWxvZyIsImRlcGVuZGVuY2llcyJdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-01 12:36:54 -07:00
renovate[bot] a87529e476 fix(deps): update golang.org/x to c761662 (#8384)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [golang.org/x/exp](https://pkg.go.dev/golang.org/x/exp) | require |
digest | `08cc537` → `c761662` |
|
[golang.org/x/exp/typeparams](https://pkg.go.dev/golang.org/x/exp/typeparams)
| indirect | digest | `08cc537` → `c761662` |

---

### Configuration

📅 **Schedule**: (UTC)

- 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.

🔕 **Ignore**: Close this PR and you won't be reminded about these
updates again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-telemetry/opentelemetry-go).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xOTguMCIsInVwZGF0ZWRJblZlciI6IjQzLjIwMi4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJTa2lwIENoYW5nZWxvZyIsImRlcGVuZGVuY2llcyJdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-01 11:54:01 -07:00
renovate[bot] d49a3ecbe8 chore(deps): update module github.com/securego/gosec/v2 to v2.27.0 (#8406) 2026-06-01 19:08:22 +02:00
renovate[bot] 90b3b7755e fix(deps): update github.com/opentracing-contrib/go-grpc/test digest to bc171b2 (#8405) 2026-06-01 17:19:03 +02:00
renovate[bot] 5ca348d039 chore(deps): update module github.com/mattn/go-runewidth to v0.0.24 (#8394) 2026-06-01 16:59:06 +02:00
renovate[bot] 794c072400 chore(deps): update module github.com/jgautheron/goconst to v1.10.2 (#8380) 2026-05-29 14:47:45 +02:00
renovate[bot] f864e0c020 chore(deps): update module github.com/rogpeppe/go-internal to v1.15.0 (#8382) 2026-05-29 14:21:56 +02:00
renovate[bot] 6671f7bfb7 chore(deps): update codspeedhq/action action to v4.17.0 (#8388) 2026-05-29 12:53:40 +02:00
renovate[bot] 24ecd712b1 chore(deps): update module github.com/alecthomas/chroma/v2 to v2.26.1 (#8381) 2026-05-29 12:33:25 +02:00
Ayush de8158f87a fix(semconv): share metric option pools (#8371)
Share the AddOption and RecordOption pools used by generated semconv
metric helpers through a small internal package, instead of emitting one
pair of pools in every generated metric package.

Regenerate semconv/v1.41.0 from the updated templates.

Fixes #8356

---------

Co-authored-by: Robert Pająk <pellared@hotmail.com>
2026-05-29 12:17:09 +02:00
Robert Pająk b62d92831b Release 1.44.0 (#8376)
### Added

- Add `ByteSlice` and `ByteSliceValue` functions for new `BYTESLICE`
attribute type in `go.opentelemetry.io/otel/attribute`. (#7948)
- Apply attribute value limit to the `KindBytes` attribute type in
`go.opentelemetry.io/otel/sdk/log`. (#7990)
- Apply attribute value limit to the `BYTESLICE` attribute type in
`go.opentelemetry.io/otel/sdk/trace`. (#7990)
- Support `BYTESLICE` attributes in `go.opentelemetry.io/otel/trace`.
(#8153)
- Support `BYTESLICE` attributes in
`go.opentelemetry.io/otel/exporters/otlp/otlptrace`. (#8153)
- Support `BYTESLICE` attributes in
`go.opentelemetry.io/otel/exporters/otlp/otlplog`. (#8153)
- Support `BYTESLICE` attributes in
`go.opentelemetry.io/otel/exporters/otlp/otlpmetric`. (#8153)
- Support `BYTESLICE` attributes in
`go.opentelemetry.io/otel/exporters/zipkin`. (#8153)
- Add `String` method for `Value` type in
`go.opentelemetry.io/otel/attribute`. (#8142)
- Add `Slice` and `SliceValue` functions for new `SLICE` attribute type
in `go.opentelemetry.io/otel/attribute`. (#8166)
- Support `SLICE` attributes in
`go.opentelemetry.io/otel/exporters/otlp/otlptrace`. (#8216)
- Support `SLICE` attributes in
`go.opentelemetry.io/otel/exporters/otlp/otlplog`. (#8216)
- Support `SLICE` attributes in
`go.opentelemetry.io/otel/exporters/otlp/otlpmetric`. (#8216)
- Support `SLICE` attributes in
`go.opentelemetry.io/otel/exporters/zipkin`. (#8216)
- Apply `AttributeValueLengthLimit` to `attribute.SLICE` type attribute
values in `go.opentelemetry.io/otel/sdk/trace`, recursively truncating
contained string values. (#8217)
- Add `Error` field on `Record` type in
`go.opentelemetry.io/otel/log/logtest`. (#8148)
- Add `WithMaxRequestSize` option in
`go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc`.
(#8157)
- Add `WithMaxRequestSize` option in
`go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp`.
(#8157)
- Add `WithMaxRequestSize` option in
`go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc`.
(#8157)
- Add `WithMaxRequestSize` option in
`go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp`.
(#8157)
- Add `WithMaxRequestSize` option in
`go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc`. (#8157)
- Add `WithMaxRequestSize` option in
`go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp`. (#8157)
- Add `Settable` to `go.opentelemetry.io/otel/metric/x` to allow reusing
attribute options. (#8178)
- Add experimental support for splitting metric data across multiple
batches in `go.opentelemetry.io/otel/sdk/metric`.
Set `OTEL_GO_X_METRIC_EXPORT_BATCH_SIZE=<max_size>` to enable for all
periodic readers.
See `go.opentelemetry.io/otel/sdk/metric/internal/x` for feature
documentation. (#8071)
- Add experimental self-observability metrics in
`go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc`.
  Enable with `OTEL_GO_X_SELF_OBSERVABILITY=true` environment variable.
See
`go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc/internal/x`
for feature documentation. (#8192)
- Add experimental self-observability metrics in
`go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp`.
  Enable with `OTEL_GO_X_SELF_OBSERVABILITY=true` environment variable.
See
`go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp/internal/x`
for feature documentation. (#8194)
- Add experimental self-observability metrics in
`go.opentelemetry.io/otel/exporters/stdout/stdoutlog`.
  Enable with `OTEL_GO_X_SELF_OBSERVABILITY=true` environment variable.
See `go.opentelemetry.io/otel/stdout/stdoutlog/internal/x` for feature
documentation. (#8263)
- Add `WithDefaultAttributes` to `go.opentelemetry.io/otel/metric/x` to
support setting default attributes on instruments. (#8135)
- Add `go.opentelemetry.io/otel/semconv/v1.41.0` package.
The package contains semantic conventions from the `v1.41.0` version of
the OpenTelemetry Semantic Conventions.
See the [migration documentation](./semconv/v1.41.0/MIGRATION.md) for
information on how to upgrade from
`go.opentelemetry.io/otel/semconv/v1.40.0`. (#8324)
- Add Observable variants of instruments to
`go.opentelemetry.io/otel/semconv/v1.41.0` package. (#8350)
- Generate explicit histogram bucket boundaries from weaver
configuration for HTTP and RPC duration instruments in
`go.opentelemetry.io/otel/semconv/v1.41.0`. (#8002)

### Changed

- ⚠️ **Breaking Change:** `go.opentelemetry.io/otel/sdk/metric` now
applies a default cardinality limit of 2000 to comply with the Metrics
SDK specification recommendation.
New attribute sets are dropped when the cardinality limit is reached.
The measurement of these sets are aggregated into a special attribute
set containing `attribute.Bool("otel.metric.overflow", true)`.
  This can break users who relied on the previous unlimited default.
Set `WithCardinalityLimit(0)` or the deprecated
`OTEL_GO_X_CARDINALITY_LIMIT=0` environment variable to preserve
unlimited cardinality.
Note that support for `OTEL_GO_X_CARDINALITY_LIMIT` may be removed in a
future release. (#8247)
- `ErrorType` in `go.opentelemetry.io/otel/semconv` now unwraps errors
created with `fmt.Errorf` when deriving the `error.type` attribute.
(#8133)
- `go.opentelemetry.io/otel/sdk/log` now unwraps error chains created
with `fmt.Errorf` when deriving the `error.type` attribute from errors
on log records. (#8133)
- `Set.MarshalLog` method in `go.opentelemetry.io/otel/attribute` now
uses `Value.String` formatting following the [OpenTelemetry AnyValue
representation for non-OTLP
protocols](https://opentelemetry.io/docs/specs/otel/common/#anyvalue).
(#8169)
- Optimize `go.opentelemetry.io/otel/sdk/metric` to return a drop
reservoir and short-circuit `Offer` calls to the exemplar reservoir when
`exemplar.AlwaysOffFilter` is configured. (#8211) (#8267)
- Optimize `go.opentelemetry.io/otel/sdk/metric` to return a drop
reservoir for asynchronous instruments when `exemplar.TraceBasedFilter`
is configured. (#8286)

### Deprecated

- Deprecate `Value.Emit` method in `go.opentelemetry.io/otel/attribute`.
  Use `Value.String` instead. (#8176)

### Fixed

- Limit OTLP request size to 64 MiB by default in
`go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc`.
The limit applies before compression, oversized requests are treated as
non-retryable errors, and the limit can be configured with the new
`WithMaxRequestSize` option. (#8157, #8365)
- Limit OTLP request size to 64 MiB by default in
`go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp`.
The limit applies before compression, oversized requests are treated as
non-retryable errors, and the limit can be configured with the new
`WithMaxRequestSize` option. (#8157, #8365)
- Limit OTLP request size to 64 MiB by default in
`go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc`.
The limit applies before compression, oversized requests are treated as
non-retryable errors, and the limit can be configured with the new
`WithMaxRequestSize` option. (#8157, #8365)
- Limit OTLP request size to 64 MiB by default in
`go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp`.
The limit applies before compression, oversized requests are treated as
non-retryable errors, and the limit can be configured with the new
`WithMaxRequestSize` option. (#8157, #8365)
- Limit OTLP request size to 64 MiB by default in
`go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc`.
The limit applies before compression, oversized requests are treated as
non-retryable errors, and the limit can be configured with the new
`WithMaxRequestSize` option. (#8157, #8365)
- Limit OTLP request size to 64 MiB by default in
`go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp`.
The limit applies before compression, oversized requests are treated as
non-retryable errors, and the limit can be configured with the new
`WithMaxRequestSize` option. (#8157, #8365)
- Fix gzipped request body replay on redirect in
`go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp`.
(#8135)
- Fix gzipped request body replay on redirect in
`go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp`. (#8152)
- `go.opentelemetry.io/otel/exporters/prometheus` now uses
`Value.String` formatting for label values following the [OpenTelemetry
AnyValue representation for non-OTLP
protocols](https://opentelemetry.io/docs/specs/otel/common/#anyvalue).
(#8170)
- Propagate errors from the exporter when calling `Shutdown` on
`BatchSpanProcessor` in `go.opentelemetry.io/otel/sdk/trace`. (#8197)
- Fix stale status code reporting on self-observability metrics in
`go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp` and
`go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp`. (#8226)
- Fix a concurrent `Collect` data race and potential panic in
`go.opentelemetry.io/otel/exporters/prometheus` when
`WithResourceAsConstantLabels` option is used. (#8227)
- Fix race condition in `FixedSizeReservoir` in
`go.opentelemetry.io/otel/sdk/metric/exemplar` by reverting #7447.
(#8249)
- Fix `FixedSizeReservoir` in
`go.opentelemetry.io/otel/sdk/metric/exemplar` to safely handle zero
size.
A capacity check in the constructor initializes the reservoir safely and
skips initialization for zero-cap; early returns in `Offer()` and
`Collect()` ensure no-op behavior. (#8295)
- Fix counting of spans and logs in self-observability metrics in
`go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc`,
`go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp`,
`go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc`, and
`go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp`. (#8254)
- Drop conflicting scope attributes named `name`, `version`, or
`schema_url` from metric labels in
`go.opentelemetry.io/otel/exporters/prometheus`, preserving the
dedicated `otel_scope_name`, `otel_scope_version`, and
`otel_scope_schema_url` labels. (#8264)
- Close schema files opened by `ParseFile` in
`go.opentelemetry.io/otel/schema/v1.0` and
`go.opentelemetry.io/otel/schema/v1.1`.
([GHSA-995v-fvrw-c78m](https://github.com/open-telemetry/opentelemetry-go/security/advisories/GHSA-995v-fvrw-c78m))
- Enforce the 8192-byte baggage size limit during extraction/parsing,
changing behavior when the limit is exceeded in
`go.opentelemetry.io/otel/baggage` and
`go.opentelemetry.io/otel/propagation`. (#8222)
- Fix `go.opentelemetry.io/otel/semconv/v1.41.0` to include `Attr*`
helper methods for required attributes on observable instruments.
(#8361)
- Limit baggage extraction error reporting in
`go.opentelemetry.io/otel/propagation` to prevent malformed or oversized
baggage headers from flooding logs.
([GHSA-5wrp-cwcj-q835](https://github.com/open-telemetry/opentelemetry-go/security/advisories/GHSA-5wrp-cwcj-q835))
schema/v0.0.17 exporters/otlp/otlplog/otlploghttp/v0.20.0 exporters/otlp/otlplog/otlploggrpc/v0.20.0 sdk/log/logtest/v0.20.0 sdk/log/v0.20.0 log/logtest/v0.20.0 log/v0.20.0 metric/x/v0.66.0 exporters/prometheus/v0.66.0 sdk/metric/v1.44.0 trace/v1.44.0 sdk/v1.44.0 metric/v1.44.0 exporters/stdout/stdouttrace/v1.44.0 exporters/zipkin/v1.44.0 exporters/stdout/stdoutmetric/v1.44.0 exporters/otlp/otlptrace/otlptracegrpc/v1.44.0 exporters/otlp/otlptrace/v1.44.0 exporters/otlp/otlptrace/otlptracehttp/v1.44.0 exporters/otlp/otlpmetric/otlpmetricgrpc/v1.44.0 exporters/otlp/otlpmetric/otlpmetrichttp/v1.44.0 bridge/opentracing/v1.44.0 bridge/opencensus/v1.44.0 bridge/opencensus/test/v1.44.0 v1.44.0 exporters/stdout/stdoutlog/v0.20.0
2026-05-27 18:42:37 +02:00
renovate[bot] 94132a0a72 chore(deps): update golang.org/x/telemetry digest to 5997936 (#8379) 2026-05-27 18:31:59 +02:00
David Ashpole 6fdcf82adf feat: add self-observability metrics to otlpmetricgrpc metric exporters (#8192)
Fixes https://github.com/open-telemetry/opentelemetry-go/issues/7012

This updates
https://github.com/open-telemetry/opentelemetry-go/pull/7120, and
addresses outstanding comments. See commit descriptions for the changes
made on top of that PR. Credit to minimAluminiumalism for the initial
work.

Benchmark results:

```
goos: linux
goarch: amd64
pkg: go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc/internal/observ
cpu: Intel(R) Xeon(R) CPU @ 2.20GHz
                                             │ bench_feature.txt │
                                             │      sec/op       │
InstrumentationTrackExport/EnabledNoError-24         1.045µ ± 5%
InstrumentationTrackExport/EnabledError-24           2.248µ ± 1%
InstrumentationTrackExport/Disabled-24               9.643n ± 1%
geomean                                              282.9n

                                             │ bench_feature.txt │
                                             │       B/op        │
InstrumentationTrackExport/EnabledNoError-24        160.0 ± 0%
InstrumentationTrackExport/EnabledError-24          488.0 ± 0%
InstrumentationTrackExport/Disabled-24              0.000 ± 0%
geomean                                                        ¹
¹ summaries must be >0 to compute geomean

                                             │ bench_feature.txt │
                                             │     allocs/op     │
InstrumentationTrackExport/EnabledNoError-24        5.000 ± 0%
InstrumentationTrackExport/EnabledError-24          6.000 ± 0%
InstrumentationTrackExport/Disabled-24              0.000 ± 0%
geomean                                                        ¹
¹ summaries must be >0 to compute geomean
```

Written with assistance from Gemini.

---------

Co-authored-by: minimAluminiumalism <caixuesen@outlook.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Robert Pająk <pellared@hotmail.com>
2026-05-27 18:19:11 +02:00
renovate[bot] 761bbfc2f4 fix(deps): update golang.org/x (#8377) 2026-05-27 10:08:54 +02:00
renovate[bot] 3a91dc62d3 fix(deps): update googleapis to 3dc84a4 (#8375) 2026-05-27 09:28:43 +02:00
Robert Pająk f593185679 exporters/otlp: default max request size to 64 MiB (#8365)
Per https://github.com/open-telemetry/opentelemetry-proto/pull/782 where
we agreed to have 64 MiB as the default limit.
2026-05-26 21:00:40 +02:00
Robert Pająk f02feacf86 Merge commit from fork
* fix(propagation): limit baggage extraction error reporting

Use sync.Once when reporting malformed or oversized baggage headers so
attacker-controlled extraction failures cannot repeatedly flood the global error
handler/log output.

* propagation: test baggage error reporting limit

* add changelog entry
2026-05-26 19:43:43 +02:00
Aakash T M 36c2f1bfd1 semconvkit: add invariant test for histogram-exclusion rule (#8370)
Fixes #8353
2026-05-26 18:21:44 +02:00
Ali Asghar d0b6cbdff5 sdk/metric: document unit-sensitivity of DefaultAggregationSelector (#8224)
Fixes #5891

---------

Signed-off-by: Ali <alliasgher123@gmail.com>
Co-authored-by: Robert Pająk <pellared@hotmail.com>
2026-05-26 18:10:50 +02:00
ian 9a68034bd4 add self observability for stdout exporter (#8263)
ref: https://github.com/open-telemetry/opentelemetry-go/issues/7020

```txt
goos: darwin
goarch: arm64
pkg: go.opentelemetry.io/otel/exporters/stdout/stdoutlog
                                      │ bench_observability_disabled_6x.txt │ bench_observability_upload_6x.txt │
                                      │               sec/op                │           sec/op            vs base   │
ExporterObservability/Disabled-8                                3.968µ ± 1%
ExporterObservability/UploadSuccess-8                                                        4.236µ ± 2%
geomean                                                         3.967µ                       4.235µ       ? ¹ ²
¹ benchmark set differs from baseline; geomeans may not be comparable
² ratios must be >0 to compute geomean

                                      │ bench_observability_disabled_6x.txt │ bench_observability_upload_6x.txt │
                                      │                B/op                 │            B/op             vs base   │
ExporterObservability/Disabled-8                               1.419Ki ± 0%
ExporterObservability/UploadSuccess-8                                                       1.420Ki ± 0%
geomean                                                        1.419Ki                      1.420Ki       ? ¹ ²
¹ benchmark set differs from baseline; geomeans may not be comparable
² ratios must be >0 to compute geomean

                                      │ bench_observability_disabled_6x.txt │ bench_observability_upload_6x.txt │
                                      │              allocs/op              │         allocs/op           vs base   │
ExporterObservability/Disabled-8                                 33.00 ± 0%
ExporterObservability/UploadSuccess-8                                                         33.00 ± 0%
geomean                                                          33.00                        33.00       ? ¹ ²
¹ benchmark set differs from baseline; geomeans may not be comparable
² ratios must be >0 to compute geomean
```
2026-05-26 15:49:39 +02:00
renovate[bot] 714a1965ac fix(deps): update googleapis to 0a33c5d (#8369) 2026-05-25 17:38:05 +02:00
renovate[bot] 57b157714a chore(deps): update github.com/charmbracelet/ultraviolet digest to 948f455 (#8374) 2026-05-25 16:41:05 +02:00
renovate[bot] 710b65ac9f chore(deps): update module github.com/clickhouse/clickhouse-go-linter to v1.2.1 (#8366) 2026-05-25 16:31:51 +02:00
renovate[bot] 00d4e81bd6 chore(deps): update github/codeql-action action to v4.36.0 (#8367) 2026-05-25 16:22:20 +02:00
renovate[bot] d3295f1317 fix(deps): update module go.opentelemetry.io/collector/pdata to v1.59.0 (#8373) 2026-05-25 16:02:39 +02:00
Vansh Agarwal a51ddb125a fix: handle FixedSizeReservoir size=0 without panic (#8295)
Fixes #8232

- Added guard for size=0 in FixedSizeReservoir
- Prevents panic during Offer/update
- Added test to ensure no panic occurs

---------

Co-authored-by: David Ashpole <dashpole@google.com>
2026-05-22 13:32:33 +02:00
David Ashpole 15063b23a1 Disable exemplar reservoir for asynchronous instruments by default (#8286)
Fixes https://github.com/open-telemetry/opentelemetry-go/issues/8285

Asynchronous instruments do not accept context, so the default
TraceBased exemplar filter can never record an exemplar. Use the
DropReservoir when the TraceBased exemplar filter is used, similar to
https://github.com/open-telemetry/opentelemetry-go/pull/8211.


### Benchmarks

Since callbacks are made as part of collect, there is a significant
baseline overhead from collection included in the benchmark.

```
goos: linux
goarch: amd64
pkg: go.opentelemetry.io/otel/sdk/metric
cpu: AMD EPYC 7B12
                                          │   main.txt   │              new.txt               │
                                          │    sec/op    │   sec/op     vs base               │
AsyncMeasureNewAttributeSet/AlwaysOn-24     3.662µ ± 13%   3.735µ ± 8%        ~ (p=0.699 n=6)
AsyncMeasureNewAttributeSet/TraceBased-24   3.586µ ± 10%   1.195µ ± 5%  -66.69% (p=0.002 n=6)
geomean                                     3.623µ         2.112µ       -41.70%

                                          │   main.txt   │               new.txt               │
                                          │     B/op     │     B/op      vs base               │
AsyncMeasureNewAttributeSet/AlwaysOn-24     3.344Ki ± 0%   3.343Ki ± 0%        ~ (p=0.571 n=6)
AsyncMeasureNewAttributeSet/TraceBased-24    3424.5 ± 0%     592.0 ± 0%  -82.71% (p=0.002 n=6)
geomean                                     3.344Ki        1.390Ki       -58.43%

                                          │  main.txt  │               new.txt               │
                                          │ allocs/op  │ allocs/op   vs base                 │
AsyncMeasureNewAttributeSet/AlwaysOn-24     16.00 ± 0%   16.00 ± 0%        ~ (p=1.000 n=6) ¹
AsyncMeasureNewAttributeSet/TraceBased-24   16.00 ± 0%   12.00 ± 0%  -25.00% (p=0.002 n=6)
geomean                                     16.00        13.86       -13.40%
¹ all samples are equal
```
2026-05-22 09:57:06 +02:00
Dipanshu singh 39d0370d0f docs: clarify that View attribute filters do not apply to Exemplars (#8339)
This PR updates the documentation to clarify how View attribute filters
interact with Exemplars.

Currently, it's not very obvious that when a View filters out certain
attributes, those dropped attributes might still appear on Exemplars.
According to the OTel specification, Exemplars retain the original
measurement attributes regardless of the View or aggregation
configuration.

This behavior can be confusing for users, so I've added a brief note to
the godocs for View, AttributeFilter, and the package-level doc.go to
make this explicit (similar to the recent documentation updates in the
.NET SDK).

fixes #8330

---------

Co-authored-by: Robert Pająk <pellared@hotmail.com>
2026-05-22 09:28:20 +02:00
Matthieu MOREL f6c8baa895 Fix receiver-naming issues from revive (#8093)
Signed-off-by: Matthieu MOREL <matthieu.morel35@gmail.com>
2026-05-22 09:01:15 +02:00
mujib77 6ceeae804a Fix Extrema failure test (#8338)
The Extrema failure test referenced minA/minB variables that no longer
exist, causing tests_fail builds to fail.
2026-05-22 08:49:57 +02:00
renovate[bot] 0f9ca98874 chore(deps): update module github.com/uudashr/iface to v1.5.0 (#8362) 2026-05-22 08:29:14 +02:00
renovate[bot] a503f2f7e5 chore(deps): update module github.com/antonboom/errname to v1.1.2 (#8359) 2026-05-22 08:20:17 +02:00
renovate[bot] fef000a7cc chore(deps): update module github.com/antonboom/nilnil to v1.1.2 (#8360) 2026-05-22 08:09:09 +02:00
renovate[bot] 4fb7134cdd fix(deps): update golang.org/x (#8363) 2026-05-22 07:45:50 +02:00
David Ashpole 30fbc996a7 Fix semconv generation to include Attr helpers for required attributes on observable instruments (#8361)
The semconv generator only emitted Attr* helpers for not_required
attributes. For synchronous metrics, required attributes become
positional parameters on Record/Add methods. But observable instruments
don't get a generated observe wrapper, so there was no way to easily
pass the required attributes in callbacks.

Fixes #8357
2026-05-22 07:28:13 +02:00
renovate[bot] e5bdc31110 fix(deps): update googleapis to aa98bba (#8344) 2026-05-21 10:08:57 +02:00
renovate[bot] b71635c188 chore(deps): update golang.org/x/telemetry digest to eab6ae5 (#8348) 2026-05-21 09:53:10 +02:00
renovate[bot] dabaf5bdd6 chore(deps): update module 4d63.com/gocheckcompilerdirectives to v1.4.0 (#8334) 2026-05-21 09:42:13 +02:00
renovate[bot] 0f2892c59a fix(deps): update module google.golang.org/grpc to v1.81.1 (#8340) 2026-05-21 09:23:55 +02:00
renovate[bot] b344564bf0 chore(deps): update module github.com/uudashr/iface to v1.4.4 (#8335) 2026-05-21 09:08:08 +02:00
renovate[bot] e2b4d43818 chore(deps): update actions/stale action to v10.3.0 (#8355) 2026-05-21 08:59:36 +02:00
Robert Pająk 4e7ae497e4 fix(semconv): clear pooled slices to enable GC (#8352)
Fixes #8320 

Credits to ash2k
2026-05-21 08:00:44 +02:00
David Ashpole 597532c4d4 Add observable instrument variants to semconv v1.41.0 (#8350)
Fixes https://github.com/open-telemetry/opentelemetry-go/issues/7342

Generates both observable and synchronous variants of instruments per
https://github.com/open-telemetry/opentelemetry-go/issues/7342#issuecomment-3292806559
2026-05-21 06:50:33 +02:00
renovate[bot] 2919ac8ed2 chore(deps): update module github.com/kisielk/errcheck to v1.20.0 (#8333) 2026-05-20 23:08:35 +02:00
renovate[bot] a410ac530a chore(deps): update codecov/codecov-action action to v6.0.1 (#8342) 2026-05-20 22:07:07 +02:00