1
0
mirror of https://github.com/open-telemetry/opentelemetry-go.git synced 2025-09-16 09:26:25 +02:00
Commit Graph

3883 Commits

Author SHA1 Message Date
renovate[bot]
18ad4a1d31 fix(deps): update module github.com/golangci/golangci-lint/v2 to v2.4.0 (#7277)
This PR contains the following updates:

| Package | Change | Age | Confidence |
|---|---|---|---|
|
[github.com/golangci/golangci-lint/v2](https://redirect.github.com/golangci/golangci-lint)
| `v2.3.1` -> `v2.4.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fgolangci%2fgolangci-lint%2fv2/v2.4.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fgolangci%2fgolangci-lint%2fv2/v2.3.1/v2.4.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

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

---

### Release Notes

<details>
<summary>golangci/golangci-lint
(github.com/golangci/golangci-lint/v2)</summary>

###
[`v2.4.0`](https://redirect.github.com/golangci/golangci-lint/blob/HEAD/CHANGELOG.md#v240)

[Compare
Source](https://redirect.github.com/golangci/golangci-lint/compare/v2.3.1...v2.4.0)

1. Enhancements
   - 🎉 go1.25 support
2. Linters new features or changes
- `exhaustruct`: from v3.3.1 to 4.0.0 (new options: `allow-empty`,
`allow-empty-rx`, `allow-empty-returns`, `allow-empty-declarations`)
3. Linters bug fixes
   - `godox`: trim filepath from report messages
   - `staticcheck`: allow empty options
   - `tagalign`: from 1.4.2 to 1.4.3
4. Documentation
   - 🌟 New website (with a search engine)

</details>

---

### 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 becomes conflicted, 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:eyJjcmVhdGVkSW5WZXIiOiI0MS45MS4xIiwidXBkYXRlZEluVmVyIjoiNDEuOTEuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiU2tpcCBDaGFuZ2Vsb2ciLCJkZXBlbmRlbmNpZXMiXX0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-31 08:35:17 -07:00
renovate[bot]
c2fea5fb4d chore(deps): update module github.com/securego/gosec/v2 to v2.22.8 (#7276)
This PR contains the following updates:

| Package | Change | Age | Confidence |
|---|---|---|---|
|
[github.com/securego/gosec/v2](https://redirect.github.com/securego/gosec)
| `v2.22.7` -> `v2.22.8` |
[![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fsecurego%2fgosec%2fv2/v2.22.8?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fsecurego%2fgosec%2fv2/v2.22.7/v2.22.8?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

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

---

### Release Notes

<details>
<summary>securego/gosec (github.com/securego/gosec/v2)</summary>

###
[`v2.22.8`](https://redirect.github.com/securego/gosec/releases/tag/v2.22.8)

[Compare
Source](https://redirect.github.com/securego/gosec/compare/v2.22.7...v2.22.8)

#### Changelog

-
[`c945302`](c9453023c4)
Add support for go version 1.25.0
-
[`ef7adab`](ef7adab98c)
Update go version in CI to 1.24.6 and 1.23.12
-
[`e201bb8`](e201bb86c2)
chore(deps): update all dependencies
-
[`ba592af`](ba592afef6)
chore(deps): update all dependencies
-
[`2ef6017`](2ef6017991)
Update github action to release v2.22.7

</details>

---

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

🔕 **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:eyJjcmVhdGVkSW5WZXIiOiI0MS45MS4xIiwidXBkYXRlZEluVmVyIjoiNDEuOTEuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiU2tpcCBDaGFuZ2Vsb2ciLCJkZXBlbmRlbmNpZXMiXX0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-31 08:20:30 -07:00
renovate[bot]
83403d339c fix(deps): update module go.opentelemetry.io/collector/pdata to v1.40.0 (#7275)
This PR contains the following updates:

| Package | Change | Age | Confidence |
|---|---|---|---|
|
[go.opentelemetry.io/collector/pdata](https://redirect.github.com/open-telemetry/opentelemetry-collector)
| `v1.38.0` -> `v1.40.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/go.opentelemetry.io%2fcollector%2fpdata/v1.40.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/go.opentelemetry.io%2fcollector%2fpdata/v1.38.0/v1.40.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

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

---

### Release Notes

<details>
<summary>open-telemetry/opentelemetry-collector
(go.opentelemetry.io/collector/pdata)</summary>

###
[`v1.40.0`](https://redirect.github.com/open-telemetry/opentelemetry-collector/blob/HEAD/CHANGELOG.md#v1400v01340)

##### 💡 Enhancements 💡

- `pdata`: Add custom grpc/encoding that replaces proto and calls into
the custom marshal/unmarshal logic in pdata.
([#&#8203;13631](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/13631))
This change should not affect other gRPC calls since it fallbacks to the
default grpc/proto encoding if requests are not pdata/otlp requests.
- `pdata`: Avoid copying the pcommon.Map when same origin
([#&#8203;13731](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/13731))
This is a very large improvement if using OTTL with map functions since
it will avoid a map copy.
- `exporterhelper`: Respect `num_consumers` when batching and
partitioning are enabled.
([#&#8203;13607](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/13607))

##### 🧰 Bug fixes 🧰

- `pdata`: Correctly parse OTLP payloads containing non-packed repeated
primitive fields
([#&#8203;13727](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/13727),
[#&#8203;13730](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/13730))
This bug prevented the Collector from ingesting most Histogram,
ExponentialHistogram,
  and Profile payloads.

<!-- previous-version -->

###
[`v1.39.0`](https://redirect.github.com/open-telemetry/opentelemetry-collector/blob/HEAD/CHANGELOG.md#v1390v01330)

##### 🛑 Breaking changes 🛑

- `all`: Increase minimum Go version to 1.24
([#&#8203;13627](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/13627))

##### 💡 Enhancements 💡

- `otlphttpexporter`: Add `profiles_endpoint` configuration option to
allow custom endpoint for profiles data export
([#&#8203;13504](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/13504))
The `profiles_endpoint` configuration follows the same pattern as
`traces_endpoint`, `metrics_endpoint`, and `logs_endpoint`.
When specified, profiles data will be sent to the custom URL instead of
the default `{endpoint}/v1development/profiles`.

- `pdata`: Add support for local memory pooling for data objects.
([#&#8203;13678](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/13678))
This is still an early experimental (alpha) feature. Do not recommended
to be used production. To enable use
"--featuregate=+pdata.useProtoPooling"

- `pdata`: Optimize CopyTo messages to avoid any copy when same source
and destination
([#&#8203;13680](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/13680))

- `receiverhelper`: New feature flag to make receiverhelper distinguish
internal vs. downstream errors using new `otelcol_receiver_failed_x` and
`otelcol_receiver_requests` metrics
([#&#8203;12207](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/12207),
[#&#8203;12802](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/12802))
This is a breaking change for the semantics of the
otelcol\_receiver\_refused\_metric\_points,
otelcol\_receiver\_refused\_log\_records and
otelcol\_receiver\_refused\_spans metrics.
These new metrics and semantics are enabled through the
`receiverhelper.newReceiverMetrics` feature gate.

- `debugexporter`: Add support for entity references in debug exporter
output
([#&#8203;13324](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/13324))

- `pdata`: Fix unnecessary allocation of a new state when adding new
values to pcommon.Map
([#&#8203;13634](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/13634))

- `service`: Implement refcounting for pipeline data owned memory.
([#&#8203;13631](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/13631))
  This feature is protected by `--featuregate=+pdata.useProtoPooling`.

- `service`: Add a debug-level log message when a consumer returns an
error.
([#&#8203;13357](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/13357))

- `xpdata`: Optimize xpdata/context for persistent queue when only one
value for key
([#&#8203;13636](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/13636))

- `otlpreceiver`: Log the listening addresses of the receiver, rather
than the configured endpoints.
([#&#8203;13654](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/13654))

- `pdata`: Use the newly added proto marshaler/unmarshaler for the
official proto Marshaler/Unmarshaler
([#&#8203;13637](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/13637))
If any problems observed with this consider to disable the featuregate
`--feature-gates=-pdata.useCustomProtoEncoding`

<!-- cspell:ignore MLKEM mlkem -->

- `configtls`: Enable X25519MLKEM768 as per draft-ietf-tls-ecdhe-mlkem
([#&#8203;13670](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/13670))

##### 🧰 Bug fixes 🧰

- `exporterhelper`: Prevent uncontrolled goroutines in batcher due to a
incorrect worker pool behaviour.
([#&#8203;13689](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/13689))
- `service`: Ensure the insecure configuration is accounted for when
normalizing the endpoint.
([#&#8203;13691](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/13691))
- `configoptional`: Allow validating nested types
([#&#8203;13579](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/13579))
  `configoptional.Optional` now implements `xconfmap.Validator`
- `batchprocessor`: Fix UB in batch processor when trying to read bytes
size after adding request to pipeline
([#&#8203;13698](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/13698))
This bug only happens id detailed metrics are enabled and also an async
(sending queue enabled) exporter that mutates data is configure.

<!-- previous-version -->

</details>

---

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

🔕 **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:eyJjcmVhdGVkSW5WZXIiOiI0MS45MS4xIiwidXBkYXRlZEluVmVyIjoiNDEuOTEuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiU2tpcCBDaGFuZ2Vsb2ciLCJkZXBlbmRlbmNpZXMiXX0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-31 08:10:48 -07:00
Tyler Yahn
8ab8e421a5 Drop support for Go 1.23 (#7274) 2025-08-31 07:52:30 -07:00
Tyler Yahn
84e3f3ac8b Release v1.38.0 (#7271)
This release is the last to support [Go 1.23].
The next release will require at least [Go 1.24].

### Added

- Add native histogram exemplar support in
`go.opentelemetry.io/otel/exporters/prometheus`. (#6772)
- Add template attribute functions to the
`go.opentelmetry.io/otel/semconv/v1.34.0` package. (#6939)
  - `ContainerLabel`
  - `DBOperationParameter`
  - `DBSystemParameter`
  - `HTTPRequestHeader`
  - `HTTPResponseHeader`
  - `K8SCronJobAnnotation`
  - `K8SCronJobLabel`
  - `K8SDaemonSetAnnotation`
  - `K8SDaemonSetLabel`
  - `K8SDeploymentAnnotation`
  - `K8SDeploymentLabel`
  - `K8SJobAnnotation`
  - `K8SJobLabel`
  - `K8SNamespaceAnnotation`
  - `K8SNamespaceLabel`
  - `K8SNodeAnnotation`
  - `K8SNodeLabel`
  - `K8SPodAnnotation`
  - `K8SPodLabel`
  - `K8SReplicaSetAnnotation`
  - `K8SReplicaSetLabel`
  - `K8SStatefulSetAnnotation`
  - `K8SStatefulSetLabel`
  - `ProcessEnvironmentVariable`
  - `RPCConnectRPCRequestMetadata`
  - `RPCConnectRPCResponseMetadata`
  - `RPCGRPCRequestMetadata`
  - `RPCGRPCResponseMetadata`
- Add `ErrorType` attribute helper function to the
`go.opentelmetry.io/otel/semconv/v1.34.0` package. (#6962)
- Add `WithAllowKeyDuplication` in `go.opentelemetry.io/otel/sdk/log`
which can be used to disable deduplication for log records. (#6968)
- Add `WithCardinalityLimit` option to configure the cardinality limit
in `go.opentelemetry.io/otel/sdk/metric`. (#6996, #7065, #7081, #7164,
#7165, #7179)
- Add `Clone` method to `Record` in `go.opentelemetry.io/otel/log` that
returns a copy of the record with no shared state. (#7001)
- Add experimental self-observability span and batch span processor
metrics in `go.opentelemetry.io/otel/sdk/trace`. Check the
`go.opentelemetry.io/otel/sdk/trace/internal/x` package documentation
for more information. (#7027, #6393, #7209)
- The `go.opentelemetry.io/otel/semconv/v1.36.0` package. The package
contains semantic conventions from the `v1.36.0` version of the
OpenTelemetry Semantic Conventions. See the [migration
documentation](./semconv/v1.36.0/MIGRATION.md) for information on how to
upgrade from `go.opentelemetry.io/otel/semconv/v1.34.0.`(#7032, #7041)
- Add support for configuring Prometheus name translation using
`WithTranslationStrategy` option in
`go.opentelemetry.io/otel/exporters/prometheus`. The current default
translation strategy when UTF-8 mode is enabled is
`NoUTF8EscapingWithSuffixes`, but a future release will change the
default strategy to `UnderscoreEscapingWithSuffixes` for compliance with
the specification. (#7111)
- Add experimental self-observability log metrics in
`go.opentelemetry.io/otel/sdk/log`. Check the
`go.opentelemetry.io/otel/sdk/log/internal/x` package documentation for
more information. (#7121)
- Add experimental self-observability trace exporter metrics in
`go.opentelemetry.io/otel/exporters/stdout/stdouttrace`. Check the
`go.opentelemetry.io/otel/exporters/stdout/stdouttrace/internal/x`
package documentation for more information. (#7133)
- Support testing of [Go 1.25]. (#7187)
- The `go.opentelemetry.io/otel/semconv/v1.37.0` package. The package
contains semantic conventions from the `v1.37.0` version of the
OpenTelemetry Semantic Conventions. See the [migration
documentation](./semconv/v1.37.0/MIGRATION.md) for information on how to
upgrade from `go.opentelemetry.io/otel/semconv/v1.36.0.`(#7254)

### Changed

- Optimize `TraceIDFromHex` and `SpanIDFromHex` in
`go.opentelemetry.io/otel/sdk/trace`. (#6791)
- Change `AssertEqual` in `go.opentelemetry.io/otel/log/logtest` to
accept `TestingT` in order to support benchmarks and fuzz tests. (#6908)
- Change `DefaultExemplarReservoirProviderSelector` in
`go.opentelemetry.io/otel/sdk/metric` to use `runtime.GOMAXPROCS(0)`
instead of `runtime.NumCPU()` for the `FixedSizeReservoirProvider`
default size. (#7094)

### Fixed

- `SetBody` method of `Record` in `go.opentelemetry.io/otel/sdk/log` now
deduplicates key-value collections (`log.Value` of `log.KindMap` from
`go.opentelemetry.io/otel/log`). (#7002)
- Fix `go.opentelemetry.io/otel/exporters/prometheus` to not append a
suffix if it's already present in metric name. (#7088)
- Fix the `go.opentelemetry.io/otel/exporters/stdout/stdouttrace`
self-observability component type and name. (#7195)
- Fix partial export count metric in
`go.opentelemetry.io/otel/exporters/stdout/stdouttrace`. (#7199)

### Deprecated

- Deprecate `WithoutUnits` and `WithoutCounterSuffixes` options,
preferring `WithTranslationStrategy` instead. (#7111)
- Deprecate support for `OTEL_GO_X_CARDINALITY_LIMIT` environment
variable in `go.opentelemetry.io/otel/sdk/metric`. Use
`WithCardinalityLimit` option instead. (#7166)
schema/v0.0.13 exporters/stdout/stdoutlog/v0.14.0 exporters/otlp/otlplog/otlploghttp/v0.14.0 sdk/log/logtest/v0.14.0 exporters/otlp/otlplog/otlploggrpc/v0.14.0 sdk/log/v0.14.0 log/logtest/v0.14.0 log/v0.14.0 exporters/prometheus/v0.60.0 trace/v1.38.0 sdk/metric/v1.38.0 sdk/v1.38.0 metric/v1.38.0 exporters/zipkin/v1.38.0 exporters/stdout/stdouttrace/v1.38.0 exporters/stdout/stdoutmetric/v1.38.0 exporters/otlp/otlptrace/otlptracehttp/v1.38.0 exporters/otlp/otlptrace/otlptracegrpc/v1.38.0 exporters/otlp/otlptrace/v1.38.0 exporters/otlp/otlpmetric/otlpmetrichttp/v1.38.0 bridge/opentracing/v1.38.0 exporters/otlp/otlpmetric/otlpmetricgrpc/v1.38.0 bridge/opencensus/test/v1.38.0 bridge/opencensus/v1.38.0 v1.38.0
2025-08-29 12:42:52 -07:00
David Ashpole
18424a46ed Add tests for attribute JSON marshalling (#7268)
Forked from
https://github.com/open-telemetry/opentelemetry-go/pull/7175#discussion_r2277148762

This adds a test for JSON marshaling of attribute sets.

---------

Co-authored-by: Flc゛ <four_leaf_clover@foxmail.com>
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
2025-08-29 12:02:56 -04:00
Tyler Yahn
9798759463 Statically define trace observability attributes (#7263)
There are a finite set of attributes that can be recorded with self
observability instruments. Cache these combinations to avoid computation
and allocations on the hot-path of tracing.

### Benchmarks

```console
$ benchstat main_25d02741f.txt cache-trace-obs-sets_05fd6ee.txt
goos: linux
goarch: amd64
pkg: go.opentelemetry.io/otel/sdk/trace
cpu: Intel(R) Core(TM) i7-8550U CPU @ 1.80GHz
                                      │ main_25d02741f.txt │  cache-trace-obs-sets_05fd6ee.txt   │
                                      │       sec/op       │   sec/op     vs base                │
SpanEnd/SelfObservabilityEnabled-8             366.2n ± 5%   229.2n ± 3%  -37.39% (p=0.000 n=10)
TraceStart/SelfObservabilityEnabled-8         1076.0n ± 2%   800.2n ± 2%  -25.63% (p=0.000 n=10)
geomean                                        627.7n        428.3n       -31.76%

                                      │ main_25d02741f.txt │  cache-trace-obs-sets_05fd6ee.txt  │
                                      │        B/op        │    B/op     vs base                │
SpanEnd/SelfObservabilityEnabled-8             192.00 ± 0%   64.00 ± 0%  -66.67% (p=0.000 n=10)
TraceStart/SelfObservabilityEnabled-8           992.0 ± 0%   608.0 ± 0%  -38.71% (p=0.000 n=10)
geomean                                         436.4        197.3       -54.80%

                                      │ main_25d02741f.txt │  cache-trace-obs-sets_05fd6ee.txt  │
                                      │     allocs/op      │ allocs/op   vs base                │
SpanEnd/SelfObservabilityEnabled-8              4.000 ± 0%   2.000 ± 0%  -50.00% (p=0.000 n=10)
TraceStart/SelfObservabilityEnabled-8           9.000 ± 0%   5.000 ± 0%  -44.44% (p=0.000 n=10)
geomean                                         6.000        3.162       -47.30%
```
2025-08-29 08:36:54 -07:00
Tyler Yahn
be1e57fb36 Refactor BSP observability setup (#7264)
Do not rely on side-effects from the configureSelfObservability method.
Instead, initialize with the new pure newBSPObs func.
2025-08-29 08:05:29 -07:00
renovate[bot]
d99c68cb21 chore(deps): update module github.com/mgechev/revive to v1.12.0 (#7269)
This PR contains the following updates:

| Package | Change | Age | Confidence |
|---|---|---|---|
|
[github.com/mgechev/revive](https://redirect.github.com/mgechev/revive)
| `v1.11.0` -> `v1.12.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fmgechev%2frevive/v1.12.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fmgechev%2frevive/v1.11.0/v1.12.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

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

---

### Release Notes

<details>
<summary>mgechev/revive (github.com/mgechev/revive)</summary>

###
[`v1.12.0`](https://redirect.github.com/mgechev/revive/releases/tag/v1.12.0)

[Compare
Source](https://redirect.github.com/mgechev/revive/compare/v1.11.0...v1.12.0)

##### Changelog

-
[`3148906`](3148906153)
chore(deps): update module golang.org/x/sys to v0.35.0
([#&#8203;1466](https://redirect.github.com/mgechev/revive/issues/1466))
-
[`22dfd66`](22dfd66375)
chore(deps): update module golang.org/x/text to v0.28.0
([#&#8203;1467](https://redirect.github.com/mgechev/revive/issues/1467))
-
[`5a1e5fd`](5a1e5fda4c)
chore: Add Copilot instructions
([#&#8203;1437](https://redirect.github.com/mgechev/revive/issues/1437))
-
[`74e4f63`](74e4f6318d)
chore: add macOS test runner
([#&#8203;1465](https://redirect.github.com/mgechev/revive/issues/1465))
-
[`a15fdfd`](a15fdfd322)
chore: clean up GoReleaser config, remove unnecessary hooks
([#&#8203;1422](https://redirect.github.com/mgechev/revive/issues/1422))
-
[`809768c`](809768cffe)
chore: enable formatters in golangci-lint config
([#&#8203;1421](https://redirect.github.com/mgechev/revive/issues/1421))
-
[`c971cb7`](c971cb750b)
chore: improve comments for config files
([#&#8203;1424](https://redirect.github.com/mgechev/revive/issues/1424))
-
[`984b38e`](984b38e246)
chore: improve error reporting in test suite
([#&#8203;1431](https://redirect.github.com/mgechev/revive/issues/1431))
-
[`e5f7980`](e5f7980ca3)
chore: run tests and lint on push to main branch
([#&#8203;1470](https://redirect.github.com/mgechev/revive/issues/1470))
-
[`7de7cf3`](7de7cf3076)
docs: add DeepWiki link to README
([#&#8203;1432](https://redirect.github.com/mgechev/revive/issues/1432))
-
[`154a24f`](154a24fb51)
docs: add info about `golang` code snippets
([#&#8203;1494](https://redirect.github.com/mgechev/revive/issues/1494))
-
[`4a6facc`](4a6facc63c)
docs: add missing use-waitgroup-go TOC entry
([#&#8203;1492](https://redirect.github.com/mgechev/revive/issues/1492))
-
[`40a690d`](40a690dff5)
exported: improve detection and error message
([#&#8203;1403](https://redirect.github.com/mgechev/revive/issues/1403))
-
[`68ac551`](68ac5514f5)
feature: detect identical-branches in switch statements
([#&#8203;1448](https://redirect.github.com/mgechev/revive/issues/1448))
-
[`9fd8adb`](9fd8adbcd0)
feature: detect useless options in spanner struct tag
([#&#8203;1483](https://redirect.github.com/mgechev/revive/issues/1483))
-
[`9fc7dc7`](9fc7dc7d77)
feature: identical-branches: check branches of "if ... else if" chains
([#&#8203;1440](https://redirect.github.com/mgechev/revive/issues/1440))
-
[`2db7034`](2db7034aca)
feature: new rule `use-waitgroup-go`
([#&#8203;1484](https://redirect.github.com/mgechev/revive/issues/1484))
-
[`12d96ad`](12d96adfd4)
feature: new rule enforce-else
([#&#8203;1436](https://redirect.github.com/mgechev/revive/issues/1436))
-
[`f353e4b`](f353e4b0e5)
feature: new rule identical-ifelseif-conditions
([#&#8203;1454](https://redirect.github.com/mgechev/revive/issues/1454))
-
[`3f4591c`](3f4591cd9a)
feature: new rule identical-switch-conditions
([#&#8203;1451](https://redirect.github.com/mgechev/revive/issues/1451))
-
[`15aded9`](15aded98f6)
feature: new rule package-directory-mismatch
([#&#8203;1429](https://redirect.github.com/mgechev/revive/issues/1429))
-
[`fc46c84`](fc46c84cec)
feature: new rule unsecure-url-scheme
([#&#8203;1478](https://redirect.github.com/mgechev/revive/issues/1478))
-
[`84b565b`](84b565b0bf)
feature: new rule useless-fallthrough
([#&#8203;1462](https://redirect.github.com/mgechev/revive/issues/1462))
-
[`4720545`](47205455ea)
feature: new rules `identical-switch-branches` and
`identical-ifelseif-branches`
-
[`14c91fe`](14c91fed1d)
feature: struct-tag warns on (useless) options on ignored fields
([#&#8203;1487](https://redirect.github.com/mgechev/revive/issues/1487))
-
[`f07a47a`](f07a47a1bf)
feature: support spanner struct tag in struct-tag rule
([#&#8203;1479](https://redirect.github.com/mgechev/revive/issues/1479))
-
[`6b060cd`](6b060cd03a)
fix(1438): enforce-switch-style - false positive with pure return based
switch
([#&#8203;1446](https://redirect.github.com/mgechev/revive/issues/1446))
-
[`da50656`](da506562bb)
fix(deps): update module golang.org/x/mod to v0.27.0
([#&#8203;1468](https://redirect.github.com/mgechev/revive/issues/1468))
-
[`74bbe3b`](74bbe3b1a6)
fix(deps): update module golang.org/x/tools to v0.36.0
([#&#8203;1469](https://redirect.github.com/mgechev/revive/issues/1469))
-
[`ccf85a2`](ccf85a25e5)
fix: default formatter generates an extra new line
([#&#8203;1485](https://redirect.github.com/mgechev/revive/issues/1485))
-
[`b969b8b`](b969b8be4a)
modifies-parameter: handle slices.Delete and slices.DeleteFunc
([#&#8203;1427](https://redirect.github.com/mgechev/revive/issues/1427))
-
[`b34c8e9`](b34c8e96ec)
refactor: fix musttag lint issues
([#&#8203;1464](https://redirect.github.com/mgechev/revive/issues/1464))
-
[`9d600b6`](9d600b6df1)
refactor: reduces the number of references to deprecated \*ast.Object
([#&#8203;1473](https://redirect.github.com/mgechev/revive/issues/1473))
-
[`e1d05f7`](e1d05f7a0e)
refactor: remove rule enforce-else
([#&#8203;1495](https://redirect.github.com/mgechev/revive/issues/1495))
-
[`cf49015`](cf4901574e)
refactor: replaces calls to astutils.PickNodes with calls to
astutils.SeekNode when possible
([#&#8203;1482](https://redirect.github.com/mgechev/revive/issues/1482))

</details>

---

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

🔕 **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:eyJjcmVhdGVkSW5WZXIiOiI0MS44Mi43IiwidXBkYXRlZEluVmVyIjoiNDEuODIuNyIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiU2tpcCBDaGFuZ2Vsb2ciLCJkZXBlbmRlbmNpZXMiXX0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-28 16:09:16 -07:00
David Ashpole
0724539e71 Add benchmark for set equality (#7262)
Forked from https://github.com/open-telemetry/opentelemetry-go/pull/7175

```
$ go test -timeout 60s -run=xxxxxMatchNothingxxxxx -test.benchtime=10ms -count 6 -cpu 1 -bench=BenchmarkEquals ./...
goos: linux
goarch: amd64
pkg: go.opentelemetry.io/otel/attribute
cpu: Intel(R) Xeon(R) CPU @ 2.20GHz
BenchmarkEquals/Empty         	 1314884	         9.008 ns/op
BenchmarkEquals/Empty         	 1875915	         8.461 ns/op
BenchmarkEquals/Empty         	 1461613	         7.749 ns/op
BenchmarkEquals/Empty         	 1636912	         9.359 ns/op
BenchmarkEquals/Empty         	 1863039	         6.355 ns/op
BenchmarkEquals/Empty         	 1789053	         6.336 ns/op
BenchmarkEquals/1_string_attribute         	  674168	        16.92 ns/op
BenchmarkEquals/1_string_attribute         	  701983	        16.42 ns/op
BenchmarkEquals/1_string_attribute         	  692001	        16.52 ns/op
BenchmarkEquals/1_string_attribute         	  687970	        16.29 ns/op
BenchmarkEquals/1_string_attribute         	  751766	        16.58 ns/op
BenchmarkEquals/1_string_attribute         	  703534	        16.88 ns/op
BenchmarkEquals/10_string_attributes       	   85400	       137.1 ns/op
BenchmarkEquals/10_string_attributes       	   91045	       136.1 ns/op
BenchmarkEquals/10_string_attributes       	   90973	       150.7 ns/op
BenchmarkEquals/10_string_attributes       	   62877	       177.5 ns/op
BenchmarkEquals/10_string_attributes       	   90780	       194.2 ns/op
BenchmarkEquals/10_string_attributes       	   91058	       144.6 ns/op
BenchmarkEquals/1_int_attribute            	  624625	        18.72 ns/op
BenchmarkEquals/1_int_attribute            	  689478	        16.03 ns/op
BenchmarkEquals/1_int_attribute            	  719173	        15.68 ns/op
BenchmarkEquals/1_int_attribute            	  707005	        16.18 ns/op
BenchmarkEquals/1_int_attribute            	  752048	        15.94 ns/op
BenchmarkEquals/1_int_attribute            	  752034	        16.23 ns/op
BenchmarkEquals/10_int_attributes          	   90302	       132.5 ns/op
BenchmarkEquals/10_int_attributes          	   89929	       131.9 ns/op
BenchmarkEquals/10_int_attributes          	   86578	       135.2 ns/op
BenchmarkEquals/10_int_attributes          	   90482	       133.1 ns/op
BenchmarkEquals/10_int_attributes          	   90255	       132.0 ns/op
BenchmarkEquals/10_int_attributes          	   87615	       134.6 ns/op
PASS
ok  	go.opentelemetry.io/otel/attribute	0.578s
PASS
ok  	go.opentelemetry.io/otel/attribute/internal	0.017s
```

---------

Co-authored-by: Flc゛ <four_leaf_clover@foxmail.com>
Co-authored-by: Robert Pająk <pellared@hotmail.com>
2025-08-28 14:13:55 -04:00
Tyler Yahn
5358fd737d Upgrade semconv dependencies to v1.37.0 (#7260)
Resolve https://github.com/open-telemetry/opentelemetry-go/issues/7255
2025-08-28 11:29:52 +02:00
renovate[bot]
25d02741f7 fix(deps): update module github.com/stretchr/testify to v1.11.1 (#7261)
This PR contains the following updates:

| Package | Change | Age | Confidence |
|---|---|---|---|
|
[github.com/stretchr/testify](https://redirect.github.com/stretchr/testify)
| `v1.11.0` -> `v1.11.1` |
[![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fstretchr%2ftestify/v1.11.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fstretchr%2ftestify/v1.11.0/v1.11.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

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

---

### Release Notes

<details>
<summary>stretchr/testify (github.com/stretchr/testify)</summary>

###
[`v1.11.1`](https://redirect.github.com/stretchr/testify/releases/tag/v1.11.1)

[Compare
Source](https://redirect.github.com/stretchr/testify/compare/v1.11.0...v1.11.1)

This release fixes
[#&#8203;1785](https://redirect.github.com/stretchr/testify/issues/1785)
introduced in v1.11.0 where expected argument values implementing the
stringer interface (`String() string`) with a method which mutates their
value, when passed to mock.Mock.On (`m.On("Method",
<expected>).Return()`) or actual argument values passed to
mock.Mock.Called may no longer match one another where they previously
did match. The behaviour prior to v1.11.0 where the stringer is always
called is restored. Future testify releases may not call the stringer
method at all in this case.

#### What's Changed

- Backport
[#&#8203;1786](https://redirect.github.com/stretchr/testify/issues/1786)
to release/1.11: mock: revert to pre-v1.11.0 argument matching behavior
for mutating stringers by
[@&#8203;brackendawson](https://redirect.github.com/brackendawson) in
[#&#8203;1788](https://redirect.github.com/stretchr/testify/pull/1788)

**Full Changelog**:
<https://github.com/stretchr/testify/compare/v1.11.0...v1.11.1>

</details>

---

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

🔕 **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:eyJjcmVhdGVkSW5WZXIiOiI0MS44Mi43IiwidXBkYXRlZEluVmVyIjoiNDEuODIuNyIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiU2tpcCBDaGFuZ2Vsb2ciLCJkZXBlbmRlbmNpZXMiXX0=-->

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: dmathieu <damien.mathieu@elastic.co>
2025-08-27 20:20:20 +02:00
Owen Williams
d0cab8666b prometheus: Add support for setting Translation Strategy config option (#7111)
As per the specification:
https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/metrics/sdk_exporters/prometheus.md#configuration

This is part of a broader effort to unify the behavior of all the touch
points between open telemetry metrics and prometheus:
https://github.com/prometheus/prometheus/issues/16542

Fixes https://github.com/open-telemetry/opentelemetry-go/issues/6668

---------

Signed-off-by: Owen Williams <owen.williams@grafana.com>
Co-authored-by: Robert Pająk <pellared@hotmail.com>
2025-08-27 13:56:14 -04:00
Tyler Yahn
3342341f15 Generate the semconv/v1.37.0 packages (#7254)
Resolve #7252
2025-08-27 13:24:07 +02:00
renovate[bot]
37320e732f chore(deps): update module github.com/gordonklaus/ineffassign to v0.2.0 (#7259)
This PR contains the following updates:

| Package | Change | Age | Confidence |
|---|---|---|---|
|
[github.com/gordonklaus/ineffassign](https://redirect.github.com/gordonklaus/ineffassign)
| `v0.1.0` -> `v0.2.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fgordonklaus%2fineffassign/v0.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fgordonklaus%2fineffassign/v0.1.0/v0.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

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

---

### Release Notes

<details>
<summary>gordonklaus/ineffassign
(github.com/gordonklaus/ineffassign)</summary>

###
[`v0.2.0`](https://redirect.github.com/gordonklaus/ineffassign/compare/v0.1.0...v0.2.0)

[Compare
Source](https://redirect.github.com/gordonklaus/ineffassign/compare/v0.1.0...v0.2.0)

</details>

---

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

🔕 **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:eyJjcmVhdGVkSW5WZXIiOiI0MS44Mi43IiwidXBkYXRlZEluVmVyIjoiNDEuODIuNyIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiU2tpcCBDaGFuZ2Vsb2ciLCJkZXBlbmRlbmNpZXMiXX0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

Co-authored-by: dmathieu <42@dmathieu.com>
2025-08-27 09:53:36 +02:00
renovate[bot]
444950fa74 chore(deps): update module go.opentelemetry.io/build-tools to v0.27.0 (#7257)
This PR contains the following updates:

| Package | Change | Age | Confidence |
|---|---|---|---|
|
[go.opentelemetry.io/build-tools](https://redirect.github.com/open-telemetry/opentelemetry-go-build-tools)
| `v0.26.2` -> `v0.27.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/go.opentelemetry.io%2fbuild-tools/v0.27.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/go.opentelemetry.io%2fbuild-tools/v0.26.2/v0.27.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

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

---

### Release Notes

<details>
<summary>open-telemetry/opentelemetry-go-build-tools
(go.opentelemetry.io/build-tools)</summary>

###
[`v0.27.0`](https://redirect.github.com/open-telemetry/opentelemetry-go-build-tools/blob/HEAD/CHANGELOG.md#v0270)

[Compare
Source](https://redirect.github.com/open-telemetry/opentelemetry-go-build-tools/compare/v0.26.2...v0.27.0)

##### 💡 Enhancements 💡

- `chloggen`: Add support for YAML files that use the alternate `.yml`
extension
([#&#8203;1079](https://redirect.github.com/open-telemetry/opentelemetry-go-build-tools/issues/1079))

- `checkapi`: Add an option to check the config JSON schema matches the
Config struct.
([#&#8203;1135](https://redirect.github.com/open-telemetry/opentelemetry-go-build-tools/issues/1135))
Add `check_json_schema: true` to the configuration file of checkapi to
enable this option.

- `checkapi`: read the structs in the component's internal packages
([#&#8203;1137](https://redirect.github.com/open-telemetry/opentelemetry-go-build-tools/issues/1137))

</details>

---

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

🔕 **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:eyJjcmVhdGVkSW5WZXIiOiI0MS44Mi43IiwidXBkYXRlZEluVmVyIjoiNDEuODIuNyIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiU2tpcCBDaGFuZ2Vsb2ciLCJkZXBlbmRlbmNpZXMiXX0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-27 09:33:20 +02:00
renovate[bot]
3f1aae23a6 chore(deps): update module github.com/ldez/tagliatelle to v0.7.2 (#7253)
This PR contains the following updates:

| Package | Change | Age | Confidence |
|---|---|---|---|
|
[github.com/ldez/tagliatelle](https://redirect.github.com/ldez/tagliatelle)
| `v0.7.1` -> `v0.7.2` |
[![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fldez%2ftagliatelle/v0.7.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fldez%2ftagliatelle/v0.7.1/v0.7.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

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

---

### Release Notes

<details>
<summary>ldez/tagliatelle (github.com/ldez/tagliatelle)</summary>

###
[`v0.7.2`](https://redirect.github.com/ldez/tagliatelle/compare/v0.7.1...v0.7.2)

[Compare
Source](https://redirect.github.com/ldez/tagliatelle/compare/v0.7.1...v0.7.2)

</details>

---

### 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 becomes conflicted, 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:eyJjcmVhdGVkSW5WZXIiOiI0MS44Mi43IiwidXBkYXRlZEluVmVyIjoiNDEuODIuNyIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiU2tpcCBDaGFuZ2Vsb2ciLCJkZXBlbmRlbmNpZXMiXX0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-26 10:48:10 -07:00
Tyler Yahn
0b47699705 Add AddSet and RecordSet methods to semconv generated packages (#7223)
The current design of the packages is for ergonomics, and it works well
at this. However, it is not the most performant. When a user passes a
slice of attributes it will use
[`metric.WithAttributes`](cf787f3e3a/metric/instrument.go (L372-L376)):

```go
func WithAttributes(attributes ...attribute.KeyValue) MeasurementOption {
	cp := make([]attribute.KeyValue, len(attributes))
	copy(cp, attributes)
	return attrOpt{set: attribute.NewSet(cp...)}
}
```

This will copy the passed attributes and then pass that copy to
`attribute.NewSet` which adds its own allocation.

If a user is performance conscious and already have a set, allow them to
pass it directly and reduce the required allocations for the measurement
call.

## Alternatives Considered

### Why not allow users to just use `Inst()` method?

With the current design a user can still just call:

```go
counter.Inst().Add(ctx, val, metric.WithAttributeSet(set))
```

However, the option slice (in this case `[]metric.AddOption`) is
allocated on the call. Meaning a user will also need to recreate the
pooling that our semconv generated packages already handle.

Providing the `*Set` methods is convenient, but it also helps the
application performance as one larger pool will be less strain on the GC
than many smaller ones.

### Why not just call `WithAttributeSet` in the existing methods?

Instead of appending a `WithAttributes` option internal to all the
measurement methods, we could also just create a `Set` and pass that
with `WithAttributeSet`. This will avoid the additional slice copy that
`WithAttributes` does on top of calling `attribute.NewSet`.

However, this copy that `WithAttributes` does is important as calling
`attribute.NewSet` will sort the original slice. Bypassing that will
mean all the passed attribute slices will be modified when used.

This is not great as it is likely going to be unexpected behavior by the
user, and is the reason we copy the slice in `WithAttributes` in the
first place.

### Why not just copy user attributes to an amortized slice pool to
create a new `attribute.Set`?

The additional creation of an `[]attribute.KeyValue` that user
attributes are copied to in order to prevent modification can be
amortized with a pool. For example, #7249. There shouldn't be any
difference than between calling a `*Set` method introduced here vs the
non-`Set` method.

This is true, and motivates this type of change. However, also providing
these additional methods allows the user additional performance gains if
the set is used for more than one measurement. For example:

```go
set := attributes.NewSet(attrs)
counter1.AddSet(ctx, 1, set)
counter2.AddSet(ctx, 2, set)  // No additional set is created here.
```

Without these methods:

```go
counter1.Add(ctx, 1, attrs...) // A set is created for attrs
counter2.Add(ctx, 2, attrs...) // Another set is created for attrs
```

Each `attribute.Set` created will require an allocation (i.e. the
internal `any` field needs to be allocated to the heap). Meaning without
these methods a user will still not be able to write the most performant
code.

The attribute pool approach has merit, and should be pursued. However,
it does not invalidate the value of these changes.
2025-08-26 09:20:45 -07:00
Tyler Yahn
41f03302cd Amortize measurement option allocations (#7215)
This is not a performance critical exporter, but it is acting as the
foundation for all other self-observability work. We want to ensure
performance is considered for all this other work.

- Do not allocate the add and record measurement option slices.
- Do not allocate the `metric.attrOpt` to head when on default path
(i.e. `WithAttributeSet` or `WithAttributes`)

There are three additional allocations in the self-observability. It
appears these are added in the error scenario where we need to
dynamically build the attributes that are being recorded.

### Benchmarks

```terminal
$ benchstat main-49be00144.txt amortize-opts-stdouttrace.txt
goos: linux
goarch: amd64
pkg: go.opentelemetry.io/otel/exporters/stdout/stdouttrace
cpu: Intel(R) Core(TM) i7-8550U CPU @ 1.80GHz
                                        │ main-49be00144.txt │   amortize-opts-stdouttrace.txt    │
                                        │       sec/op       │   sec/op     vs base               │
ExporterExportSpans/SelfObservability-8          26.89µ ± 3%   27.40µ ± 3%       ~ (p=0.143 n=10)
ExporterExportSpans/NoObservability-8            25.99µ ± 3%   27.22µ ± 2%  +4.76% (p=0.004 n=10)

                                        │ main-49be00144.txt │    amortize-opts-stdouttrace.txt     │
                                        │        B/op        │     B/op      vs base                │
ExporterExportSpans/SelfObservability-8         5.459Ki ± 0%   4.081Ki ± 0%  -25.24% (p=0.000 n=10)
ExporterExportSpans/NoObservability-8           3.873Ki ± 0%   3.873Ki ± 0%        ~ (p=1.000 n=10)

                                        │ main-49be00144.txt │    amortize-opts-stdouttrace.txt     │
                                        │     allocs/op      │ allocs/op   vs base                  │
ExporterExportSpans/SelfObservability-8           80.00 ± 0%   67.00 ± 0%  -16.25% (p=0.000 n=10)
ExporterExportSpans/NoObservability-8             65.00 ± 0%   65.00 ± 0%        ~ (p=1.000 n=10) ¹
¹ all samples are equal
```

## Follow-up

- Investigate if the `semconv` helper packages can be updated to accept
some of this complexity (e.g. add a `AddSet` method that accepts an
`attribute.Set` instead of just `...attribute.KeyValue`).

## Alternatives

A cleaner version is found in
https://github.com/open-telemetry/opentelemetry-go/pull/7226. That
relies on an external [`bind`](https://github.com/MrAlias/bind) package
and the clean up mentioned above.
2025-08-26 09:10:29 -07:00
Tyler Yahn
c8b89e9780 Propagate context to self-observability measurements in sdk/trace (#7209)
Ensures metric functionality that integrates with trace context (e.g.
exemplars) correctly receive the trace context and anything else the
user has passed.
2025-08-26 08:58:35 -07:00
Joe Schafer
49be00144e trace: optimize id parsing and string functions (#6791)
With specialized routines, we can avoid the allocation of
hex.DecodeString since we know the structure of the IDs.

We can use `==` instead of bytes.Equal for arrays. From the Go [spec]:

> Array types are comparable if their array element types are
comparable. Two
> array values are equal if their corresponding element values are
equal. The
> elements are compared in ascending index order, and comparison stops
as soon
> as two element values differ (or all elements have been compared).

[spec]: https://go.dev/ref/spec#Comparison_operators

### Benchstat

To generate:
```sh
mkdir private
cd sdk
go test -run=xxxxMatchNothingxxxx -bench=. -count=10 go.opentelemetry.io/otel/sdk/trace -timeout=30m | tee ../private/base.txt
go test -run=xxxxMatchNothingxxxx -bench=. -count=10 go.opentelemetry.io/otel/sdk/trace -timeout=30m | tee ../private/new.txt
benchstat ../private/base.txt ../private/new.txt
```

### Results as of 2025-08-21
```
goos: darwin
goarch: arm64
pkg: go.opentelemetry.io/otel/sdk/trace
cpu: Apple M2 Max
                                              │ ../private/base.txt │          ../private/new.txt           │
                                              │       sec/op        │    sec/op      vs base                │
Truncate/Unlimited-12                                 0.2274n ±  2%   0.2262n ±  1%        ~ (p=0.971 n=10)
Truncate/Zero-12                                      0.3252n ±  1%   0.3267n ±  1%        ~ (p=0.171 n=10)
Truncate/Short-12                                     0.2250n ±  1%   0.2247n ±  1%        ~ (p=0.897 n=10)
Truncate/ASCII-12                                     0.7280n ±  0%   0.7297n ±  0%        ~ (p=0.159 n=10)
Truncate/ValidUTF-8-12                                 1.373n ±  3%    1.376n ±  9%        ~ (p=0.084 n=10)
Truncate/InvalidUTF-8-12                               9.605n ±  4%    9.724n ±  7%        ~ (p=0.289 n=10)
Truncate/MixedUTF-8-12                                 17.54n ±  2%    17.56n ±  1%        ~ (p=0.839 n=10)
RecordingSpanSetAttributes/WithLimit/false-12          2.046µ ±  1%    2.055µ ±  1%        ~ (p=0.383 n=10)
RecordingSpanSetAttributes/WithLimit/true-12           4.329µ ±  0%    4.335µ ±  0%        ~ (p=0.108 n=10)
SpanEnd-12                                             90.10n ± 30%   102.26n ± 20%        ~ (p=0.143 n=10)
TraceStart/with_a_simple_span-12                       300.4n ±  7%    290.1n ±  4%        ~ (p=0.353 n=10)
TraceStart/with_several_links-12                       416.8n ±  3%    407.0n ±  2%   -2.34% (p=0.014 n=10)
TraceStart/with_attributes-12                          460.6n ±  1%    446.5n ±  2%   -3.04% (p=0.000 n=10)
SpanLimits/AttributeValueLengthLimit-12                4.425µ ±  3%    4.254µ ±  1%   -3.86% (p=0.000 n=10)
SpanLimits/AttributeCountLimit-12                      4.138µ ±  1%    3.986µ ±  1%   -3.65% (p=0.000 n=10)
SpanLimits/EventCountLimit-12                          3.926µ ±  1%    3.780µ ±  1%   -3.73% (p=0.000 n=10)
SpanLimits/LinkCountLimit-12                           3.879µ ±  1%    3.738µ ±  1%   -3.64% (p=0.000 n=10)
SpanLimits/AttributePerEventCountLimit-12              4.249µ ±  1%    4.216µ ±  1%        ~ (p=0.066 n=10)
SpanLimits/AttributePerLinkCountLimit-12               4.175µ ±  1%    4.226µ ±  0%   +1.22% (p=0.037 n=10)
SpanSetAttributesOverCapacity-12                       1.648µ ±  0%    1.635µ ±  6%        ~ (p=0.382 n=10)
StartEndSpan/AlwaysSample-12                           305.3n ±  1%    298.9n ±  2%   -2.10% (p=0.045 n=10)
StartEndSpan/NeverSample-12                            137.0n ±  0%    132.9n ±  0%   -3.03% (p=0.000 n=10)
SpanWithAttributes_4/AlwaysSample-12                   516.3n ±  1%    507.6n ±  0%   -1.68% (p=0.000 n=10)
SpanWithAttributes_4/NeverSample-12                    228.7n ±  1%    221.8n ±  1%   -3.00% (p=0.000 n=10)
SpanWithAttributes_8/AlwaysSample-12                   706.6n ±  1%    689.0n ±  0%   -2.50% (p=0.000 n=10)
SpanWithAttributes_8/NeverSample-12                    313.0n ±  1%    307.1n ±  0%   -1.87% (p=0.000 n=10)
SpanWithAttributes_all/AlwaysSample-12                 565.0n ±  1%    560.8n ±  0%   -0.75% (p=0.002 n=10)
SpanWithAttributes_all/NeverSample-12                  251.2n ±  1%    247.5n ±  4%   -1.45% (p=0.034 n=10)
SpanWithAttributes_all_2x/AlwaysSample-12              823.4n ±  1%    812.0n ±  1%   -1.39% (p=0.028 n=10)
SpanWithAttributes_all_2x/NeverSample-12               368.8n ±  1%    360.6n ±  0%   -2.22% (p=0.000 n=10)
SpanWithEvents_4/AlwaysSample-12                       709.3n ±  0%    699.6n ±  0%   -1.37% (p=0.000 n=10)
SpanWithEvents_4/NeverSample-12                        139.4n ±  0%    137.0n ±  0%   -1.72% (p=0.000 n=10)
SpanWithEvents_8/AlwaysSample-12                       1.091µ ±  1%    1.073µ ±  0%   -1.60% (p=0.000 n=10)
SpanWithEvents_8/NeverSample-12                        142.1n ±  0%    140.1n ±  0%   -1.41% (p=0.000 n=10)
SpanWithEvents_WithStackTrace/AlwaysSample-12          424.6n ±  0%    417.9n ±  0%   -1.57% (p=0.000 n=10)
SpanWithEvents_WithStackTrace/NeverSample-12           151.3n ±  0%    148.1n ±  0%   -2.15% (p=0.000 n=10)
SpanWithEvents_WithTimestamp/AlwaysSample-12           412.6n ±  0%    407.6n ±  0%   -1.19% (p=0.000 n=10)
SpanWithEvents_WithTimestamp/NeverSample-12            174.5n ±  0%    172.7n ±  0%   -1.03% (p=0.000 n=10)
TraceIDFromHex-12                                      57.22n ±  0%    15.88n ±  0%  -72.25% (p=0.000 n=10)
SpanIDFromHex-12                                      35.000n ±  0%    8.676n ±  0%  -75.21% (p=0.000 n=10)
TraceID_DotString-12                                   42.39n ±  0%    24.22n ±  0%  -42.85% (p=0.000 n=10)
SpanID_DotString-12                                    31.41n ±  0%    16.98n ±  0%  -45.94% (p=0.000 n=10)
SpanProcessorOnEnd/batch:_10,_spans:_10-12             164.0n ±  0%    163.8n ±  0%   -0.12% (p=0.021 n=10)
SpanProcessorOnEnd/batch:_10,_spans:_100-12            1.640µ ±  0%    1.637µ ±  0%   -0.18% (p=0.016 n=10)
SpanProcessorOnEnd/batch:_100,_spans:_10-12            164.0n ±  0%    163.7n ±  0%   -0.18% (p=0.000 n=10)
SpanProcessorOnEnd/batch:_100,_spans:_100-12           1.641µ ±  0%    1.636µ ±  0%   -0.30% (p=0.000 n=10)
SpanProcessorVerboseLogging-12                         6.413µ ±  2%    6.444µ ±  5%        ~ (p=0.424 n=10)
geomean                                                204.9n          187.0n         -8.69%

                                              │ ../private/base.txt │            ../private/new.txt             │
                                              │        B/op         │     B/op      vs base                     │
Truncate/Unlimited-12                                  0.000 ± 0%       0.000 ± 0%         ~ (p=1.000 n=10) ¹
Truncate/Zero-12                                       0.000 ± 0%       0.000 ± 0%         ~ (p=1.000 n=10) ¹
Truncate/Short-12                                      0.000 ± 0%       0.000 ± 0%         ~ (p=1.000 n=10) ¹
Truncate/ASCII-12                                      0.000 ± 0%       0.000 ± 0%         ~ (p=1.000 n=10) ¹
Truncate/ValidUTF-8-12                                 0.000 ± 0%       0.000 ± 0%         ~ (p=1.000 n=10) ¹
Truncate/InvalidUTF-8-12                               16.00 ± 0%       16.00 ± 0%         ~ (p=1.000 n=10) ¹
Truncate/MixedUTF-8-12                                 32.00 ± 0%       32.00 ± 0%         ~ (p=1.000 n=10) ¹
RecordingSpanSetAttributes/WithLimit/false-12        6.891Ki ± 0%     6.891Ki ± 0%         ~ (p=1.000 n=10) ¹
RecordingSpanSetAttributes/WithLimit/true-12         7.023Ki ± 0%     7.023Ki ± 0%         ~ (p=1.000 n=10) ¹
SpanEnd-12                                             0.000 ± 0%       0.000 ± 0%         ~ (p=1.000 n=10) ¹
TraceStart/with_a_simple_span-12                       528.0 ± 0%       528.0 ± 0%         ~ (p=1.000 n=10) ¹
TraceStart/with_several_links-12                       704.0 ± 0%       704.0 ± 0%         ~ (p=1.000 n=10) ¹
TraceStart/with_attributes-12                          784.0 ± 0%       784.0 ± 0%         ~ (p=1.000 n=10) ¹
SpanLimits/AttributeValueLengthLimit-12              10.56Ki ± 0%     10.56Ki ± 0%         ~ (p=1.000 n=10) ¹
SpanLimits/AttributeCountLimit-12                    9.844Ki ± 0%     9.844Ki ± 0%         ~ (p=1.000 n=10) ¹
SpanLimits/EventCountLimit-12                        9.422Ki ± 0%     9.422Ki ± 0%         ~ (p=1.000 n=10) ¹
SpanLimits/LinkCountLimit-12                         9.031Ki ± 0%     9.031Ki ± 0%         ~ (p=1.000 n=10) ¹
SpanLimits/AttributePerEventCountLimit-12            10.47Ki ± 0%     10.47Ki ± 0%         ~ (p=1.000 n=10) ¹
SpanLimits/AttributePerLinkCountLimit-12             10.47Ki ± 0%     10.47Ki ± 0%         ~ (p=1.000 n=10) ¹
SpanSetAttributesOverCapacity-12                       592.0 ± 0%       592.0 ± 0%         ~ (p=1.000 n=10) ¹
StartEndSpan/AlwaysSample-12                           528.0 ± 0%       528.0 ± 0%         ~ (p=1.000 n=10) ¹
StartEndSpan/NeverSample-12                            144.0 ± 0%       144.0 ± 0%         ~ (p=1.000 n=10) ¹
SpanWithAttributes_4/AlwaysSample-12                 1.016Ki ± 0%     1.016Ki ± 0%         ~ (p=1.000 n=10) ¹
SpanWithAttributes_4/NeverSample-12                    400.0 ± 0%       400.0 ± 0%         ~ (p=1.000 n=10) ¹
SpanWithAttributes_8/AlwaysSample-12                 1.516Ki ± 0%     1.516Ki ± 0%         ~ (p=1.000 n=10) ¹
SpanWithAttributes_8/NeverSample-12                    656.0 ± 0%       656.0 ± 0%         ~ (p=1.000 n=10) ¹
SpanWithAttributes_all/AlwaysSample-12               1.141Ki ± 0%     1.141Ki ± 0%         ~ (p=1.000 n=10) ¹
SpanWithAttributes_all/NeverSample-12                  464.0 ± 0%       464.0 ± 0%         ~ (p=1.000 n=10) ¹
SpanWithAttributes_all_2x/AlwaysSample-12            1.891Ki ± 0%     1.891Ki ± 0%         ~ (p=1.000 n=10) ¹
SpanWithAttributes_all_2x/NeverSample-12               848.0 ± 0%       848.0 ± 0%         ~ (p=1.000 n=10) ¹
SpanWithEvents_4/AlwaysSample-12                     1.016Ki ± 0%     1.016Ki ± 0%         ~ (p=1.000 n=10) ¹
SpanWithEvents_4/NeverSample-12                        144.0 ± 0%       144.0 ± 0%         ~ (p=1.000 n=10) ¹
SpanWithEvents_8/AlwaysSample-12                     1.641Ki ± 0%     1.641Ki ± 0%         ~ (p=1.000 n=10) ¹
SpanWithEvents_8/NeverSample-12                        144.0 ± 0%       144.0 ± 0%         ~ (p=1.000 n=10) ¹
SpanWithEvents_WithStackTrace/AlwaysSample-12          624.0 ± 0%       624.0 ± 0%         ~ (p=1.000 n=10) ¹
SpanWithEvents_WithStackTrace/NeverSample-12           160.0 ± 0%       160.0 ± 0%         ~ (p=1.000 n=10) ¹
SpanWithEvents_WithTimestamp/AlwaysSample-12           648.0 ± 0%       648.0 ± 0%         ~ (p=1.000 n=10) ¹
SpanWithEvents_WithTimestamp/NeverSample-12            184.0 ± 0%       184.0 ± 0%         ~ (p=1.000 n=10) ¹
TraceIDFromHex-12                                      16.00 ± 0%        0.00 ± 0%  -100.00% (p=0.000 n=10)
SpanIDFromHex-12                                       8.000 ± 0%       0.000 ± 0%  -100.00% (p=0.000 n=10)
SpanProcessorOnEnd/batch:_10,_spans:_10-12             0.000 ± 0%       0.000 ± 0%         ~ (p=1.000 n=10) ¹
SpanProcessorOnEnd/batch:_10,_spans:_100-12            0.000 ± 0%       0.000 ± 0%         ~ (p=1.000 n=10) ¹
SpanProcessorOnEnd/batch:_100,_spans:_10-12            0.000 ± 0%       0.000 ± 0%         ~ (p=1.000 n=10) ¹
SpanProcessorOnEnd/batch:_100,_spans:_100-12           0.000 ± 0%       0.000 ± 0%         ~ (p=1.000 n=10) ¹
SpanProcessorVerboseLogging-12                       9.562Ki ± 0%     9.562Ki ± 0%         ~ (p=1.000 n=10) ¹
geomean                                                           ²                 ?                       ² ³
¹ all samples are equal
² summaries must be >0 to compute geomean
³ ratios must be >0 to compute geomean

                                              │ ../private/base.txt │           ../private/new.txt            │
                                              │      allocs/op      │ allocs/op   vs base                     │
Truncate/Unlimited-12                                  0.000 ± 0%     0.000 ± 0%         ~ (p=1.000 n=10) ¹
Truncate/Zero-12                                       0.000 ± 0%     0.000 ± 0%         ~ (p=1.000 n=10) ¹
Truncate/Short-12                                      0.000 ± 0%     0.000 ± 0%         ~ (p=1.000 n=10) ¹
Truncate/ASCII-12                                      0.000 ± 0%     0.000 ± 0%         ~ (p=1.000 n=10) ¹
Truncate/ValidUTF-8-12                                 0.000 ± 0%     0.000 ± 0%         ~ (p=1.000 n=10) ¹
Truncate/InvalidUTF-8-12                               1.000 ± 0%     1.000 ± 0%         ~ (p=1.000 n=10) ¹
Truncate/MixedUTF-8-12                                 1.000 ± 0%     1.000 ± 0%         ~ (p=1.000 n=10) ¹
RecordingSpanSetAttributes/WithLimit/false-12          3.000 ± 0%     3.000 ± 0%         ~ (p=1.000 n=10) ¹
RecordingSpanSetAttributes/WithLimit/true-12           10.00 ± 0%     10.00 ± 0%         ~ (p=1.000 n=10) ¹
SpanEnd-12                                             0.000 ± 0%     0.000 ± 0%         ~ (p=1.000 n=10) ¹
TraceStart/with_a_simple_span-12                       2.000 ± 0%     2.000 ± 0%         ~ (p=1.000 n=10) ¹
TraceStart/with_several_links-12                       3.000 ± 0%     3.000 ± 0%         ~ (p=1.000 n=10) ¹
TraceStart/with_attributes-12                          4.000 ± 0%     4.000 ± 0%         ~ (p=1.000 n=10) ¹
SpanLimits/AttributeValueLengthLimit-12                41.00 ± 0%     41.00 ± 0%         ~ (p=1.000 n=10) ¹
SpanLimits/AttributeCountLimit-12                      38.00 ± 0%     38.00 ± 0%         ~ (p=1.000 n=10) ¹
SpanLimits/EventCountLimit-12                          35.00 ± 0%     35.00 ± 0%         ~ (p=1.000 n=10) ¹
SpanLimits/LinkCountLimit-12                           35.00 ± 0%     35.00 ± 0%         ~ (p=1.000 n=10) ¹
SpanLimits/AttributePerEventCountLimit-12              38.00 ± 0%     38.00 ± 0%         ~ (p=1.000 n=10) ¹
SpanLimits/AttributePerLinkCountLimit-12               38.00 ± 0%     38.00 ± 0%         ~ (p=1.000 n=10) ¹
SpanSetAttributesOverCapacity-12                       3.000 ± 0%     3.000 ± 0%         ~ (p=1.000 n=10) ¹
StartEndSpan/AlwaysSample-12                           2.000 ± 0%     2.000 ± 0%         ~ (p=1.000 n=10) ¹
StartEndSpan/NeverSample-12                            2.000 ± 0%     2.000 ± 0%         ~ (p=1.000 n=10) ¹
SpanWithAttributes_4/AlwaysSample-12                   4.000 ± 0%     4.000 ± 0%         ~ (p=1.000 n=10) ¹
SpanWithAttributes_4/NeverSample-12                    3.000 ± 0%     3.000 ± 0%         ~ (p=1.000 n=10) ¹
SpanWithAttributes_8/AlwaysSample-12                   4.000 ± 0%     4.000 ± 0%         ~ (p=1.000 n=10) ¹
SpanWithAttributes_8/NeverSample-12                    3.000 ± 0%     3.000 ± 0%         ~ (p=1.000 n=10) ¹
SpanWithAttributes_all/AlwaysSample-12                 4.000 ± 0%     4.000 ± 0%         ~ (p=1.000 n=10) ¹
SpanWithAttributes_all/NeverSample-12                  3.000 ± 0%     3.000 ± 0%         ~ (p=1.000 n=10) ¹
SpanWithAttributes_all_2x/AlwaysSample-12              4.000 ± 0%     4.000 ± 0%         ~ (p=1.000 n=10) ¹
SpanWithAttributes_all_2x/NeverSample-12               3.000 ± 0%     3.000 ± 0%         ~ (p=1.000 n=10) ¹
SpanWithEvents_4/AlwaysSample-12                       5.000 ± 0%     5.000 ± 0%         ~ (p=1.000 n=10) ¹
SpanWithEvents_4/NeverSample-12                        2.000 ± 0%     2.000 ± 0%         ~ (p=1.000 n=10) ¹
SpanWithEvents_8/AlwaysSample-12                       6.000 ± 0%     6.000 ± 0%         ~ (p=1.000 n=10) ¹
SpanWithEvents_8/NeverSample-12                        2.000 ± 0%     2.000 ± 0%         ~ (p=1.000 n=10) ¹
SpanWithEvents_WithStackTrace/AlwaysSample-12          4.000 ± 0%     4.000 ± 0%         ~ (p=1.000 n=10) ¹
SpanWithEvents_WithStackTrace/NeverSample-12           3.000 ± 0%     3.000 ± 0%         ~ (p=1.000 n=10) ¹
SpanWithEvents_WithTimestamp/AlwaysSample-12           5.000 ± 0%     5.000 ± 0%         ~ (p=1.000 n=10) ¹
SpanWithEvents_WithTimestamp/NeverSample-12            4.000 ± 0%     4.000 ± 0%         ~ (p=1.000 n=10) ¹
TraceIDFromHex-12                                      1.000 ± 0%     0.000 ± 0%  -100.00% (p=0.000 n=10)
SpanIDFromHex-12                                       1.000 ± 0%     0.000 ± 0%  -100.00% (p=0.000 n=10)
SpanProcessorOnEnd/batch:_10,_spans:_10-12             0.000 ± 0%     0.000 ± 0%         ~ (p=1.000 n=10) ¹
SpanProcessorOnEnd/batch:_10,_spans:_100-12            0.000 ± 0%     0.000 ± 0%         ~ (p=1.000 n=10) ¹
SpanProcessorOnEnd/batch:_100,_spans:_10-12            0.000 ± 0%     0.000 ± 0%         ~ (p=1.000 n=10) ¹
SpanProcessorOnEnd/batch:_100,_spans:_100-12           0.000 ± 0%     0.000 ± 0%         ~ (p=1.000 n=10) ¹
SpanProcessorVerboseLogging-12                         36.00 ± 0%     36.00 ± 0%         ~ (p=1.000 n=10) ¹
geomean                                                           ²               ?                       ² ³
¹ all samples are equal
² summaries must be >0 to compute geomean
³ ratios must be >0 to compute geomean
```

Issue: #6721
2025-08-26 14:54:11 +02:00
Cijo Thomas
2512a6b087 Clarify overflow attribute description in doc.go to indicate it is boolean true (#7247)
and not string "true"

---------

Co-authored-by: Robert Pająk <pellared@hotmail.com>
Co-authored-by: Damien Mathieu <42@dmathieu.com>
2025-08-26 11:04:11 +02:00
Tyler Yahn
45bb4ba720 Add copyright header to generated semconv packages (#7248) 2025-08-26 08:20:56 +02:00
renovate[bot]
d07af7c027 chore(deps): update google.golang.org/genproto/googleapis/api digest to c5933d9 (#7250)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[google.golang.org/genproto/googleapis/api](https://redirect.github.com/googleapis/go-genproto)
| indirect | digest | `3122310` -> `c5933d9` |

---

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

---

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

🔕 **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:eyJjcmVhdGVkSW5WZXIiOiI0MS44Mi43IiwidXBkYXRlZEluVmVyIjoiNDEuODIuNyIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiU2tpcCBDaGFuZ2Vsb2ciLCJkZXBlbmRlbmNpZXMiXX0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-25 16:05:18 -07:00
renovate[bot]
e6c8bdcd86 fix(deps): update google.golang.org/genproto/googleapis/rpc digest to c5933d9 (#7246) 2025-08-25 18:48:10 +02:00
Joe Stephenson
a8e15000b6 sdk/log: Deduplicate key-value collections in Record.SetBody (#7002)
Fixes #6982 

```
goos: darwin
goarch: arm64
pkg: go.opentelemetry.io/otel/sdk/log
cpu: Apple M2 Pro
                   │   old.txt    │               new.txt               │
                   │    sec/op    │   sec/op     vs base                │
SetBody/SetBody-12   196.5n ± 14%   365.9n ± 4%  +86.26% (p=0.000 n=10)

                   │  old.txt   │            new.txt             │
                   │    B/op    │    B/op     vs base            │
SetBody/SetBody-12   363.0 ± 0%   363.0 ± 0%  ~ (p=1.000 n=10) ¹
¹ all samples are equal

                   │  old.txt   │            new.txt             │
                   │ allocs/op  │ allocs/op   vs base            │
SetBody/SetBody-12   4.000 ± 0%   4.000 ± 0%  ~ (p=1.000 n=10) ¹
¹ all samples are equal
```

---------

Co-authored-by: Robert Pająk <pellared@hotmail.com>
2025-08-25 18:25:57 +02:00
Yevhenii Solomchenko
3cd63fab03 sdk/metric: Add Documentation for Cardinality Limits (#7179)
Fixes #6979
Towards #6887

## What

- Documentation includes a section on cardinality limits.
- Adding guidance around what cardinality is, why it is important to
consider, how to control it, and what defaults the SDK provides

---------

Co-authored-by: Robert Pająk <pellared@hotmail.com>
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
2025-08-25 18:15:56 +02:00
Flc゛
691b4b46e1 fix: correct package import paths (#7244) 2025-08-25 17:51:06 +02:00
Tyler Yahn
4b2bef6dd9 [chore] Upgrade semconv pkg use to v1.36.0 (#7237)
Fix #7236
2025-08-25 16:33:34 +02:00
Tyler Yahn
ebd324842f Return early in semconv generated packages if no attributes passed (#7222)
- Reduces unnecessary allocations for empty attribute
- Fixes case where we were double recording for `Record` methods
2025-08-25 16:20:11 +02:00
Tyler Yahn
e7fa5ba72f Fix CPUModeSystem variable name (#7233)
Do not trim a package prefix when it is the same as the package name.
Assume the name itself has semantic meaning and will not stutter.

Fix #7232
2025-08-25 16:06:50 +02:00
Tyler Yahn
be28c6bc8f Wrap Float64ObservableCounter with system.CPUTime (#7235)
Fix #7234 

Addresses revert of [`cpu` to `system`
namespace](https://github.com/open-telemetry/semantic-conventions/pull/1896)
in semantic conventions.
2025-08-25 15:51:01 +02:00
renovate[bot]
712e373ea5 chore(deps): update lycheeverse/lychee-action action to v2.6.1 (#7243) 2025-08-25 14:54:48 +02:00
renovate[bot]
713a1d9a2a fix(deps): update module github.com/stretchr/testify to v1.11.0 (#7242)
This PR contains the following updates:

| Package | Change | Age | Confidence |
|---|---|---|---|
|
[github.com/stretchr/testify](https://redirect.github.com/stretchr/testify)
| `v1.10.0` -> `v1.11.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fstretchr%2ftestify/v1.11.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fstretchr%2ftestify/v1.10.0/v1.11.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

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

---

### Release Notes

<details>
<summary>stretchr/testify (github.com/stretchr/testify)</summary>

###
[`v1.11.0`](https://redirect.github.com/stretchr/testify/releases/tag/v1.11.0)

[Compare
Source](https://redirect.github.com/stretchr/testify/compare/v1.10.0...v1.11.0)

#### What's Changed

##### Functional Changes

v1.11.0 Includes a number of performance improvements.

- Call stack perf change for CallerInfo by
[@&#8203;mikeauclair](https://redirect.github.com/mikeauclair) in
[#&#8203;1614](https://redirect.github.com/stretchr/testify/pull/1614)
- Lazily render mock diff output on successful match by
[@&#8203;mikeauclair](https://redirect.github.com/mikeauclair) in
[#&#8203;1615](https://redirect.github.com/stretchr/testify/pull/1615)
- assert: check early in Eventually, EventuallyWithT, and Never by
[@&#8203;cszczepaniak](https://redirect.github.com/cszczepaniak) in
[#&#8203;1427](https://redirect.github.com/stretchr/testify/pull/1427)
- assert: add IsNotType by
[@&#8203;bartventer](https://redirect.github.com/bartventer) in
[#&#8203;1730](https://redirect.github.com/stretchr/testify/pull/1730)
- assert.JSONEq: shortcut if same strings by
[@&#8203;dolmen](https://redirect.github.com/dolmen) in
[#&#8203;1754](https://redirect.github.com/stretchr/testify/pull/1754)
- assert.YAMLEq: shortcut if same strings by
[@&#8203;dolmen](https://redirect.github.com/dolmen) in
[#&#8203;1755](https://redirect.github.com/stretchr/testify/pull/1755)
- assert: faster and simpler isEmpty using reflect.Value.IsZero by
[@&#8203;dolmen](https://redirect.github.com/dolmen) in
[#&#8203;1761](https://redirect.github.com/stretchr/testify/pull/1761)
- suite: faster methods filtering (internal refactor) by
[@&#8203;dolmen](https://redirect.github.com/dolmen) in
[#&#8203;1758](https://redirect.github.com/stretchr/testify/pull/1758)

##### Fixes

- assert.ErrorAs: log target type by
[@&#8203;craig65535](https://redirect.github.com/craig65535) in
[#&#8203;1345](https://redirect.github.com/stretchr/testify/pull/1345)
- Fix failure message formatting for Positive and Negative asserts in
[#&#8203;1062](https://redirect.github.com/stretchr/testify/pull/1062)
- Improve ErrorIs message when error is nil but an error was expected by
[@&#8203;tsioftas](https://redirect.github.com/tsioftas) in
[#&#8203;1681](https://redirect.github.com/stretchr/testify/pull/1681)
- fix Subset/NotSubset when calling with mixed input types by
[@&#8203;siliconbrain](https://redirect.github.com/siliconbrain) in
[#&#8203;1729](https://redirect.github.com/stretchr/testify/pull/1729)
- Improve ErrorAs failure message when error is nil by
[@&#8203;ccoVeille](https://redirect.github.com/ccoVeille) in
[#&#8203;1734](https://redirect.github.com/stretchr/testify/pull/1734)
- mock.AssertNumberOfCalls: improve error msg by
[@&#8203;3scalation](https://redirect.github.com/3scalation) in
[#&#8203;1743](https://redirect.github.com/stretchr/testify/pull/1743)

##### Documentation, Build & CI

- docs: Fix typo in README by
[@&#8203;alexandear](https://redirect.github.com/alexandear) in
[#&#8203;1688](https://redirect.github.com/stretchr/testify/pull/1688)
- Replace deprecated io/ioutil with io and os by
[@&#8203;alexandear](https://redirect.github.com/alexandear) in
[#&#8203;1684](https://redirect.github.com/stretchr/testify/pull/1684)
- Document consequences of calling t.FailNow() by
[@&#8203;greg0ire](https://redirect.github.com/greg0ire) in
[#&#8203;1710](https://redirect.github.com/stretchr/testify/pull/1710)
- chore: update docs for Unset
[#&#8203;1621](https://redirect.github.com/stretchr/testify/issues/1621)
by [@&#8203;techfg](https://redirect.github.com/techfg) in
[#&#8203;1709](https://redirect.github.com/stretchr/testify/pull/1709)
- README: apply gofmt to examples by
[@&#8203;alexandear](https://redirect.github.com/alexandear) in
[#&#8203;1687](https://redirect.github.com/stretchr/testify/pull/1687)
- refactor: use %q and %T to simplify fmt.Sprintf by
[@&#8203;alexandear](https://redirect.github.com/alexandear) in
[#&#8203;1674](https://redirect.github.com/stretchr/testify/pull/1674)
- Propose Christophe Colombier (ccoVeille) as approver by
[@&#8203;brackendawson](https://redirect.github.com/brackendawson) in
[#&#8203;1716](https://redirect.github.com/stretchr/testify/pull/1716)
- Update documentation for the Error function in assert or require
package by [@&#8203;architagr](https://redirect.github.com/architagr) in
[#&#8203;1675](https://redirect.github.com/stretchr/testify/pull/1675)
- assert: remove deprecated build constraints by
[@&#8203;alexandear](https://redirect.github.com/alexandear) in
[#&#8203;1671](https://redirect.github.com/stretchr/testify/pull/1671)
- assert: apply gofumpt to internal test suite by
[@&#8203;ccoVeille](https://redirect.github.com/ccoVeille) in
[#&#8203;1739](https://redirect.github.com/stretchr/testify/pull/1739)
- CI: fix shebang in .ci.\*.sh scripts by
[@&#8203;dolmen](https://redirect.github.com/dolmen) in
[#&#8203;1746](https://redirect.github.com/stretchr/testify/pull/1746)
- assert,require: enable parallel testing on (almost) all top tests by
[@&#8203;dolmen](https://redirect.github.com/dolmen) in
[#&#8203;1747](https://redirect.github.com/stretchr/testify/pull/1747)
- suite.Passed: add one more status test report by
[@&#8203;Ararsa-Derese](https://redirect.github.com/Ararsa-Derese) in
[#&#8203;1706](https://redirect.github.com/stretchr/testify/pull/1706)
- Add Helper() method in internal mocks and assert.CollectT by
[@&#8203;dolmen](https://redirect.github.com/dolmen) in
[#&#8203;1423](https://redirect.github.com/stretchr/testify/pull/1423)
- assert.Same/NotSame: improve usage of Sprintf by
[@&#8203;ccoVeille](https://redirect.github.com/ccoVeille) in
[#&#8203;1742](https://redirect.github.com/stretchr/testify/pull/1742)
- mock: enable parallel testing on internal testsuite by
[@&#8203;dolmen](https://redirect.github.com/dolmen) in
[#&#8203;1756](https://redirect.github.com/stretchr/testify/pull/1756)
- suite: cleanup use of 'testing' internals at runtime by
[@&#8203;dolmen](https://redirect.github.com/dolmen) in
[#&#8203;1751](https://redirect.github.com/stretchr/testify/pull/1751)
- assert: check test failure message for Empty and NotEmpty by
[@&#8203;ccoVeille](https://redirect.github.com/ccoVeille) in
[#&#8203;1745](https://redirect.github.com/stretchr/testify/pull/1745)
- deps: fix dependency cycle with objx (again) by
[@&#8203;dolmen](https://redirect.github.com/dolmen) in
[#&#8203;1567](https://redirect.github.com/stretchr/testify/pull/1567)
- assert.Empty: comprehensive doc of "Empty"-ness rules by
[@&#8203;dolmen](https://redirect.github.com/dolmen) in
[#&#8203;1753](https://redirect.github.com/stretchr/testify/pull/1753)
- doc: improve godoc of top level 'testify' package by
[@&#8203;dolmen](https://redirect.github.com/dolmen) in
[#&#8203;1760](https://redirect.github.com/stretchr/testify/pull/1760)
- assert.ErrorAs: simplify retrieving the type name by
[@&#8203;ccoVeille](https://redirect.github.com/ccoVeille) in
[#&#8203;1740](https://redirect.github.com/stretchr/testify/pull/1740)
- assert.EqualValues: improve test coverage to 100% by
[@&#8203;dolmen](https://redirect.github.com/dolmen) in
[#&#8203;1763](https://redirect.github.com/stretchr/testify/pull/1763)
- suite.Run: simplify running of Setup/TeardownSuite by
[@&#8203;renzoarreaza](https://redirect.github.com/renzoarreaza) in
[#&#8203;1769](https://redirect.github.com/stretchr/testify/pull/1769)
- assert.CallerInfo: micro optimization by using LastIndexByte by
[@&#8203;dolmen](https://redirect.github.com/dolmen) in
[#&#8203;1767](https://redirect.github.com/stretchr/testify/pull/1767)
- assert.CallerInfo: micro cleanup by
[@&#8203;dolmen](https://redirect.github.com/dolmen) in
[#&#8203;1768](https://redirect.github.com/stretchr/testify/pull/1768)
- assert: refactor Test*FileExists and Test*DirExists tests to enable
parallel testing by [@&#8203;dolmen](https://redirect.github.com/dolmen)
in
[#&#8203;1766](https://redirect.github.com/stretchr/testify/pull/1766)
- suite.Run: refactor handling of stats for improved readability by
[@&#8203;dolmen](https://redirect.github.com/dolmen) in
[#&#8203;1764](https://redirect.github.com/stretchr/testify/pull/1764)
- tests: improve captureTestingT helper by
[@&#8203;ccoVeille](https://redirect.github.com/ccoVeille) in
[#&#8203;1741](https://redirect.github.com/stretchr/testify/pull/1741)
- build(deps): bump actions/checkout from 4 to 5 by
[@&#8203;dependabot](https://redirect.github.com/dependabot)\[bot] in
[#&#8203;1778](https://redirect.github.com/stretchr/testify/pull/1778)

#### New Contributors

- [@&#8203;greg0ire](https://redirect.github.com/greg0ire) made their
first contribution in
[#&#8203;1710](https://redirect.github.com/stretchr/testify/pull/1710)
- [@&#8203;techfg](https://redirect.github.com/techfg) made their first
contribution in
[#&#8203;1709](https://redirect.github.com/stretchr/testify/pull/1709)
- [@&#8203;mikeauclair](https://redirect.github.com/mikeauclair) made
their first contribution in
[#&#8203;1614](https://redirect.github.com/stretchr/testify/pull/1614)
- [@&#8203;cszczepaniak](https://redirect.github.com/cszczepaniak) made
their first contribution in
[#&#8203;1427](https://redirect.github.com/stretchr/testify/pull/1427)
- [@&#8203;architagr](https://redirect.github.com/architagr) made their
first contribution in
[#&#8203;1675](https://redirect.github.com/stretchr/testify/pull/1675)
- [@&#8203;tsioftas](https://redirect.github.com/tsioftas) made their
first contribution in
[#&#8203;1681](https://redirect.github.com/stretchr/testify/pull/1681)
- [@&#8203;siliconbrain](https://redirect.github.com/siliconbrain) made
their first contribution in
[#&#8203;1729](https://redirect.github.com/stretchr/testify/pull/1729)
- [@&#8203;bartventer](https://redirect.github.com/bartventer) made
their first contribution in
[#&#8203;1730](https://redirect.github.com/stretchr/testify/pull/1730)
- [@&#8203;Ararsa-Derese](https://redirect.github.com/Ararsa-Derese)
made their first contribution in
[#&#8203;1706](https://redirect.github.com/stretchr/testify/pull/1706)
- [@&#8203;renzoarreaza](https://redirect.github.com/renzoarreaza) made
their first contribution in
[#&#8203;1769](https://redirect.github.com/stretchr/testify/pull/1769)
- [@&#8203;3scalation](https://redirect.github.com/3scalation) made
their first contribution in
[#&#8203;1743](https://redirect.github.com/stretchr/testify/pull/1743)

**Full Changelog**:
<https://github.com/stretchr/testify/compare/v1.10.0...v1.11.0>

</details>

---

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

🔕 **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:eyJjcmVhdGVkSW5WZXIiOiI0MS44Mi43IiwidXBkYXRlZEluVmVyIjoiNDEuODIuNyIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiU2tpcCBDaGFuZ2Vsb2ciLCJkZXBlbmRlbmNpZXMiXX0=-->

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: flc1125 <four_leaf_clover@foxmail.com>
2025-08-25 14:38:44 +02:00
ian
9818ea8b0d refactor(logger): Flatten logger.initSelfObservability into logger.newLoggerr and use t.Cleanup instead of defer (#7228)
- Flatten `logger.initSelfObservability` into `logger.newLoggerr` 
- use `t.Cleanup` instead of `defer`

---------

Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
2025-08-24 12:28:55 -07:00
ian
c2a6172739 feat(stdouttrace): generate counter implementation via templates (#7231)
Use templates to generate the counter implementation for `stdouttrace`,
so it can be easily reused in other modules.

---------

Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
2025-08-24 08:29:54 -07:00
renovate[bot]
70e8929a67 chore(deps): update lycheeverse/lychee-action action to v2.6.0 (#7239)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[lycheeverse/lychee-action](https://redirect.github.com/lycheeverse/lychee-action)
| action | minor | `v2.5.0` -> `v2.6.0` |

---

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

---

### Release Notes

<details>
<summary>lycheeverse/lychee-action (lycheeverse/lychee-action)</summary>

###
[`v2.6.0`](https://redirect.github.com/lycheeverse/lychee-action/releases/tag/v2.6.0):
Version 2.6.0

[Compare
Source](https://redirect.github.com/lycheeverse/lychee-action/compare/v2.5.0...v2.6.0)

##### What's Changed

- Update lychee version to v0.20.0 by
[@&#8203;github-actions](https://redirect.github.com/github-actions)\[bot]
in[https://github.com/lycheeverse/lychee-action/pull/304](https://redirect.github.com/lycheeverse/lychee-action/pull/304)4
- Bump actions/checkout from 4 to 5 by
[@&#8203;dependabot](https://redirect.github.com/dependabot)\[bot]
in[https://github.com/lycheeverse/lychee-action/pull/303](https://redirect.github.com/lycheeverse/lychee-action/pull/303)3

**Full Changelog**:
https://github.com/lycheeverse/lychee-action/compare/v2...v2.6.0

</details>

---

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

🔕 **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:eyJjcmVhdGVkSW5WZXIiOiI0MS44MS4yIiwidXBkYXRlZEluVmVyIjoiNDEuODEuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiU2tpcCBDaGFuZ2Vsb2ciLCJkZXBlbmRlbmNpZXMiXX0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-22 07:53:58 -07:00
renovate[bot]
f3b18fc9d9 chore(deps): update github.com/golangci/golines digest to d4663ad (#7238)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[github.com/golangci/golines](https://redirect.github.com/golangci/golines)
| indirect | digest | `b35a614` -> `d4663ad` |

---

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

---

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

🔕 **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:eyJjcmVhdGVkSW5WZXIiOiI0MS44MS4yIiwidXBkYXRlZEluVmVyIjoiNDEuODEuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiU2tpcCBDaGFuZ2Vsb2ciLCJkZXBlbmRlbmNpZXMiXX0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-21 15:37:55 -07:00
Bryan Boreham
8b17b897d2 sdk/trace: More trace id tests (#7155)
* Check that IDs round-trip between binary and hex string formats.
`TestIDsRoundTrip` is patterned after `TestNewIDs`.
* Check that bad values give the expected errors.
* Use larger values in `TestWithIDGenerator`. Previously, nearly all the
bits were zero so a mistake in encoding/decoding higher bits could be
missed.
Start with arbitrary values with more bits set.
(Span ID still has top half as zero due to taking an uint64)
* Modify `testIDGenerator` so this ^^ change runs on 32-bit platforms.

The idea for more tests arose while considering #6791.

Does not need a CHANGELOG entry - test only.

---------

Signed-off-by: Bryan Boreham <bjboreham@gmail.com>
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
2025-08-21 09:23:32 -07:00
renovate[bot]
d31fb11011 chore(deps): update github/codeql-action action to v3.29.11 (#7229)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[github/codeql-action](https://redirect.github.com/github/codeql-action)
| action | patch | `v3.29.10` -> `v3.29.11` |

---

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

---

### Release Notes

<details>
<summary>github/codeql-action (github/codeql-action)</summary>

###
[`v3.29.11`](https://redirect.github.com/github/codeql-action/compare/v3.29.10...v3.29.11)

[Compare
Source](https://redirect.github.com/github/codeql-action/compare/v3.29.10...v3.29.11)

</details>

---

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

🔕 **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:eyJjcmVhdGVkSW5WZXIiOiI0MS44MS4yIiwidXBkYXRlZEluVmVyIjoiNDEuODEuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiU2tpcCBDaGFuZ2Vsb2ciLCJkZXBlbmRlbmNpZXMiXX0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-21 08:17:19 -07:00
renovate[bot]
bd6f16131e chore(deps): update codecov/codecov-action action to v5.5.0 (#7227)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[codecov/codecov-action](https://redirect.github.com/codecov/codecov-action)
| action | minor | `v5.4.3` -> `v5.5.0` |

---

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

---

### Release Notes

<details>
<summary>codecov/codecov-action (codecov/codecov-action)</summary>

###
[`v5.5.0`](https://redirect.github.com/codecov/codecov-action/blob/HEAD/CHANGELOG.md#v550)

[Compare
Source](https://redirect.github.com/codecov/codecov-action/compare/v5.4.3...v5.5.0)

##### What's Changed

- feat: upgrade wrapper to 0.2.4 by
[@&#8203;jviall](https://redirect.github.com/jviall) in
[https://github.com/codecov/codecov-action/pull/1864](https://redirect.github.com/codecov/codecov-action/pull/1864)
- Pin actions/github-script by Git SHA by
[@&#8203;martincostello](https://redirect.github.com/martincostello) in
[https://github.com/codecov/codecov-action/pull/1859](https://redirect.github.com/codecov/codecov-action/pull/1859)
- fix: check reqs exist by
[@&#8203;joseph-sentry](https://redirect.github.com/joseph-sentry) in
[https://github.com/codecov/codecov-action/pull/1835](https://redirect.github.com/codecov/codecov-action/pull/1835)
- fix: Typo in README by
[@&#8203;spalmurray](https://redirect.github.com/spalmurray) in
[https://github.com/codecov/codecov-action/pull/1838](https://redirect.github.com/codecov/codecov-action/pull/1838)
- docs: Refine OIDC docs by
[@&#8203;spalmurray](https://redirect.github.com/spalmurray) in
[https://github.com/codecov/codecov-action/pull/1837](https://redirect.github.com/codecov/codecov-action/pull/1837)
- build(deps): bump github/codeql-action from 3.28.17 to 3.28.18 by
[@&#8203;app/dependabot](https://redirect.github.com/app/dependabot) in
[https://github.com/codecov/codecov-action/pull/1829](https://redirect.github.com/codecov/codecov-action/pull/1829)

**Full Changelog**:
https://github.com/codecov/codecov-action/compare/v5.4.3..v5.5.0

</details>

---

### 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 becomes conflicted, 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:eyJjcmVhdGVkSW5WZXIiOiI0MS44MS4yIiwidXBkYXRlZEluVmVyIjoiNDEuODEuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiU2tpcCBDaGFuZ2Vsb2ciLCJkZXBlbmRlbmNpZXMiXX0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-20 16:18:17 -07:00
renovate[bot]
a102d7d16e fix(deps): update module google.golang.org/protobuf to v1.36.8 (#7225)
This PR contains the following updates:

| Package | Change | Age | Confidence |
|---|---|---|---|
|
[google.golang.org/protobuf](https://redirect.github.com/protocolbuffers/protobuf-go)
| `v1.36.7` -> `v1.36.8` |
[![age](https://developer.mend.io/api/mc/badges/age/go/google.golang.org%2fprotobuf/v1.36.8?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/google.golang.org%2fprotobuf/v1.36.7/v1.36.8?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

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

---

### Release Notes

<details>
<summary>protocolbuffers/protobuf-go
(google.golang.org/protobuf)</summary>

###
[`v1.36.8`](https://redirect.github.com/protocolbuffers/protobuf-go/releases/tag/v1.36.8)

[Compare
Source](https://redirect.github.com/protocolbuffers/protobuf-go/compare/v1.36.7...v1.36.8)

Maintenance:

[CL/696316](https://go-review.googlesource.com/c/protobuf/+/696316):
all: set Go language version to Go 1.23
[CL/696315](https://go-review.googlesource.com/c/protobuf/+/696315):
types: regenerate using latest protobuf v32 release

</details>

---

### 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 becomes conflicted, 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:eyJjcmVhdGVkSW5WZXIiOiI0MS44MS4yIiwidXBkYXRlZEluVmVyIjoiNDEuODEuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiU2tpcCBDaGFuZ2Vsb2ciLCJkZXBlbmRlbmNpZXMiXX0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-20 14:57:25 -07:00
renovate[bot]
d91944ffdf chore(deps): update module github.com/grpc-ecosystem/grpc-gateway/v2 to v2.27.2 (#7224)
This PR contains the following updates:

| Package | Change | Age | Confidence |
|---|---|---|---|
|
[github.com/grpc-ecosystem/grpc-gateway/v2](https://redirect.github.com/grpc-ecosystem/grpc-gateway)
| `v2.27.1` -> `v2.27.2` |
[![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fgrpc-ecosystem%2fgrpc-gateway%2fv2/v2.27.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fgrpc-ecosystem%2fgrpc-gateway%2fv2/v2.27.1/v2.27.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

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

---

### Release Notes

<details>
<summary>grpc-ecosystem/grpc-gateway
(github.com/grpc-ecosystem/grpc-gateway/v2)</summary>

###
[`v2.27.2`](https://redirect.github.com/grpc-ecosystem/grpc-gateway/releases/tag/v2.27.2)

[Compare
Source](https://redirect.github.com/grpc-ecosystem/grpc-gateway/compare/v2.27.1...v2.27.2)

##### What's Changed

- Fix nested schema definition for body parameter
([#&#8203;3058](https://redirect.github.com/grpc-ecosystem/grpc-gateway/issues/3058))
by
[@&#8203;ilyongcho-moloco](https://redirect.github.com/ilyongcho-moloco)
in
[https://github.com/grpc-ecosystem/grpc-gateway/pull/5827](https://redirect.github.com/grpc-ecosystem/grpc-gateway/pull/5827)
- Replace gopkg.in/yaml.v3 with go.yaml.in/yaml/v3 by
[@&#8203;MB175](https://redirect.github.com/MB175) in
[https://github.com/grpc-ecosystem/grpc-gateway/pull/5857](https://redirect.github.com/grpc-ecosystem/grpc-gateway/pull/5857)

##### New Contributors

-
[@&#8203;ilyongcho-moloco](https://redirect.github.com/ilyongcho-moloco)
made their first contribution in
[https://github.com/grpc-ecosystem/grpc-gateway/pull/5827](https://redirect.github.com/grpc-ecosystem/grpc-gateway/pull/5827)
- [@&#8203;MB175](https://redirect.github.com/MB175) made their first
contribution in
[https://github.com/grpc-ecosystem/grpc-gateway/pull/5857](https://redirect.github.com/grpc-ecosystem/grpc-gateway/pull/5857)

**Full Changelog**:
https://github.com/grpc-ecosystem/grpc-gateway/compare/v2.27.1...v2.27.2

</details>

---

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

🔕 **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:eyJjcmVhdGVkSW5WZXIiOiI0MS44MS4yIiwidXBkYXRlZEluVmVyIjoiNDEuODEuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiU2tpcCBDaGFuZ2Vsb2ciLCJkZXBlbmRlbmNpZXMiXX0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-20 14:44:45 -07:00
renovate[bot]
cf787f3e3a fix(deps): update module google.golang.org/grpc to v1.75.0 (#7220)
This PR contains the following updates:

| Package | Change | Age | Confidence |
|---|---|---|---|
| [google.golang.org/grpc](https://redirect.github.com/grpc/grpc-go) |
`v1.74.2` -> `v1.75.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/google.golang.org%2fgrpc/v1.75.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/google.golang.org%2fgrpc/v1.74.2/v1.75.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

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

---

### Release Notes

<details>
<summary>grpc/grpc-go (google.golang.org/grpc)</summary>

###
[`v1.75.0`](https://redirect.github.com/grpc/grpc-go/releases/tag/v1.75.0):
Release 1.75.0

[Compare
Source](https://redirect.github.com/grpc/grpc-go/compare/v1.74.2...v1.75.0)

### Behavior Changes

- xds: Remove support for GRPC\_EXPERIMENTAL\_XDS\_FALLBACK environment
variable. Fallback support can no longer be disabled.
([#&#8203;8482](https://redirect.github.com/grpc/grpc-go/issues/8482))
- stats: Introduce `DelayedPickComplete` event, a type alias of
`PickerUpdated`.
([#&#8203;8465](https://redirect.github.com/grpc/grpc-go/issues/8465))
- This (combined) event will now be emitted only once per call, when a
transport is successfully selected for the attempt.
- OpenTelemetry metrics will no longer have multiple "Delayed LB pick
complete" events in Go, matching other gRPC languages.
  - A future release will delete the `PickerUpdated` symbol.
- credentials: Properly apply `grpc.WithAuthority` as the
highest-priority option for setting authority, above the setting in the
credentials themselves.
([#&#8203;8488](https://redirect.github.com/grpc/grpc-go/issues/8488))
- Now that this `WithAuthority` is available, the credentials should not
be used to override the authority.
- round\_robin: Randomize the order in which addresses are connected to
in order to spread out initial RPC load between clients.
([#&#8203;8438](https://redirect.github.com/grpc/grpc-go/issues/8438))
- server: Return status code INTERNAL when a client sends more than one
request in unary and server streaming RPC.
([#&#8203;8385](https://redirect.github.com/grpc/grpc-go/issues/8385))
- This is a behavior change but also a bug fix to bring gRPC-Go in line
with the gRPC spec.

### New Features

- dns: Add an environment variable (`GRPC_ENABLE_TXT_SERVICE_CONFIG`) to
provide a way to disable TXT lookups in the DNS resolver (by setting it
to `false`). By default, TXT lookups are enabled, as they were
previously.
([#&#8203;8377](https://redirect.github.com/grpc/grpc-go/issues/8377))

### Bug Fixes

- xds: Fix regression preventing empty node IDs in xDS bootstrap
configuration.
([#&#8203;8476](https://redirect.github.com/grpc/grpc-go/issues/8476))
- Special Thanks:
[@&#8203;davinci26](https://redirect.github.com/davinci26)
- xds: Fix possible panic when certain invalid resources are
encountered.
([#&#8203;8412](https://redirect.github.com/grpc/grpc-go/issues/8412))
- Special Thanks: [@&#8203;wooffie](https://redirect.github.com/wooffie)
- xdsclient: Fix a rare panic caused by processing a response from a
closed server.
([#&#8203;8389](https://redirect.github.com/grpc/grpc-go/issues/8389))
- stats: Fix metric unit formatting by enclosing non-standard units like
`call` and `endpoint` in curly braces to comply with UCUM and gRPC
OpenTelemetry guidelines.
([#&#8203;8481](https://redirect.github.com/grpc/grpc-go/issues/8481))
- xds: Fix possible panic when clusters are removed from the xds
configuration.
([#&#8203;8428](https://redirect.github.com/grpc/grpc-go/issues/8428))
- xdsclient: Fix a race causing "resource doesn not exist" when rapidly
subscribing and unsubscribing to the same resource.
([#&#8203;8369](https://redirect.github.com/grpc/grpc-go/issues/8369))
- client: When determining the authority, properly percent-encode (if
needed, which is unlikely) when the target string omits the hostname and
only specifies a port (`grpc.NewClient(":<port-number-or-name>")`).
([#&#8203;8488](https://redirect.github.com/grpc/grpc-go/issues/8488))

</details>

---

### 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 becomes conflicted, 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:eyJjcmVhdGVkSW5WZXIiOiI0MS44MS4yIiwidXBkYXRlZEluVmVyIjoiNDEuODEuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiU2tpcCBDaGFuZ2Vsb2ciLCJkZXBlbmRlbmNpZXMiXX0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-19 16:10:07 -07:00
renovate[bot]
a5d1068c50 chore(deps): update module github.com/kevinburke/ssh_config to v1.4.0 (#7219)
This PR contains the following updates:

| Package | Change | Age | Confidence |
|---|---|---|---|
|
[github.com/kevinburke/ssh_config](https://redirect.github.com/kevinburke/ssh_config)
| `v1.2.0` -> `v1.4.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fkevinburke%2fssh_config/v1.4.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fkevinburke%2fssh_config/v1.2.0/v1.4.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

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

---

### Release Notes

<details>
<summary>kevinburke/ssh_config
(github.com/kevinburke/ssh_config)</summary>

###
[`v1.4.0`](https://redirect.github.com/kevinburke/ssh_config/compare/v1.2.0...v1.4.0)

[Compare
Source](https://redirect.github.com/kevinburke/ssh_config/compare/v1.2.0...v1.4.0)

</details>

---

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

🔕 **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:eyJjcmVhdGVkSW5WZXIiOiI0MS44MS4yIiwidXBkYXRlZEluVmVyIjoiNDEuODEuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiU2tpcCBDaGFuZ2Vsb2ciLCJkZXBlbmRlbmNpZXMiXX0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-19 15:56:08 -07:00
renovate[bot]
22c6da0307 fix(deps): update googleapis to 3122310 (#7216)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[google.golang.org/genproto/googleapis/api](https://redirect.github.com/googleapis/go-genproto)
| indirect | digest | `5f3141c` -> `3122310` |
|
[google.golang.org/genproto/googleapis/rpc](https://redirect.github.com/googleapis/go-genproto)
| indirect | digest | `5f3141c` -> `3122310` |
|
[google.golang.org/genproto/googleapis/rpc](https://redirect.github.com/googleapis/go-genproto)
| require | digest | `5f3141c` -> `3122310` |

---

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

---

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

🔕 **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:eyJjcmVhdGVkSW5WZXIiOiI0MS43MS4xIiwidXBkYXRlZEluVmVyIjoiNDEuNzEuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiU2tpcCBDaGFuZ2Vsb2ciLCJkZXBlbmRlbmNpZXMiXX0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-18 15:46:30 -07:00
Tyler Yahn
44a0d621ee Pool attribute slices in stdouttrace self-observability (#7201)
### Benchmarks

```terminal
goos: linux
goarch: amd64
pkg: go.opentelemetry.io/otel/exporters/stdout/stdouttrace
cpu: Intel(R) Core(TM) i7-8550U CPU @ 1.80GHz
                      │  main.txt   │   stdouttrace-pool-obs-attrs.txt   │
                      │   sec/op    │   sec/op     vs base               │
ExporterExportSpans-8   30.55µ ± 2%   31.76µ ± 3%  +3.96% (p=0.000 n=10)

                      │   main.txt   │   stdouttrace-pool-obs-attrs.txt    │
                      │     B/op     │     B/op      vs base               │
ExporterExportSpans-8   6.538Ki ± 0%   6.353Ki ± 0%  -2.84% (p=0.000 n=10)

                      │  main.txt  │  stdouttrace-pool-obs-attrs.txt   │
                      │ allocs/op  │ allocs/op   vs base               │
ExporterExportSpans-8   135.0 ± 0%   134.0 ± 0%  -0.74% (p=0.000 n=10)
```
2025-08-18 10:27:17 -07:00
Tyler Yahn
907d93b8e1 Handle partial export counts in stdouttrace observability (#7199)
Do not fail all exported metric counts if only some of them failed.
2025-08-18 09:37:33 -07:00
renovate[bot]
75db61c29e chore(deps): update github/codeql-action action to v3.29.10 (#7214)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[github/codeql-action](https://redirect.github.com/github/codeql-action)
| action | patch | `v3.29.9` -> `v3.29.10` |

---

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

---

### Release Notes

<details>
<summary>github/codeql-action (github/codeql-action)</summary>

###
[`v3.29.10`](https://redirect.github.com/github/codeql-action/releases/tag/v3.29.10)

[Compare
Source](https://redirect.github.com/github/codeql-action/compare/v3.29.9...v3.29.10)

### CodeQL Action Changelog

See the [releases
page](https://redirect.github.com/github/codeql-action/releases) for the
relevant changes to the CodeQL CLI and language packs.

#### 3.29.10 - 18 Aug 2025

No user facing changes.

See the full
[CHANGELOG.md](https://redirect.github.com/github/codeql-action/blob/v3.29.10/CHANGELOG.md)
for more information.

</details>

---

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

🔕 **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:eyJjcmVhdGVkSW5WZXIiOiI0MS43MS4xIiwidXBkYXRlZEluVmVyIjoiNDEuNzEuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiU2tpcCBDaGFuZ2Vsb2ciLCJkZXBlbmRlbmNpZXMiXX0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-18 09:05:39 -07:00
Tyler Yahn
bb5b0a8e61 Use t.Cleanup instead of defer in sdk/trace (#7208)
Let the testing system ensure proper cleanup ordering and execution. Do
not wait to function return to run all the `defer`s from the loops.
2025-08-18 12:42:16 +02:00