Skip to content

[mdatagen] Replace attributes optional field with requirement_level#13913

Merged
dmitryax merged 1 commit into
open-telemetry:mainfrom
dmitryax:add-disabled-attributes
Oct 21, 2025
Merged

[mdatagen] Replace attributes optional field with requirement_level#13913
dmitryax merged 1 commit into
open-telemetry:mainfrom
dmitryax:add-disabled-attributes

Conversation

@dmitryax
Copy link
Copy Markdown
Member

@dmitryax dmitryax commented Sep 26, 2025

metadata.yaml schema change for attributes: boolean optional field replaced with enum requirement_level field with the following options:
- required: attribute is always included and cannot be excluded
- conditionally_required: attribute is included by default when certain conditions are met (replaces optional: true)
- recommended: attribute is included by default but can be disabled via configuration (replaces optional: false)
- opt_in: attribute is not included unless explicitly enabled in user config

The recommended option is assumed when requirement_level isn't specified explicitly which is the case for the vast majority use cases.

metadata.yaml files upgrade guideline: Replace optional: true with requirement_level: conditionally_required and optional: false with requirement_level: recommended (or omit for default) in metadata files.

This change is needed for #13900

@dmitryax dmitryax requested a review from a team as a code owner September 26, 2025 22:54
@codecov
Copy link
Copy Markdown

codecov Bot commented Sep 26, 2025

Codecov Report

❌ Patch coverage is 91.07143% with 5 lines in your changes missing coverage. Please review.
✅ Project coverage is 91.59%. Comparing base (8b09905) to head (e6d2492).
⚠️ Report is 8 commits behind head on main.

Files with missing lines Patch % Lines
cmd/mdatagen/internal/metadata.go 83.33% 5 Missing ⚠️

❌ Your patch status has failed because the patch coverage (91.07%) is below the target coverage (95.00%). You can increase the patch coverage or adjust the target coverage.

Additional details and impacted files
@@            Coverage Diff             @@
##             main   #13913      +/-   ##
==========================================
- Coverage   91.61%   91.59%   -0.03%     
==========================================
  Files         655      655              
  Lines       42782    42814      +32     
==========================================
+ Hits        39195    39215      +20     
- Misses       2764     2774      +10     
- Partials      823      825       +2     

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

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

Comment thread cmd/mdatagen/internal/metadata.go
Comment thread cmd/mdatagen/metadata-schema.yaml Outdated
@dmitryax dmitryax force-pushed the add-disabled-attributes branch from b5802cb to 5e2c2de Compare October 20, 2025 20:37
@dmitryax dmitryax changed the title [mdatagen] Replace optional field with availability for attributes [mdatagen] Replace attributes optional field with requirement_level Oct 20, 2025
@dmitryax dmitryax force-pushed the add-disabled-attributes branch from 5e2c2de to 81d7df6 Compare October 20, 2025 20:54
metadata.yaml schema change for attributes: boolean `optional` field replaced with enum `requirement_level` field with the following options:
    - `required`: attribute is always included and cannot be excluded
    - `conditionally_required`: attribute is included by default when certain conditions are met (replaces `optional: true`)
    - `recommended`: attribute is included by default but can be disabled via configuration (replaces `optional: false`)
    - `opt_in`: attribute is not included unless explicitly enabled in user config

The `recommended` option is assumed when requirement_level isn't specified explicitly which is the case for the vast majority use cases.

metadata.yaml files upgrade guideline: Replace `optional: true` with `requirement_level: conditionally_required` and `optional: false` with `requirement_level: recommended` (or omit for default) in metadata files.
8b0990
@dmitryax dmitryax force-pushed the add-disabled-attributes branch from 81d7df6 to e6d2492 Compare October 20, 2025 20:58
@dmitryax
Copy link
Copy Markdown
Member Author

dmitryax commented Oct 21, 2025

Merging given that I've got one approval and addressed the comments

@dmitryax dmitryax added this pull request to the merge queue Oct 21, 2025
Merged via the queue into open-telemetry:main with commit c657d5d Oct 21, 2025
60 of 61 checks passed
@dmitryax dmitryax deleted the add-disabled-attributes branch October 21, 2025 23:36
@github-actions github-actions Bot added this to the next release milestone Oct 21, 2025
dmitryax added a commit to open-telemetry/opentelemetry-collector-contrib that referenced this pull request Oct 22, 2025
Picking up
open-telemetry/opentelemetry-collector#13913
which resulted in updating only the generated documentaion.md files, no
code changes
github-merge-queue Bot pushed a commit that referenced this pull request Oct 22, 2025
TimoBehrendt pushed a commit to TimoBehrendt/tracebasedlogsampler that referenced this pull request Nov 11, 2025
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [github.com/stretchr/testify](https://github.com/stretchr/testify) | require | minor | `v1.10.0` -> `v1.11.1` |
| [go.opentelemetry.io/collector/component](https://github.com/open-telemetry/opentelemetry-collector) | require | minor | `v1.35.0` -> `v1.45.0` |
| [go.opentelemetry.io/collector/component/componenttest](https://github.com/open-telemetry/opentelemetry-collector) | require | minor | `v0.129.0` -> `v0.139.0` |
| [go.opentelemetry.io/collector/confmap](https://github.com/open-telemetry/opentelemetry-collector) | require | minor | `v1.35.0` -> `v1.45.0` |
| [go.opentelemetry.io/collector/consumer](https://github.com/open-telemetry/opentelemetry-collector) | require | minor | `v1.35.0` -> `v1.45.0` |
| [go.opentelemetry.io/collector/consumer/consumertest](https://github.com/open-telemetry/opentelemetry-collector) | require | minor | `v0.129.0` -> `v0.139.0` |
| [go.opentelemetry.io/collector/pdata](https://github.com/open-telemetry/opentelemetry-collector) | require | minor | `v1.35.0` -> `v1.45.0` |
| [go.opentelemetry.io/collector/processor](https://github.com/open-telemetry/opentelemetry-collector) | require | minor | `v1.35.0` -> `v1.45.0` |
| [go.opentelemetry.io/collector/processor/processortest](https://github.com/open-telemetry/opentelemetry-collector) | require | minor | `v0.129.0` -> `v0.139.0` |

---

### Release Notes

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

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

[Compare Source](stretchr/testify@v1.11.0...v1.11.1)

This release fixes [#&#8203;1785](stretchr/testify#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](stretchr/testify#1786) to release/1.11: mock: revert to pre-v1.11.0 argument matching behavior for mutating stringers by [@&#8203;brackendawson](https://github.com/brackendawson) in [#&#8203;1788](stretchr/testify#1788)

**Full Changelog**: <stretchr/testify@v1.11.0...v1.11.1>

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

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

##### Fixes

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

##### Documentation, Build & CI

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

#### New Contributors

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

**Full Changelog**: <stretchr/testify@v1.10.0...v1.11.0>

</details>

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

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

##### 🛑 Breaking changes 🛑

- `cmd/mdatagen`: Make stability.level a required field for metrics ([#&#8203;14070](open-telemetry/opentelemetry-collector#14070))

- `cmd/mdatagen`: Replace `optional` field with `requirement_level` field for attributes in metadata schema ([#&#8203;13913](open-telemetry/opentelemetry-collector#13913))
  The `optional` boolean field for attributes has been replaced with a `requirement_level` field that accepts enum values: `required`, `conditionally_required`, `recommended`, or `opt_in`.
  - `required`: attribute is always included and cannot be excluded
  - `conditionally_required`: attribute is included by default when certain conditions are met (replaces `optional: true`)
  - `recommended`: attribute is included by default but can be disabled via configuration (replaces `optional: false`)
  - `opt_in`: attribute is not included unless explicitly enabled in user config
    When `requirement_level` is not specified, it defaults to `recommended`.

- `pdata/pprofile`: Remove deprecated `PutAttribute` helper method ([#&#8203;14082](open-telemetry/opentelemetry-collector#14082))

- `pdata/pprofile`: Remove deprecated `PutLocation` helper method ([#&#8203;14082](open-telemetry/opentelemetry-collector#14082))

##### 💡 Enhancements 💡

- `all`: Add FIPS and non-FIPS implementations for allowed TLS curves ([#&#8203;13990](open-telemetry/opentelemetry-collector#13990))
- `cmd/builder`: Set CGO\_ENABLED=0 by default, add the `cgo_enabled` configuration to enable it. ([#&#8203;10028](open-telemetry/opentelemetry-collector#10028))
- `pkg/config/configgrpc`: Errors of type status.Status returned from an Authenticator extension are being propagated as is to the upstream client. ([#&#8203;14005](open-telemetry/opentelemetry-collector#14005))
- `pkg/config/configoptional`: Adds new `configoptional.AddEnabledField` feature gate that allows users to explicitly disable a `configoptional.Optional` through a new `enabled` field. ([#&#8203;14021](open-telemetry/opentelemetry-collector#14021))
- `pkg/exporterhelper`: Replace usage of gogo proto for persistent queue metadata ([#&#8203;14079](open-telemetry/opentelemetry-collector#14079))
- `pkg/pdata`: Remove usage of gogo proto and generate the structs with pdatagen ([#&#8203;14078](open-telemetry/opentelemetry-collector#14078))

##### 🧰 Bug fixes 🧰

- `exporter/debug`: add queue configuration ([#&#8203;14101](open-telemetry/opentelemetry-collector#14101))

<!-- previous-version -->

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

##### 🛑 Breaking changes 🛑

- `all`: Remove deprecated type `TracesConfig` ([#&#8203;14036](open-telemetry/opentelemetry-collector#14036))

- `pkg/exporterhelper`: Add default values for `sending_queue::batch` configuration. ([#&#8203;13766](open-telemetry/opentelemetry-collector#13766))
  Setting `sending_queue::batch` to an empty value now results in the same setup as the default batch processor configuration.

- `all`: Add unified print-config command with mode support (redacted, unredacted), json support (unstable), and validation support. ([#&#8203;11775](open-telemetry/opentelemetry-collector#11775))
  This replaces the `print-initial-config` command. See the `service` package README for more details. The original command name `print-initial-config` remains an alias, to be retired with the feature flag.

##### 💡 Enhancements 💡

- `all`: Add `keep_alives_enabled` option to ServerConfig to control HTTP keep-alives for all components that create an HTTP server. ([#&#8203;13783](open-telemetry/opentelemetry-collector#13783))
- `pkg/otelcol`: Avoid unnecessary mutex in collector logs, replace by atomic pointer ([#&#8203;14008](open-telemetry/opentelemetry-collector#14008))
- `cmd/mdatagen`: Add lint/ordering validation for metadata.yaml ([#&#8203;13781](open-telemetry/opentelemetry-collector#13781))
- `pdata/xpdata`: Refactor JSON marshaling and unmarshaling to use `pcommon.Value` instead of `AnyValue`. ([#&#8203;13837](open-telemetry/opentelemetry-collector#13837))
- `pkg/exporterhelper`: Expose `MergeCtx` in exporterhelper's queue batch settings\` ([#&#8203;13742](open-telemetry/opentelemetry-collector#13742))

##### 🧰 Bug fixes 🧰

- `all`: Fix zstd decoder data corruption due to decoder pooling for all components that create an HTTP server. ([#&#8203;13954](open-telemetry/opentelemetry-collector#13954))
- `pkg/otelcol`: Remove UB when taking internal logs and move them to the final zapcore.Core ([#&#8203;14009](open-telemetry/opentelemetry-collector#14009))
  This can happen because of a race on accessing `logsTaken`.
- `pkg/confmap`: Fix a potential race condition in confmap by closing the providers first. ([#&#8203;14018](open-telemetry/opentelemetry-collector#14018))

<!-- previous-version -->

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

##### 💡 Enhancements 💡

- `cmd/mdatagen`: Improve validation for resource attribute `enabled` field in metadata files ([#&#8203;12722](open-telemetry/opentelemetry-collector#12722))
  Resource attributes now require an explicit `enabled` field in metadata.yaml files, while regular attributes
  are prohibited from having this field. This improves validation and prevents configuration errors.

- `all`: Changelog entries will now have their component field checked against a list of valid components. ([#&#8203;13924](open-telemetry/opentelemetry-collector#13924))
  This will ensure a more standardized changelog format which makes it easier to parse.

- `pkg/pdata`: Mark featuregate pdata.useCustomProtoEncoding as stable ([#&#8203;13883](open-telemetry/opentelemetry-collector#13883))

<!-- previous-version -->

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

##### 💡 Enhancements 💡

- `xpdata`: Add Serialization and Deserialization of AnyValue ([#&#8203;12826](open-telemetry/opentelemetry-collector#12826))
- `debugexporter`: add support for batching ([#&#8203;13791](open-telemetry/opentelemetry-collector#13791))
  The default queue size is 1
- `configtls`: Add early validation for TLS server configurations to fail fast when certificates are missing instead of failing at runtime. ([#&#8203;13130](open-telemetry/opentelemetry-collector#13130), [#&#8203;13245](open-telemetry/opentelemetry-collector#13245))
- `mdatagen`: Expose stability level in generated metric documentation ([#&#8203;13748](open-telemetry/opentelemetry-collector#13748))
- `internal/tools`: Add support for modernize in Makefile ([#&#8203;13796](open-telemetry/opentelemetry-collector#13796))

##### 🧰 Bug fixes 🧰

- `otelcol`: Fix a potential deadlock during collector shutdown. ([#&#8203;13740](open-telemetry/opentelemetry-collector#13740))
- `otlpexporter`: fix the validation of unix socket endpoints ([#&#8203;13826](open-telemetry/opentelemetry-collector#13826))

<!-- previous-version -->

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

##### 💡 Enhancements 💡

- `exporterhelper`: Add new `exporter_queue_batch_send_size` and `exporter_queue_batch_send_size_bytes` metrics, showing the size of telemetry batches from the exporter. ([#&#8203;12894](open-telemetry/opentelemetry-collector#12894))

<!-- previous-version -->

### [`v1.40.0`](https://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](open-telemetry/opentelemetry-collector#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](open-telemetry/opentelemetry-collector#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](open-telemetry/opentelemetry-collector#13607))

##### 🧰 Bug fixes 🧰

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

<!-- previous-version -->

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

##### 🛑 Breaking changes 🛑

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

##### 💡 Enhancements 💡

- `otlphttpexporter`: Add `profiles_endpoint` configuration option to allow custom endpoint for profiles data export ([#&#8203;13504](open-telemetry/opentelemetry-collector#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](open-telemetry/opentelemetry-collector#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](open-telemetry/opentelemetry-collector#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](open-telemetry/opentelemetry-collector#12207), [#&#8203;12802](open-telemetry/opentelemetry-collector#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](open-telemetry/opentelemetry-collector#13324))

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

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

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

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

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

- `pdata`: Use the newly added proto marshaler/unmarshaler for the official proto Marshaler/Unmarshaler ([#&#8203;13637](open-telemetry/opentelemetry-collector#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](open-telemetry/opentelemetry-collector#13670))

##### 🧰 Bug fixes 🧰

- `exporterhelper`: Prevent uncontrolled goroutines in batcher due to a incorrect worker pool behaviour. ([#&#8203;13689](open-telemetry/opentelemetry-collector#13689))
- `service`: Ensure the insecure configuration is accounted for when normalizing the endpoint. ([#&#8203;13691](open-telemetry/opentelemetry-collector#13691))
- `configoptional`: Allow validating nested types ([#&#8203;13579](open-telemetry/opentelemetry-collector#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](open-telemetry/opentelemetry-collector#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 -->

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

##### 🛑 Breaking changes 🛑

- `componentstatus`: Change the signature of the componentstatus.NewEvent to accept multiple options. ([#&#8203;13210](open-telemetry/opentelemetry-collector#13210))
  Changes the signature of the component.NewEvent to accept multiple EventBuilderOption,
  like the new WithAttributes constructor.

##### 🚩 Deprecations 🚩

- `service`: move service.noopTraceProvider feature gate to deprecated stage ([#&#8203;13492](open-telemetry/opentelemetry-collector#13492))
  The functionality of the feature gate is available via configuration with the following telemetry settings:
  ```
  service:
    telemetry:
      traces:
        level: none
  ```

- `mdatagen`: Remove the deletion of `generated_component_telemetry_test.go`. ([#&#8203;12067](open-telemetry/opentelemetry-collector#12067))
  This file used to be generated by mdatagen. Starting with 0.122.0, the code deletes that file.
  It is no longer necessary to delete the file, as code has had time to upgrade to mdatagen and delete the file.

- `service`: The `telemetry.disableHighCardinalityMetrics` feature gate is deprecated ([#&#8203;13537](open-telemetry/opentelemetry-collector#13537))
  The feature gate is now deprecated since metric views can be configured.
  The feature gate will be removed in v0.134.0.

  The metric attributes removed by this feature gate are no longer emitted
  by the Collector by default, but if needed, you can achieve the same
  functionality by configuring the following metric views:

  ```yaml
  service:
    telemetry:
      metrics:
        level: detailed
        views:
          - selector:
              meter_name: "go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc"
            stream:
              attribute_keys:
                excluded: ["net.sock.peer.addr", "net.sock.peer.port", "net.sock.peer.name"]
          - selector:
              meter_name: "go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp"
            stream:
              attribute_keys:
                excluded: ["net.host.name", "net.host.port"]
  ```

  Note that this requires setting `service::telemetry::metrics::level: detailed`.
  If you have a strong use case for using views in combination with a different
  level, please show your interest in
  [#&#8203;10769](open-telemetry/opentelemetry-collector#10769).

##### 💡 Enhancements 💡

- `pdata`: Generate Logs/Traces/Metrics/Profiles and p\[log|trace|metric|profile]ExportResponse with pdatagen. ([#&#8203;13597](open-telemetry/opentelemetry-collector#13597))
  This change brings consistency on how these structs are written and remove JSON marshaling/unmarshaling hand written logic.
- `confighttp`: Add option to configure ForceAttemptHTTP2 to support HTTP/1 specific transport settings. ([#&#8203;13426](open-telemetry/opentelemetry-collector#13426))
- `pdata`: Avoid unnecessary buffer copy when JSON marshal fails. ([#&#8203;13598](open-telemetry/opentelemetry-collector#13598))
- `cmd/mdatagen`: Use a custom host implementation for lifecycle tests ([#&#8203;13589](open-telemetry/opentelemetry-collector#13589))
  Use a custom noop host implementation that implements all non-deprecated, publicly-accessible interfaces implemented by the Collector service.
- `processorhelper`: Add processor internal duration metric. ([#&#8203;13231](open-telemetry/opentelemetry-collector#13231))
- `pdata`: Improve RemoveIf for slices to not reference anymore the removed memory ([#&#8203;13522](open-telemetry/opentelemetry-collector#13522))

##### 🧰 Bug fixes 🧰

- `pdata`: Fix null pointer access when copying into a slice with larger cap but smaller len. ([#&#8203;13523](open-telemetry/opentelemetry-collector#13523))

- `confighttp`: Fix middleware configuration field name from "middleware" to "middlewares" for consistency with configgrpc ([#&#8203;13444](open-telemetry/opentelemetry-collector#13444))

- `memorylimiterextension, memorylimiterprocessor`: Memory limiter extension and processor shutdown don't throw an error if the component was not started first. ([#&#8203;9687](open-telemetry/opentelemetry-collector#9687))
  The components would throw an error if they were shut down before being started.
  With this change, they will no longer return an error, conforming to the lifecycle of components expected.

- `confighttp`: Reuse zstd Reader objects ([#&#8203;11824](open-telemetry/opentelemetry-collector#11824))

<!-- previous-version -->

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

##### 🛑 Breaking changes 🛑

- `confighttp`: Move `confighttp.framedSnappy` feature gate to beta. ([#&#8203;10584](open-telemetry/opentelemetry-collector#10584))

##### 💡 Enhancements 💡

- `exporter/debug`: Move to alpha stability except profiles ([#&#8203;13487](open-telemetry/opentelemetry-collector#13487))

- `exporterhelper`: Enable `exporter.PersistRequestContext` feature gate by default. ([#&#8203;13437](open-telemetry/opentelemetry-collector#13437))
  Request context is now preserved by default when using persistent queues.
  Note that Auth extensions context is not propagated through the persistent queue.

- `pdata`: Use pdatagen to generate marshalJSON without using gogo proto jsonpb. ([#&#8203;13450](open-telemetry/opentelemetry-collector#13450))

- `otlpreceiver`: Remove usage of gogo proto which uses reflect.Value.MethodByName. Removes one source of disabling DCE. ([#&#8203;12747](open-telemetry/opentelemetry-collector#12747))

- `exporterhelper`: Fix metrics split logic to consider metrics description into the size. ([#&#8203;13418](open-telemetry/opentelemetry-collector#13418))

- `service`: New pipeline instrumentation now differentiates internal failures from downstream errors ([#&#8203;13234](open-telemetry/opentelemetry-collector#13234))
  With the telemetry.newPipelineTelemetry feature gate enabled, the "received" and "produced"
  metrics related to a component now distinguish between two types of errors:
  - "outcome = failure" indicates that the component returned an internal error;
  - "outcome = refused" indicates that the component successfully emitted data, but returned an
    error coming from a downstream component processing that data.

- `pdata`: Remove usage of text/template from pdata, improves DCE. ([#&#8203;12747](open-telemetry/opentelemetry-collector#12747))

- `architecture`: New Tier 3 platform riscv64 allowing the collector to be built and distributed for this platform. ([#&#8203;13462](open-telemetry/opentelemetry-collector#13462))

##### 🧰 Bug fixes 🧰

- `exporterhelper`: Prevents the exporter for being stuck when telemetry data is bigger than batch.max\_size ([#&#8203;12893](open-telemetry/opentelemetry-collector#12893))
- `mdatagen`: Fix import paths for mdatagen component ([#&#8203;13069](open-telemetry/opentelemetry-collector#13069))
- `otlpreceiver`: Error handler correctly fallbacks to content type ([#&#8203;13414](open-telemetry/opentelemetry-collector#13414))
- `pdata/pprofiles`: Fix profiles JSON unmarshal logic for originalPayload. The bytes have to be base64 encoded. ([#&#8203;13483](open-telemetry/opentelemetry-collector#13483))
- `xpdata`: Fix unmarshaling JSON for entities, add e2e tests to avoid this in the future. ([#&#8203;13480](open-telemetry/opentelemetry-collector#13480))
- `service`: Downgrade dependency of prometheus exporter in OTel Go SDK ([#&#8203;13429](open-telemetry/opentelemetry-collector#13429))
  This fixes the bug where collector's internal metrics are emitted with an unexpected suffix in their names when users configure the service::telemetry::metrics::readers with Prometheus
- `service`: Revert Default internal metrics config now enables `otel_scope_` labels ([#&#8203;12939](open-telemetry/opentelemetry-collector#12939), [#&#8203;13344](open-telemetry/opentelemetry-collector#13344))
  Reverting change temporarily due to prometheus exporter downgrade. This unfortunately re-introduces the bug that instrumentation scope attributes cause errors in Prometheus exporter. See [#&#8203;12939](https://github.com/open-telemetry/opentelemetry-collector/issues/12939) for details.
- `builder`: Remove undocumented handling of `DIST_*` environment variables replacements ([#&#8203;13335](open-telemetry/opentelemetry-collector#13335))

<!-- previous-version -->

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

##### 🧰 Bug fixes 🧰

- `service`: Fixes bug where internal metrics are emitted with an unexpected suffix in their names when users configure `service::telemetry::metrics::readers` with Prometheus. ([#&#8203;13449](open-telemetry/opentelemetry-collector#13449))
  See more details on [open-telemetry/opentelemetry-go#7039](open-telemetry/opentelemetry-go#7039)

<!-- previous-version -->

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

##### ❗ Known Issues ❗

- Due to a [bug](open-telemetry/opentelemetry-go#7039) in the prometheus exporter, if you are configuring a prometheus exporter, the collector's internal metrics will be emitted with an unexpected suffix in its name. For example, the metric `otelcol_exporter_sent_spans__spans__total` instead of `otelcol_exporter_sent_spans_total`. The workaround is to manually configure `without_units: true` in your prometheus exporter config

  ```yaml
  service:
    telemetry:
      metrics:
        readers:
          - pull:
              exporter:
                prometheus:
                  host: 0.0.0.0
                  port: 8888
                  without_units: true
  ```

  If you are using the collector's default Prometheus exporter for exporting internal metrics you are unaffected.

##### 🛑 Breaking changes 🛑

- `exporter/otlp`: Remove deprecated batcher config from OTLP, use queuebatch ([#&#8203;13339](open-telemetry/opentelemetry-collector#13339))

##### 💡 Enhancements 💡

- `exporterhelper`: Enable items and bytes sizers for persistent queue ([#&#8203;12881](open-telemetry/opentelemetry-collector#12881))
- `exporterhelper`: Refactor persistent storage size backup to always record it. ([#&#8203;12890](open-telemetry/opentelemetry-collector#12890))
- `exporterhelper`: Add support to configure a different Sizer for the batcher than the queue ([#&#8203;13313](open-telemetry/opentelemetry-collector#13313))
- `yaml`: Replaced `sigs.k8s.io/yaml` with `go.yaml.in/yaml` for improved support and long-term maintainability. ([#&#8203;13308](open-telemetry/opentelemetry-collector#13308))

##### 🧰 Bug fixes 🧰

- `exporterhelper`: Fix exporter.PersistRequestContext feature gate ([#&#8203;13342](open-telemetry/opentelemetry-collector#13342))

- `exporterhelper`: Preserve all metrics metadata when batch splitting. ([#&#8203;13236](open-telemetry/opentelemetry-collector#13236))
  Previously, when large batches of metrics were processed, the splitting logic in `metric_batch.go` could
  cause the `name` field of some metrics to disappear. This fix ensures that all metric fields are
  properly preserved when `metricRequest` objects are split.

- `service`: Default internal metrics config now enables `otel_scope_` labels ([#&#8203;12939](open-telemetry/opentelemetry-collector#12939), [#&#8203;13344](open-telemetry/opentelemetry-collector#13344))
  By default, the Collector exports its internal metrics using a Prometheus
  exporter from the opentelemetry-go repository. With this change, the Collector
  no longer sets "without\_scope\_info" to true in its configuration.

  This means that all exported metrics will have `otel_scope_name`,
  `otel_scope_schema_url`, and `otel_scope_version` labels corresponding to the
  instrumentation scope metadata for that metric.

  This notably prevents an error when multiple metrics are only distinguished
  by their instrumentation scopes and end up aliased during export.

  If this is not desired behavior, a Prometheus exporter can be explicitly
  configured with this option enabled.

<!-- 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 becomes conflicted, or you tick the rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.

---

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

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS45OC40IiwidXBkYXRlZEluVmVyIjoiNDIuMS4zIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Reviewed-on: https://gitea.t000-n.de/t.behrendt/tracebasedlogsampler/pulls/23
Reviewed-by: t.behrendt <t.behrendt@noreply.localhost>
Co-authored-by: Renovate Bot <renovate@t00n.de>
Co-committed-by: Renovate Bot <renovate@t00n.de>
github-merge-queue Bot pushed a commit that referenced this pull request Jan 9, 2026
Reopens
[13900](#13900)

#### Description
Modified `cmd/mdatagen` to allow for two new fields in the configuration
yaml of metrics. These new configuration options will allow for a user
to enable or disable attributes (i.e. reduce dimensionality of metrics
being generated) from their collector configuration. The modified
`MetricsBuilder` generated by `mdatagen` does not record disabled
attributes and automatically re-aggregates metrics based on the
resulting enabled set of attributes. There are four different
aggregation strategies supported (`sum, average, min, and max`) which
can be specified as a setting in `config.yaml`.

The changes to the config.yaml are:
```yaml
receiver:
  someMetricReceiver:
    ...
    metrics:
    ...
      attributes: [<list of attributes to include for metric at runtime>] # new
      aggregation_strategy: <sum|avg|min|max> # new
```
Attribute `requirement_level` takes president over this re-aggregation
and any metric attribute with a `requirement_level` of `required` cannot
be disabled in this way. For more information on `requirement_level`
please see
[13913](#13913)

The set of attributes provided by the user _must_ be contained in the
set of attributes defined in the metadata.yaml, including an attribute
which is not defined in the metrics `metadata` file will fail. Also,
attempting to omit an attribute defined as `requirement_level: required`
will cause the configuration to fail and the collector not to start.
Omitting the field entirely will default to the defined set of metric
attributes in the `metadata` file with a requirement level of
`recommended` or above.

Due to its large scope and foundational nature, a featuregate has been
added for this change. This gate is represented by a new field in the
`metadata.yaml`, `reaggregation_enabled: <bool>`. Setting this to `true`
will enable the new codegen with spatial reaggregation features.

<!-- Issue number if applicable -->
#### Link to tracking issue
Fixes
[10726](#10726)

<!--Describe what testing was performed and which tests were added.-->
#### Testing
Generated tests have been updated to test new aggregation behavior.

<!--Describe the documentation added.-->
#### Documentation
ran `make gogenerate`
ran `make generate`

<!--Please delete paragraphs that you did not use before submitting.-->
Syedowais312 pushed a commit to Syedowais312/opentelemetry-collector that referenced this pull request Jan 14, 2026
…#14281)

Reopens
[13900](open-telemetry#13900)

#### Description
Modified `cmd/mdatagen` to allow for two new fields in the configuration
yaml of metrics. These new configuration options will allow for a user
to enable or disable attributes (i.e. reduce dimensionality of metrics
being generated) from their collector configuration. The modified
`MetricsBuilder` generated by `mdatagen` does not record disabled
attributes and automatically re-aggregates metrics based on the
resulting enabled set of attributes. There are four different
aggregation strategies supported (`sum, average, min, and max`) which
can be specified as a setting in `config.yaml`.

The changes to the config.yaml are:
```yaml
receiver:
  someMetricReceiver:
    ...
    metrics:
    ...
      attributes: [<list of attributes to include for metric at runtime>] # new
      aggregation_strategy: <sum|avg|min|max> # new
```
Attribute `requirement_level` takes president over this re-aggregation
and any metric attribute with a `requirement_level` of `required` cannot
be disabled in this way. For more information on `requirement_level`
please see
[13913](open-telemetry#13913)

The set of attributes provided by the user _must_ be contained in the
set of attributes defined in the metadata.yaml, including an attribute
which is not defined in the metrics `metadata` file will fail. Also,
attempting to omit an attribute defined as `requirement_level: required`
will cause the configuration to fail and the collector not to start.
Omitting the field entirely will default to the defined set of metric
attributes in the `metadata` file with a requirement level of
`recommended` or above.

Due to its large scope and foundational nature, a featuregate has been
added for this change. This gate is represented by a new field in the
`metadata.yaml`, `reaggregation_enabled: <bool>`. Setting this to `true`
will enable the new codegen with spatial reaggregation features.

<!-- Issue number if applicable -->
#### Link to tracking issue
Fixes
[10726](open-telemetry#10726)

<!--Describe what testing was performed and which tests were added.-->
#### Testing
Generated tests have been updated to test new aggregation behavior.

<!--Describe the documentation added.-->
#### Documentation
ran `make gogenerate`
ran `make generate`

<!--Please delete paragraphs that you did not use before submitting.-->
Syedowais312 pushed a commit to Syedowais312/opentelemetry-collector that referenced this pull request Jan 15, 2026
…#14281)

Reopens
[13900](open-telemetry#13900)

#### Description
Modified `cmd/mdatagen` to allow for two new fields in the configuration
yaml of metrics. These new configuration options will allow for a user
to enable or disable attributes (i.e. reduce dimensionality of metrics
being generated) from their collector configuration. The modified
`MetricsBuilder` generated by `mdatagen` does not record disabled
attributes and automatically re-aggregates metrics based on the
resulting enabled set of attributes. There are four different
aggregation strategies supported (`sum, average, min, and max`) which
can be specified as a setting in `config.yaml`.

The changes to the config.yaml are:
```yaml
receiver:
  someMetricReceiver:
    ...
    metrics:
    ...
      attributes: [<list of attributes to include for metric at runtime>] # new
      aggregation_strategy: <sum|avg|min|max> # new
```
Attribute `requirement_level` takes president over this re-aggregation
and any metric attribute with a `requirement_level` of `required` cannot
be disabled in this way. For more information on `requirement_level`
please see
[13913](open-telemetry#13913)

The set of attributes provided by the user _must_ be contained in the
set of attributes defined in the metadata.yaml, including an attribute
which is not defined in the metrics `metadata` file will fail. Also,
attempting to omit an attribute defined as `requirement_level: required`
will cause the configuration to fail and the collector not to start.
Omitting the field entirely will default to the defined set of metric
attributes in the `metadata` file with a requirement level of
`recommended` or above.

Due to its large scope and foundational nature, a featuregate has been
added for this change. This gate is represented by a new field in the
`metadata.yaml`, `reaggregation_enabled: <bool>`. Setting this to `true`
will enable the new codegen with spatial reaggregation features.

<!-- Issue number if applicable -->
#### Link to tracking issue
Fixes
[10726](open-telemetry#10726)

<!--Describe what testing was performed and which tests were added.-->
#### Testing
Generated tests have been updated to test new aggregation behavior.

<!--Describe the documentation added.-->
#### Documentation
ran `make gogenerate`
ran `make generate`

<!--Please delete paragraphs that you did not use before submitting.-->
dmitryax pushed a commit to open-telemetry/opentelemetry-collector-contrib that referenced this pull request Jan 30, 2026
…5433)

#### Description
This PR enables dynamic metric configuration at runtime. This means that
collector configuration files can now define a set of attributes for a
metric that they would like to aggregate data by. This can be done on a
per-metric basis for any metric attribute defined at a [requirement
level](open-telemetry/opentelemetry-collector#13913)
of `recommended` or below.

For more information about how reaggregation works please check out
[14281](open-telemetry/opentelemetry-collector#14281).

#### Link to tracking issue
Fixes
[45396](#45396)

#### Testing
Unit tests all pass
hardik-choksi pushed a commit to hardik-choksi/opentelemetry-collector-contrib that referenced this pull request Feb 2, 2026
…en-telemetry#45433)

#### Description
This PR enables dynamic metric configuration at runtime. This means that
collector configuration files can now define a set of attributes for a
metric that they would like to aggregate data by. This can be done on a
per-metric basis for any metric attribute defined at a [requirement
level](open-telemetry/opentelemetry-collector#13913)
of `recommended` or below.

For more information about how reaggregation works please check out
[14281](open-telemetry/opentelemetry-collector#14281).

#### Link to tracking issue
Fixes
[45396](open-telemetry#45396)

#### Testing
Unit tests all pass
songy23 pushed a commit to open-telemetry/opentelemetry-collector-contrib that referenced this pull request Feb 2, 2026
#### Description
This PR enables dynamic metric configuration at runtime. This means that
collector configuration files can now define a set of attributes for a
metric that they would like to aggregate data by. This can be done on a
per-metric basis for any metric attribute defined at a [requirement
level](open-telemetry/opentelemetry-collector#13913)
of `recommended` or below.

For more information about how reaggregation works please check out
[14281](open-telemetry/opentelemetry-collector#14281).

#### Link to tracking issue
Fixes
[45396](#45396)

#### Testing
Unit tests are passing.
dmitryax pushed a commit to open-telemetry/opentelemetry-collector-contrib that referenced this pull request Feb 25, 2026
#### Description
This PR enables dynamic metric configuration at runtime. This means that
collector configuration files can now define a set of attributes for a
metric that they would like to aggregate data by. This can be done on a
per-metric basis for any metric attribute defined at a [requirement
level](open-telemetry/opentelemetry-collector#13913)
of `recommended` or below.

For more information about how reaggregation works please check out
[14281](open-telemetry/opentelemetry-collector#14281).

#### Link to tracking issue
Fixes
[45396](#45396)

#### Testing
Unit tests were updated for the component parts including the `golden`
file for `scraper_test.go`.
antonio-mazzini pushed a commit to antonio-mazzini/opentelemetry-collector-contrib that referenced this pull request Mar 5, 2026
…metry#45409)

#### Description
This PR enables dynamic metric configuration at runtime. This means that
collector configuration files can now define a set of attributes for a
metric that they would like to aggregate data by. This can be done on a
per-metric basis for any metric attribute defined at a [requirement
level](open-telemetry/opentelemetry-collector#13913)
of `recommended` or below.

For more information about how reaggregation works please check out
[14281](open-telemetry/opentelemetry-collector#14281).

#### Link to tracking issue
Fixes
[45396](open-telemetry#45396)

#### Testing
Unit tests were updated for the component parts including the `golden`
file for `scraper_test.go`.
amir-jakoby added a commit to Sawmills/opentelemetry-collector that referenced this pull request Mar 31, 2026
* chore(deps): update module github.com/mattn/go-runewidth to v0.0.19 (#14380)

This PR contains the following updates:

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

---

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

---

### Release Notes

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

###
[`v0.0.19`](https://github.com/mattn/go-runewidth/compare/v0.0.18...v0.0.19)

[Compare
Source](https://github.com/mattn/go-runewidth/compare/v0.0.18...v0.0.19)

###
[`v0.0.18`](https://github.com/mattn/go-runewidth/compare/v0.0.17...v0.0.18)

[Compare
Source](https://github.com/mattn/go-runewidth/compare/v0.0.17...v0.0.18)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "on tuesday" (UTC), 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-collector).

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

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

* chore(deps): update google.golang.org/genproto/googleapis/rpc digest to 0a764e5 (#14365)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[google.golang.org/genproto/googleapis/rpc](https://github.com/googleapis/go-genproto)
| indirect | digest | `ab9386a` → `0a764e5` |

---

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

---

### Configuration

📅 **Schedule**: Branch creation - "on tuesday" (UTC), 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-collector).

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

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: otelbot <197425009+otelbot@users.noreply.github.com>
Co-authored-by: Yang Song <songy23@users.noreply.github.com>

* chore(deps): update module github.com/spf13/pflag to v1.0.10 (#14383)

This PR contains the following updates:

| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
| [github.com/spf13/pflag](https://github.com/spf13/pflag) |
`v1.0.9` → `v1.0.10` |
![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fspf13%2fpflag/v1.0.10?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fspf13%2fpflag/v1.0.9/v1.0.10?slim=true)
|

---

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

---

### Release Notes

<details>
<summary>spf13/pflag (github.com/spf13/pflag)</summary>

###
[`v1.0.10`](https://github.com/spf13/pflag/releases/tag/v1.0.10)

[Compare
Source](https://github.com/spf13/pflag/compare/v1.0.9...v1.0.10)

#### What's Changed

- fix deprecation comment for (FlagSet.)ParseErrorsWhitelist by
[@&#8203;thaJeztah](https://github.com/thaJeztah) in
[#&#8203;447](https://github.com/spf13/pflag/pull/447)
- remove uses of errors.Is, which requires go1.13, move go1.16/go1.21
tests to separate file by
[@&#8203;thaJeztah](https://github.com/thaJeztah) in
[#&#8203;448](https://github.com/spf13/pflag/pull/448)

#### New Contributors

- [@&#8203;thaJeztah](https://github.com/thaJeztah) made their
first contribution in
[#&#8203;447](https://github.com/spf13/pflag/pull/447)

**Full Changelog**:
<https://github.com/spf13/pflag/compare/v1.0.9...v1.0.10>

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "on tuesday" (UTC), 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-collector).

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

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

* chore(deps): update module github.com/stretchr/objx to v0.5.3 (#14384)

This PR contains the following updates:

| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
| [github.com/stretchr/objx](https://github.com/stretchr/objx)
| `v0.5.2` → `v0.5.3` |
![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fstretchr%2fobjx/v0.5.3?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fstretchr%2fobjx/v0.5.2/v0.5.3?slim=true)
|

---

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

---

### Release Notes

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

###
[`v0.5.3`](https://github.com/stretchr/objx/releases/tag/v0.5.3)

[Compare
Source](https://github.com/stretchr/objx/compare/v0.5.2...v0.5.3)

#### What's Changed

- Bump github.com/stretchr/testify from 1.8.4 to 1.9.0 by
[@&#8203;dependabot](https://github.com/dependabot)\[bot] in
[#&#8203;150](https://github.com/stretchr/objx/pull/150)
- Bump github.com/stretchr/testify from 1.9.0 to 1.10.0 by
[@&#8203;dependabot](https://github.com/dependabot)\[bot] in
[#&#8203;152](https://github.com/stretchr/objx/pull/152)
- Add syntax highlighting in README by
[@&#8203;JakeRoggenbuck](https://github.com/JakeRoggenbuck) in
[#&#8203;153](https://github.com/stretchr/objx/pull/153)
- Bump actions/checkout from 4 to 5 by
[@&#8203;dependabot](https://github.com/dependabot)\[bot] in
[#&#8203;155](https://github.com/stretchr/objx/pull/155)
- Bump github.com/stretchr/testify from 1.10.0 to 1.11.0 by
[@&#8203;dependabot](https://github.com/dependabot)\[bot] in
[#&#8203;156](https://github.com/stretchr/objx/pull/156)
- Bump github.com/stretchr/testify from 1.11.0 to 1.11.1 by
[@&#8203;dependabot](https://github.com/dependabot)\[bot] in
[#&#8203;157](https://github.com/stretchr/objx/pull/157)
- Remove codeclimate integration by
[@&#8203;hanzei](https://github.com/hanzei) in
[#&#8203;160](https://github.com/stretchr/objx/pull/160)
- Bump actions/setup-go from 5 to 6 by
[@&#8203;dependabot](https://github.com/dependabot)\[bot] in
[#&#8203;158](https://github.com/stretchr/objx/pull/158)
- Extend test coverage to include go 1.25 by
[@&#8203;hanzei](https://github.com/hanzei) in
[#&#8203;161](https://github.com/stretchr/objx/pull/161)
- Remove duplicate module cache from CI by
[@&#8203;hanzei](https://github.com/hanzei) in
[#&#8203;162](https://github.com/stretchr/objx/pull/162)
- Replace `testify` assertions with custom testing helpers by
[@&#8203;emilien-puget](https://github.com/emilien-puget) in
[#&#8203;159](https://github.com/stretchr/objx/pull/159)

#### New Contributors

- [@&#8203;JakeRoggenbuck](https://github.com/JakeRoggenbuck)
made their first contribution in
[#&#8203;153](https://github.com/stretchr/objx/pull/153)
- [@&#8203;emilien-puget](https://github.com/emilien-puget)
made their first contribution in
[#&#8203;159](https://github.com/stretchr/objx/pull/159)

**Full Changelog**:
<https://github.com/stretchr/objx/compare/v0.5.2...v0.5.3>

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "on tuesday" (UTC), 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-collector).

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

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

* chore(deps): update module go.yaml.in/yaml/v2 to v2.4.3 (#14386)

This PR contains the following updates:

| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
| [go.yaml.in/yaml/v2](https://github.com/yaml/go-yaml) |
`v2.4.2` → `v2.4.3` |
![age](https://developer.mend.io/api/mc/badges/age/go/go.yaml.in%2fyaml%2fv2/v2.4.3?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/go/go.yaml.in%2fyaml%2fv2/v2.4.2/v2.4.3?slim=true)
|

---

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

---

### Release Notes

<details>
<summary>yaml/go-yaml (go.yaml.in/yaml/v2)</summary>

###
[`v2.4.3`](https://github.com/yaml/go-yaml/compare/v2.4.2...v2.4.3)

[Compare
Source](https://github.com/yaml/go-yaml/compare/v2.4.2...v2.4.3)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "on tuesday" (UTC), 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-collector).

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

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

* [chore][processor/memorylimiter] Add hard limit recommendations to readme (#14356)

<!--Ex. Fixing a bug - Describe the bug and how this fixes the issue.
Ex. Adding a feature - Explain what this achieves.-->
#### Description

Updates a few things in the readme:

* Offer general guidance for how to configure the memory limiter
processor depending on the host environment.
* Add a note that receivers may consume memory before the processor can
reject the data.
* Other small touchups

* chore(deps): update module google.golang.org/protobuf to v1.36.11 (#14387)

This PR contains the following updates:

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

---

> [!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.11`](https://github.com/protocolbuffers/protobuf-go/releases/tag/v1.36.11)

[Compare
Source](https://github.com/protocolbuffers/protobuf-go/compare/v1.36.10...v1.36.11)

**Full Changelog**:
<https://github.com/protocolbuffers/protobuf-go/compare/v1.36.10...v1.36.11>

User-visible changes:
[CL/726780](https://go-review.googlesource.com/c/protobuf/+/726780):
encoding/prototext: Support URL chars in type URLs in text-format.

Bug fixes:
[CL/728680](https://go-review.googlesource.com/c/protobuf/+/728680):
internal/impl: check recursion limit in lazy decoding validation
[CL/711015](https://go-review.googlesource.com/c/protobuf/+/711015):
reflect/protodesc: fix handling of import options in dynamic builds

Maintenance:
[CL/728681](https://go-review.googlesource.com/c/protobuf/+/728681):
reflect/protodesc: add support for edition unstable
[CL/727960](https://go-review.googlesource.com/c/protobuf/+/727960):
all: add EDITION\_UNSTABLE support
[CL/727940](https://go-review.googlesource.com/c/protobuf/+/727940):
types: regenerate using latest protobuf v33.2 release
[CL/727140](https://go-review.googlesource.com/c/protobuf/+/727140):
internal/testprotos/lazy: convert .proto files to editions
[CL/723440](https://go-review.googlesource.com/c/protobuf/+/723440):
cmd/protoc-gen-go: add missing annotations for few generated protobuf
symbols.
[CL/720980](https://go-review.googlesource.com/c/protobuf/+/720980):
internal/filedesc: remove duplicative Message.unmarshalOptions
[CL/716360](https://go-review.googlesource.com/c/protobuf/+/716360):
internal/encoding/tag: use proto3 defaults if proto3
[CL/716520](https://go-review.googlesource.com/c/protobuf/+/716520):
proto: un-flake TestHasExtensionNoAlloc
[CL/713342](https://go-review.googlesource.com/c/protobuf/+/713342):
compiler/protogen: properly filter option dependencies in go-protobuf
plugin.
[CL/711200](https://go-review.googlesource.com/c/protobuf/+/711200):
proto: add test for oneofs containing messages with required fields
[CL/710855](https://go-review.googlesource.com/c/protobuf/+/710855):
proto: add explicit test for a non-nil but empty byte slice

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

[Compare
Source](https://github.com/protocolbuffers/protobuf-go/compare/v1.36.9...v1.36.10)

**Full Changelog**:
<https://github.com/protocolbuffers/protobuf-go/compare/v1.36.9...v1.36.10>

Bug fixes:
[CL/704415](https://go-review.googlesource.com/c/protobuf/+/704415):
reflect/protodesc: edition-2024-specific properties should not be lost
when converting FileDescriptorProto to protoreflect.FileDescriptor

Maintenance:
[CL/708555](https://go-review.googlesource.com/c/protobuf/+/708555):
internal/race\_test: add missing impl.LazyEnabled() t.Skip
[CL/703295](https://go-review.googlesource.com/c/protobuf/+/703295):
proto: add more invalid group encoding test cases
[CL/703276](https://go-review.googlesource.com/c/protobuf/+/703276):
internal/impl: verify lazy unmarshal on Deterministic encoding
[CL/703275](https://go-review.googlesource.com/c/protobuf/+/703275):
internal/impl: stop using deprecated .Field in lazy\_test.go
[CL/702795](https://go-review.googlesource.com/c/protobuf/+/702795):
all: update to latest github.com/google/go-cmp

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

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

**Full Changelog**:
<https://github.com/protocolbuffers/protobuf-go/compare/v1.36.8...v1.36.9>

User-visible changes:
[CL/699715](https://go-review.googlesource.com/c/protobuf/+/699715):
cmd/protoc-gen-go: add test for "import option" directive
[CL/699115](https://go-review.googlesource.com/c/protobuf/+/699115):
internal/editionssupport: declare support for edition 2024
[CL/697595](https://go-review.googlesource.com/c/protobuf/+/697595):
editions: Fix spelling mistake in panic message

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "on tuesday" (UTC), 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-collector).

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

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

* fix(deps): update module github.com/shirou/gopsutil/v4 to v4.25.12 (#14388)

This PR contains the following updates:

| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
|
[github.com/shirou/gopsutil/v4](https://github.com/shirou/gopsutil)
| `v4.25.11` → `v4.25.12` |
![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fshirou%2fgopsutil%2fv4/v4.25.12?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fshirou%2fgopsutil%2fv4/v4.25.11/v4.25.12?slim=true)
|

---

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

---

### Release Notes

<details>
<summary>shirou/gopsutil (github.com/shirou/gopsutil/v4)</summary>

###
[`v4.25.12`](https://github.com/shirou/gopsutil/releases/tag/v4.25.12)

[Compare
Source](https://github.com/shirou/gopsutil/compare/v4.25.11...v4.25.12)

<!-- Release notes generated using configuration in .github/release.yml
at v4.25.12 -->

#### What's Changed

##### cpu

- \[cpu]\[linux]: fix ":" in CPU ModelName by
[@&#8203;shirou](https://github.com/shirou) in
[#&#8203;1960](https://github.com/shirou/gopsutil/pull/1960)
- \[cpu]\[linux]: add riscv cpu parser by
[@&#8203;mengzhuo](https://github.com/mengzhuo) in
[#&#8203;1970](https://github.com/shirou/gopsutil/pull/1970)
- \[cpu]\[darwin]: release pCoreRef in each iteration by
[@&#8203;uubulb](https://github.com/uubulb) in
[#&#8203;1971](https://github.com/shirou/gopsutil/pull/1971)
- \[darwin]: wrap library functions as struct methods by
[@&#8203;uubulb](https://github.com/uubulb) in
[#&#8203;1976](https://github.com/shirou/gopsutil/pull/1976)

##### disk

- Fixes
[#&#8203;1284](https://github.com/shirou/gopsutil/issues/1284)
by [@&#8203;johnnybubonic](https://github.com/johnnybubonic) in
[#&#8203;1931](https://github.com/shirou/gopsutil/pull/1931)
- fix disk.Partition cut off after first disk by
[@&#8203;sni](https://github.com/sni) in
[#&#8203;1975](https://github.com/shirou/gopsutil/pull/1975)
- \[disk]\[windows]: add virtual drive for TestGetLogicalDrives by
[@&#8203;shirou](https://github.com/shirou) in
[#&#8203;1977](https://github.com/shirou/gopsutil/pull/1977)
- Add missing mount flags (local, protect) by
[@&#8203;Kerlenton](https://github.com/Kerlenton) in
[#&#8203;1968](https://github.com/shirou/gopsutil/pull/1968)

##### host

- Replace AIX uptime function with ps etimes-based implementation by
[@&#8203;Dylan-M](https://github.com/Dylan-M) in
[#&#8203;1967](https://github.com/shirou/gopsutil/pull/1967)

##### mem

- feat(mem): Add support for Percpu by
[@&#8203;pvlltvk](https://github.com/pvlltvk) in
[#&#8203;1972](https://github.com/shirou/gopsutil/pull/1972)

##### process

- Add NumFDs implementation for Darwin by
[@&#8203;Kerlenton](https://github.com/Kerlenton) in
[#&#8203;1965](https://github.com/shirou/gopsutil/pull/1965)
- \[sensors]\[darwin]: retrieve sensor information in one function call
by [@&#8203;uubulb](https://github.com/uubulb) in
[#&#8203;1973](https://github.com/shirou/gopsutil/pull/1973)

#### New Contributors

- [@&#8203;Kerlenton](https://github.com/Kerlenton) made their
first contribution in
[#&#8203;1965](https://github.com/shirou/gopsutil/pull/1965)
- [@&#8203;sni](https://github.com/sni) made their first
contribution in
[#&#8203;1975](https://github.com/shirou/gopsutil/pull/1975)
- [@&#8203;pvlltvk](https://github.com/pvlltvk) made their
first contribution in
[#&#8203;1972](https://github.com/shirou/gopsutil/pull/1972)
- [@&#8203;mengzhuo](https://github.com/mengzhuo) made their
first contribution in
[#&#8203;1970](https://github.com/shirou/gopsutil/pull/1970)

**Full Changelog**:
<https://github.com/shirou/gopsutil/compare/v4.25.11...v4.25.12>

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "on tuesday" (UTC), 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-collector).

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

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

* chore(deps): update module go.uber.org/zap to v1.27.1 (#14385)

This PR contains the following updates:

| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
| [go.uber.org/zap](https://github.com/uber-go/zap) | `v1.27.0`
→ `v1.27.1` |
![age](https://developer.mend.io/api/mc/badges/age/go/go.uber.org%2fzap/v1.27.1?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/go/go.uber.org%2fzap/v1.27.0/v1.27.1?slim=true)
|

---

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

---

### Release Notes

<details>
<summary>uber-go/zap (go.uber.org/zap)</summary>

###
[`v1.27.1`](https://github.com/uber-go/zap/releases/tag/v1.27.1)

[Compare
Source](https://github.com/uber-go/zap/compare/v1.27.0...v1.27.1)

Enhancements:

- [#&#8203;1501][]: prevent `Object` from panicking on nils
- [#&#8203;1511][]: Fix a race condition in `WithLazy`.

Thanks to [@&#8203;rabbbit](https://github.com/rabbbit),
[@&#8203;alshopov](https://github.com/alshopov),
[@&#8203;jquirke](https://github.com/jquirke),
[@&#8203;arukiidou](https://github.com/arukiidou) for their
contributions to this release.

[#&#8203;1501]: https://github.com/uber-go/zap/pull/1501

[#&#8203;1511]: https://github.com/uber-go/zap/pull/1511

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "on tuesday" (UTC), 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-collector).

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

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

* [chore] Disable noisy indirect dependency updates with Renovate (#14391)

Rolling back
https://github.com/open-telemetry/opentelemetry-collector/pull/14345

Enabling indirect updates does not fully eliminate the need for the
tidy-dependencies job, but it generates a large number of noisy PRs for
every indirect dependency.

We can wait for the resolution of
https://github.com/renovatebot/renovate/issues/12999 and see whether it
helps instead.

* [chore] Fix small issues in renovate.json (#14390)

- Fix google.golang.org grouping. The url is wrong, it's hosted on
github, use package names instead
- Remove trailing comma to have valid json

* [receiver/nop]: add profiles signal support (#14253)

<!--Ex. Fixing a bug - Describe the bug and how this fixes the issue.
Ex. Adding a feature - Explain what this achieves.-->
#### Description

Adds support for `profiles` in the nop receiver.

* Reenable profiles batching (#14313)

With the introduction of `MergeTo` into profiles, we can now reenable
profiles batching! 🥳

Closes
https://github.com/open-telemetry/opentelemetry-collector/issues/13106

* chore: split service metric views into an internal package (#14392)

Those metric views are getting quite frequent updates, and start
becoming less and less trivial to have within a single file.
This splits them into their own internal submodule, so we can start
splitting them into their own submethods as needed later on.

* [chore] [docs] Add component naming guidelines (#14389)

Document the new `lower_snake_case` naming convention for OpenTelemetry
Collector components in the coding guidelines as result of discussion in
#14208.

* Add support for deprecated component type aliases (#14349)

Related to
https://github.com/open-telemetry/opentelemetry-collector/issues/14208

This change allows component authors to register one optional deprecated
alias per component type, enabling smooth migrations when renaming
components. When an alias is used in configuration, the collector will
automatically resolve it to the original component and log a deprecation
warning.

Changes:
- Add `WithDeprecatedTypeAlias` factory option to experimental modules
(xreceiver, xexporter, xprocessor, xconnector)
- Generate alias expansion code in builder template that:
  - Populates factory maps with aliases pointing to original factories
  - Updates module information maps for aliased types
  - Validates that aliases don't conflict with existing component types
- Add deprecation warnings that log when an alias is used: "Using
deprecated alias <alias>; use <original> instead"

Extensions are left aside for now.

* [mdatagen] Add optional display_name field to metadata.yaml (#14115)

## Description

This PR adds an optional `display_name` field to metadata.yaml for
human-readable component names, as requested in #14114.

## Changes

- Added `display_name` field to metadata-schema.yaml
- Updated Metadata struct to include DisplayName field
- Implemented automatic capitalization of type field when display_name
not provided
- Modified readme.md.tmpl to generate README titles from display_name
- Fixed unused import issue in config_test.go.tmpl
- Added test cases for display_name handling
- Regenerated internal test code and README files

## Implementation

Following the implementation guide from @mx-psi:

1. Added the field to the Metadata struct
2. Added title generation section to readme.md.tmpl template
3. Added comprehensive tests covering both explicit and default display
names
4. Verified functionality with OTLP receiver (tested locally)

## Behavior

- When `display_name` is set in metadata.yaml, it will be used as the
README title
- When not set, the component type will be automatically capitalized
(e.g., "otlp" becomes "Otlp")
- Fully backward compatible - existing components without display_name
continue to work

## Testing

- Unit tests added for display_name loading
- Default value generation tested
- Generated test files verified
- CI checks passing (gotidy, misspell, multimod-verify, crosslink)

Fixes #14114

Co-authored-by: SteveYi <steveyiyo@steveyi.net>

---------

Co-authored-by: Pablo Baeyens <pablo.baeyens@datadoghq.com>

* Add metadata.yaml to consumertest (#14252)

This makes consumertest a component, as it can need changelog entries.

* Update release tracking issue to match the actual release docs (#14250)

The release tracking issue is a bit misleading, as not all actions are
actually performed by the collector release manager.
And some actions don't really reflect the release docs.

This splits the core/contrib/releases releases per their respective
managers.

I've also updated the "like" issue to a more recent one.

* Change verbosity level for otelcol_exporter_queue_batch_send_size metric (#14279)

<!-- Issue number if applicable -->
#### Link to tracking issue
Fixes #14278

---------

Signed-off-by: Israel Blancas <iblancasa@gmail.com>

* [chore] use the same modernize as golanglint (#14175)

<!--Ex. Fixing a bug - Describe the bug and how this fixes the issue.
Ex. Adding a feature - Explain what this achieves.-->
#### Description

This PR ensures we use the same modernize package as
[golanglint](https://github.com/golangci/golangci-lint/blob/main/pkg/golinters/modernize/modernize.go#L10)

---------

Signed-off-by: Paulo Dias <paulodias.gm@gmail.com>
Co-authored-by: Alex Boten <223565+codeboten@users.noreply.github.com>

* [chore] move from DialContext to NewClient (#13663)

<!--Ex. Fixing a bug - Describe the bug and how this fixes the issue.
Ex. Adding a feature - Explain what this achieves.-->
#### Description

Use grpc.NewClient instead of grpc.DialContext

<!-- Issue number if applicable -->
#### Link to tracking issue
Fixes #13632 

<!--Describe what testing was performed and which tests were added.-->
#### Testing

<!--Describe the documentation added.-->
#### Documentation

<!--Please delete paragraphs that you did not use before submitting.-->

---------

Signed-off-by: sivchari <shibuuuu5@gmail.com>

* [chore][receiver/otlp] Add sequential logs benchmark (#14398)

<!--Ex. Fixing a bug - Describe the bug and how this fixes the issue.
Ex. Adding a feature - Explain what this achieves.-->
#### Description

Adds two benchmarks for receiving OTLP logs over HTTP (proto) and gRPC.

The goal is to have reliable but not necessarily realistic benchmarks.
As such this benchmark does not test concurrent requests (which is
important and we should do on a different PR).

If these look okay and prove to be non-flaky enough on main, I will add
benchmarks for the other stable signals as well.

<!-- Issue number if applicable -->
#### Link to tracking issue

Updates #14111
Updates #12979

* builder: avoid duplicate CLI error logging in generated main (#14317)

### Problem

When running an invalid CLI command (for example `otelcorecol foo`),
Cobra already prints a user-facing error message.

However, the builder-generated `main.go` also logs the same error using
`log.Fatalf`, which results in duplicate error output.

### Solution

This change updates the builder template to:
- remove `log.Fatalf` from `main()`
- exit with a non-zero status using `os.Exit(1)`
- allow Cobra to fully own CLI error output

### Result

**Before**

```
Error: unknown command "foo" for "otelcorecol"
Run 'otelcorecol --help' for usage.
collector server run finished with error: unknown command "foo" for "otelcorecol"
```

**After**
```
Error: unknown command "foo" for "otelcorecol"
Run 'otelcorecol --help' for usage.
```

### Notes

- Change is limited to
`cmd/builder/internal/builder/templates/main.go.tmpl`
- No behavior change for successful execution paths
- Exit code behavior remains unchanged

**Closes:** #14302

* [exporter/otlphttp] rename to `otlp_http` with deprecated alias `otlphttp` (#14397)

Part of
https://github.com/open-telemetry/opentelemetry-collector/issues/14396

* [chore] Simplify experimental factory wrappers (#14395)

Removes unnecessary `factoryOpts` wrapper structs from all x-prefixed
components, simplifying factory option handling by applying options
directly to the factory.

* [xscraperhelper] init package (#14235)

#### Description

Along with `scraper/xscraper` this package is needed to enable OTel
Profiling signal receivers, such as
[receiver/pprofreceiver](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/receiver).

#### Link to tracking issue
Fixes #

<!--Describe what testing was performed and which tests were added.-->
#### Testing

<!--Describe the documentation added.-->
#### Documentation

<!--Please delete paragraphs that you did not use before submitting.-->

---------

Signed-off-by: Florian Lehner <dev@der-flo.net>
Signed-off-by: Florian Lehner <florian.lehner@elastic.co>

* [chore] [consumer/consumererror/xconsumererror] Add metadata yaml (#14182)

<!--Ex. Fixing a bug - Describe the bug and how this fixes the issue.
Ex. Adding a feature - Explain what this achieves.-->
#### Description
This PR adds a metadata yaml file to the
`consumer/consumererror/xconsumererror` component, allowing it to be
referenced in changelogs.

<!-- Issue number if applicable -->
#### Link to tracking issue
Allows #14152 to progress.

<!--Describe what testing was performed and which tests were added.-->
#### Testing
Tried it first in that PR before opening as a separate PR.

<!--Describe the documentation added.-->
#### Documentation

<!--Please delete paragraphs that you did not use before submitting.-->

Co-authored-by: Damien Mathieu <42@dmathieu.com>
Co-authored-by: Pablo Baeyens <pablo.baeyens@datadoghq.com>

* [consumer/consumertest] Add ProfileCount() (#14251)

<!--Ex. Fixing a bug - Describe the bug and how this fixes the issue.
Ex. Adding a feature - Explain what this achieves.-->
#### Description

In #14239 `(Profiles)ProfileCount() int` was introduced. Provide this
function also in consumertests for other tests.


<!-- Issue number if applicable -->
#### Link to tracking issue
Fixes #

<!--Describe what testing was performed and which tests were added.-->
#### Testing

<!--Describe the documentation added.-->
#### Documentation

<!--Please delete paragraphs that you did not use before submitting.-->

---------

Signed-off-by: Florian Lehner <florian.lehner@elastic.co>

* [mdatagen] Enable configurable attributes for metrics (#14281)

Reopens
[13900](https://github.com/open-telemetry/opentelemetry-collector/pull/13900)

#### Description
Modified `cmd/mdatagen` to allow for two new fields in the configuration
yaml of metrics. These new configuration options will allow for a user
to enable or disable attributes (i.e. reduce dimensionality of metrics
being generated) from their collector configuration. The modified
`MetricsBuilder` generated by `mdatagen` does not record disabled
attributes and automatically re-aggregates metrics based on the
resulting enabled set of attributes. There are four different
aggregation strategies supported (`sum, average, min, and max`) which
can be specified as a setting in `config.yaml`.

The changes to the config.yaml are:
```yaml
receiver:
  someMetricReceiver:
    ...
    metrics:
    ...
      attributes: [<list of attributes to include for metric at runtime>] # new
      aggregation_strategy: <sum|avg|min|max> # new
```
Attribute `requirement_level` takes president over this re-aggregation
and any metric attribute with a `requirement_level` of `required` cannot
be disabled in this way. For more information on `requirement_level`
please see
[13913](https://github.com/open-telemetry/opentelemetry-collector/pull/13913)

The set of attributes provided by the user _must_ be contained in the
set of attributes defined in the metadata.yaml, including an attribute
which is not defined in the metrics `metadata` file will fail. Also,
attempting to omit an attribute defined as `requirement_level: required`
will cause the configuration to fail and the collector not to start.
Omitting the field entirely will default to the defined set of metric
attributes in the `metadata` file with a requirement level of
`recommended` or above.

Due to its large scope and foundational nature, a featuregate has been
added for this change. This gate is represented by a new field in the
`metadata.yaml`, `reaggregation_enabled: <bool>`. Setting this to `true`
will enable the new codegen with spatial reaggregation features.

<!-- Issue number if applicable -->
#### Link to tracking issue
Fixes
[10726](https://github.com/open-telemetry/opentelemetry-collector/issues/10726)

<!--Describe what testing was performed and which tests were added.-->
#### Testing
Generated tests have been updated to test new aggregation behavior.

<!--Describe the documentation added.-->
#### Documentation
ran `make gogenerate`
ran `make generate`

<!--Please delete paragraphs that you did not use before submitting.-->

* [chore] Reuse logStabilityLevel in extension factory (#14406)

* [xextension] Add deprecated type alias support for extensions (#14405)

Add support for deprecated component type aliases to extensions,
following the implementation started in #14349

The new `xextension.WithDeprecatedTypeAlias` factory option allows
extension authors to register deprecated type aliases using:

  ```go
  xextension.NewFactory(
      newType,
      createDefaultConfig,
      createExtension,
      component.StabilityLevelAlpha,
      xextension.WithDeprecatedTypeAlias(oldType),
  )

* Update All go.opentelemetry.io/collector packages to v0.143.0 (#14418)

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

This PR contains the following updates:

| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
|
[go.opentelemetry.io/collector/component/componenttest](https://github.com/open-telemetry/opentelemetry-collector)
| `v0.0.0-00010101000000-000000000000` → `v0.143.0` |
![age](https://developer.mend.io/api/mc/badges/age/go/go.opentelemetry.io%2fcollector%2fcomponent%2fcomponenttest/v0.143.0?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/go/go.opentelemetry.io%2fcollector%2fcomponent%2fcomponenttest/v0.0.0-00010101000000-000000000000/v0.143.0?slim=true)
|
|
[go.opentelemetry.io/collector/pipeline/xpipeline](https://github.com/open-telemetry/opentelemetry-collector)
| `v0.141.0` → `v0.143.0` |
![age](https://developer.mend.io/api/mc/badges/age/go/go.opentelemetry.io%2fcollector%2fpipeline%2fxpipeline/v0.143.0?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/go/go.opentelemetry.io%2fcollector%2fpipeline%2fxpipeline/v0.141.0/v0.143.0?slim=true)
|
|
[go.opentelemetry.io/collector/scraper/scraperhelper](https://github.com/open-telemetry/opentelemetry-collector)
| `v0.141.0` → `v0.143.0` |
![age](https://developer.mend.io/api/mc/badges/age/go/go.opentelemetry.io%2fcollector%2fscraper%2fscraperhelper/v0.143.0?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/go/go.opentelemetry.io%2fcollector%2fscraper%2fscraperhelper/v0.141.0/v0.143.0?slim=true)
|
|
[go.opentelemetry.io/collector/scraper/xscraper](https://github.com/open-telemetry/opentelemetry-collector)
| `v0.0.0-20251128160438-7012862e3615` → `v0.143.0` |
![age](https://developer.mend.io/api/mc/badges/age/go/go.opentelemetry.io%2fcollector%2fscraper%2fxscraper/v0.143.0?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/go/go.opentelemetry.io%2fcollector%2fscraper%2fxscraper/v0.0.0-20251128160438-7012862e3615/v0.143.0?slim=true)
|

---

> [!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/component/componenttest)</summary>

###
[`v0.143.0`](https://github.com/open-telemetry/opentelemetry-collector/blob/HEAD/CHANGELOG.md#v1490v01430)

[Compare
Source](https://github.com/open-telemetry/opentelemetry-collector/compare/v0.142.0...v0.143.0)

##### 💡 Enhancements 💡

- `all`: Update semconv import to 1.38.0
([#&#8203;14305](https://github.com/open-telemetry/opentelemetry-collector/issues/14305))
- `exporter/nop`: Add profiles support to nop exporter
([#&#8203;14331](https://github.com/open-telemetry/opentelemetry-collector/issues/14331))
- `pkg/pdata`: Optimize the size and pointer bytes for pdata structs
([#&#8203;14339](https://github.com/open-telemetry/opentelemetry-collector/issues/14339))
- `pkg/pdata`: Avoid using interfaces/oneof like style for optional
fields
([#&#8203;14333](https://github.com/open-telemetry/opentelemetry-collector/issues/14333))

<!-- previous-version -->

###
[`v0.142.0`](https://github.com/open-telemetry/opentelemetry-collector/blob/HEAD/CHANGELOG.md#v1480v01420)

[Compare
Source](https://github.com/open-telemetry/opentelemetry-collector/compare/v0.141.0...v0.142.0)

##### 💡 Enhancements 💡

- `exporter/debug`: Add logging of dropped attributes, events, and links
counts in detailed verbosity
([#&#8203;14202](https://github.com/open-telemetry/opentelemetry-collector/issues/14202))

- `extension/memory_limiter`: The memorylimiter extension can be used as
an HTTP/GRPC middleware.
([#&#8203;14081](https://github.com/open-telemetry/opentelemetry-collector/issues/14081))

- `pkg/config/configgrpc`: Statically validate gRPC endpoint
([#&#8203;10451](https://github.com/open-telemetry/opentelemetry-collector/issues/10451))
This validation was already done in the OTLP exporter. It will now be
applied to any gRPC client.

- `pkg/service`: Add support to disabling adding resource attributes as
zap fields in internal logging
([#&#8203;13869](https://github.com/open-telemetry/opentelemetry-collector/issues/13869))
  Note that this does not affect logs exported through OTLP.

<!-- previous-version -->

###
[`v0.141.0`](https://github.com/open-telemetry/opentelemetry-collector/blob/HEAD/CHANGELOG.md#v1470v01410)

[Compare
Source](https://github.com/open-telemetry/opentelemetry-collector/compare/v0.140.0...v0.141.0)

##### 🛑 Breaking changes 🛑

- `pkg/config/confighttp`: Use configoptional.Optional for
confighttp.ClientConfig.Cookies field
([#&#8203;14021](https://github.com/open-telemetry/opentelemetry-collector/issues/14021))

##### 💡 Enhancements 💡

- `pkg/config/confighttp`: Setting `compression_algorithms` to an empty
list now disables automatic decompression, ignoring Content-Encoding
([#&#8203;14131](https://github.com/open-telemetry/opentelemetry-collector/issues/14131))
- `pkg/service`: Update semantic conventions from internal telemetry to
v1.37.0
([#&#8203;14232](https://github.com/open-telemetry/opentelemetry-collector/issues/14232))
- `pkg/xscraper`: Implement xscraper for Profiles.
([#&#8203;13915](https://github.com/open-telemetry/opentelemetry-collector/issues/13915))

##### 🧰 Bug fixes 🧰

- `pkg/config/configoptional`: Ensure that configoptional.None values
resulting from unmarshaling are equivalent to configoptional.Optional
zero value.
([#&#8203;14218](https://github.com/open-telemetry/opentelemetry-collector/issues/14218))

<!-- previous-version -->

###
[`v0.140.0`](https://github.com/open-telemetry/opentelemetry-collector/blob/HEAD/CHANGELOG.md#v1460v01400)

[Compare
Source](https://github.com/open-telemetry/opentelemetry-collector/compare/v0.139.0...v0.140.0)

##### 💡 Enhancements 💡

- `cmd/mdatagen`: `metadata.yaml` now supports an optional `entities`
section to organize resource attributes into logical entities with
identity and description attributes
([#&#8203;14051](https://github.com/open-telemetry/opentelemetry-collector/issues/14051))
When entities are defined, mdatagen generates
`AssociateWith{EntityType}()` methods on ResourceBuilder
that associate resources with entity types using the entity refs API.
The entities section is backward
compatible - existing metadata.yaml files without entities continue to
work as before.

- `cmd/mdatagen`: Add semconv reference for metrics
([#&#8203;13920](https://github.com/open-telemetry/opentelemetry-collector/issues/13920))

- `connector/forward`: Add support for Profiles to Profiles
([#&#8203;14092](https://github.com/open-telemetry/opentelemetry-collector/issues/14092))

- `exporter/debug`: Disable sending queue by default
([#&#8203;14138](https://github.com/open-telemetry/opentelemetry-collector/issues/14138))
The recently added sending queue configuration in Debug exporter was
enabled by default and had a problematic default size of 1.
  This change disables the sending queue by default.
  Users can enable and configure the sending queue if needed.

- `pkg/config/configoptional`: Mark `configoptional.AddEnabledField` as
beta
([#&#8203;14021](https://github.com/open-telemetry/opentelemetry-collector/issues/14021))

- `pkg/otelcol`: This feature has been improved and tested;
secure-by-default redacts configopaque values
([#&#8203;12369](https://github.com/open-telemetry/opentelemetry-collector/issues/12369))

##### 🧰 Bug fixes 🧰

- `all`: Ensure service service.instance.id is the same for all the
signals when it is autogenerated.
([#&#8203;14140](https://github.com/open-telemetry/opentelemetry-collector/issues/14140))

<!-- previous-version -->

###
[`v0.139.0`](https://github.com/open-telemetry/opentelemetry-collector/blob/HEAD/CHANGELOG.md#v1450v01390)

[Compare
Source](https://github.com/open-telemetry/opentelemetry-collector/compare/v0.138.0...v0.139.0)

##### 🛑 Breaking changes 🛑

- `cmd/mdatagen`: Make stability.level a required field for metrics
([#&#8203;14070](https://github.com/open-telemetry/opentelemetry-collector/issues/14070))

- `cmd/mdatagen`: Replace `optional` field with `requirement_level`
field for attributes in metadata schema
([#&#8203;13913](https://github.com/open-telemetry/opentelemetry-collector/issues/13913))
The `optional` boolean field for attributes has been replaced with a
`requirement_level` field that accepts enum values: `required`,
`conditionally_required`, `recommended`, or `opt_in`.
  - `required`: attribute is always included and cannot be excluded
- `conditionally_required`: attribute is included by default when
certain conditions are met (replaces `optional: true`)
- `recommended`: attribute is included by default but can be disabled
via configuration (replaces `optional: false`)
- `opt_in`: attribute is not included unless explicitly enabled in user
config
When `requirement_level` is not specified, it defaults to `recommended`.

- `pdata/pprofile`: Remove deprecated `PutAttribute` helper method
([#&#8203;14082](https://github.com/open-telemetry/opentelemetry-collector/issues/14082))

- `pdata/pprofile`: Remove deprecated `PutLocation` helper method
([#&#8203;14082](https://github.com/open-telemetry/opentelemetry-collector/issues/14082))

##### 💡 Enhancements 💡

- `all`: Add FIPS and non-FIPS implementations for allowed TLS curves
([#&#8203;13990](https://github.com/open-telemetry/opentelemetry-collector/issues/13990))
- `cmd/builder`: Set CGO\_ENABLED=0 by default, add the `cgo_enabled`
configuration to enable it.
([#&#8203;10028](https://github.com/open-telemetry/opentelemetry-collector/issues/10028))
- `pkg/config/configgrpc`: Errors of type status.Status returned from an
Authenticator extension are being propagated as is to the upstream
client.
([#&#8203;14005](https://github.com/open-telemetry/opentelemetry-collector/issues/14005))
- `pkg/config/configoptional`: Adds new `configoptional.AddEnabledField`
feature gate that allows users to explicitly disable a
`configoptional.Optional` through a new `enabled` field.
([#&#8203;14021](https://github.com/open-telemetry/opentelemetry-collector/issues/14021))
- `pkg/exporterhelper`: Replace usage of gogo proto for persistent queue
metadata
([#&#8203;14079](https://github.com/open-telemetry/opentelemetry-collector/issues/14079))
- `pkg/pdata`: Remove usage of gogo proto and generate the structs with
pdatagen
([#&#8203;14078](https://github.com/open-telemetry/opentelemetry-collector/issues/14078))

##### 🧰 Bug fixes 🧰

- `exporter/debug`: add queue configuration
([#&#8203;14101](https://github.com/open-telemetry/opentelemetry-collector/issues/14101))

<!-- previous-version -->

###
[`v0.138.0`](https://github.com/open-telemetry/opentelemetry-collector/blob/HEAD/CHANGELOG.md#v1440v01380)

[Compare
Source](https://github.com/open-telemetry/opentelemetry-collector/compare/v0.137.0...v0.138.0)

##### 🛑 Breaking changes 🛑

- `all`: Remove deprecated type `TracesConfig`
([#&#8203;14036](https://github.com/open-telemetry/opentelemetry-collector/issues/14036))

- `pkg/exporterhelper`: Add default values for `sending_queue::batch`
configuration.
([#&#8203;13766](https://github.com/open-telemetry/opentelemetry-collector/issues/13766))
Setting `sending_queue::batch` to an empty value now results in the same
setup as the default batch processor configuration.

- `all`: Add unified print-config command with mode support (redacted,
unredacted), json support (unstable), and validation support.
([#&#8203;11775](https://github.com/open-telemetry/opentelemetry-collector/issues/11775))
This replaces the `print-initial-config` command. See the `service`
package README for more details. The original command name
`print-initial-config` remains an alias, to be retired with the feature
flag.

##### 💡 Enhancements 💡

- `all`: Add `keep_alives_enabled` option to ServerConfig to control
HTTP keep-alives for all components that create an HTTP server.
([#&#8203;13783](https://github.com/open-telemetry/opentelemetry-collector/issues/13783))
- `pkg/otelcol`: Avoid unnecessary mutex in collector logs, replace by
atomic pointer
([#&#8203;14008](https://github.com/open-telemetry/opentelemetry-collector/issues/14008))
- `cmd/mdatagen`: Add lint/ordering validation for metadata.yaml
([#&#8203;13781](https://github.com/open-telemetry/opentelemetry-collector/issues/13781))
- `pdata/xpdata`: Refactor JSON marshaling and unmarshaling to use
`pcommon.Value` instead of `AnyValue`.
([#&#8203;13837](https://github.com/open-telemetry/opentelemetry-collector/issues/13837))
- `pkg/exporterhelper`: Expose `MergeCtx` in exporterhelper's queue
batch settings\`
([#&#8203;13742](https://github.com/open-telemetry/opentelemetry-collector/issues/13742))

##### 🧰 Bug fixes 🧰

- `all`: Fix zstd decoder data corruption due to decoder pooling for all
components that create an HTTP server.
([#&#8203;13954](https://github.com/open-telemetry/opentelemetry-collector/issues/13954))
- `pkg/otelcol`: Remove UB when taking internal logs and move them to
the final zapcore.Core
([#&#8203;14009](https://github.com/open-telemetry/opentelemetry-collector/issues/14009))
  This can happen because of a race on accessing `logsTaken`.
- `pkg/confmap`: Fix a potential race condition in confmap by closing
the providers first.
([#&#8203;14018](https://github.com/open-telemetry/opentelemetry-collector/issues/14018))

<!-- previous-version -->

###
[`v0.137.0`](https://github.com/open-telemetry/opentelemetry-collector/blob/HEAD/CHANGELOG.md#v1430v01370)

[Compare
Source](https://github.com/open-telemetry/opentelemetry-collector/compare/v0.136.0...v0.137.0)

##### 💡 Enhancements 💡

- `cmd/mdatagen`: Improve validation for resource attribute `enabled`
field in metadata files
([#&#8203;12722](https://github.com/open-telemetry/opentelemetry-collector/issues/12722))
Resource attributes now require an explicit `enabled` field in
metadata.yaml files, while regular attributes
are prohibited from having this field. This improves validation and
prevents configuration errors.

- `all`: Changelog entries will now have their component field checked
against a list of valid components.
([#&#8203;13924](https://github.com/open-telemetry/opentelemetry-collector/issues/13924))
This will ensure a more standardized changelog format which makes it
easier to parse.

- `pkg/pdata`: Mark featuregate pdata.useCustomProtoEncoding as stable
([#&#8203;13883](https://github.com/open-telemetry/opentelemetry-collector/issues/13883))

<!-- previous-version -->

###
[`v0.136.0`](https://github.com/open-telemetry/opentelemetry-collector/blob/HEAD/CHANGELOG.md#v1420v01360)

[Compare
Source](https://github.com/open-telemetry/opentelemetry-collector/compare/v0.135.0...v0.136.0)

##### 💡 Enhancements 💡

- `xpdata`: Add Serialization and Deserialization of AnyValue
([#&#8203;12826](https://github.com/open-telemetry/opentelemetry-collector/issues/12826))
- `debugexporter`: add support for batching
([#&#8203;13791](https://github.com/open-telemetry/opentelemetry-collector/issues/13791))
  The default queue size is 1
- `configtls`: Add early validation for TLS server configurations to
fail fast when certificates are missing instead of failing at runtime.
([#&#8203;13130](https://github.com/open-telemetry/opentelemetry-collector/issues/13130),
[#&#8203;13245](https://github.com/open-telemetry/opentelemetry-collector/issues/13245))
- `mdatagen`: Expose stability level in generated metric documentation
([#&#8203;13748](https://github.com/open-telemetry/opentelemetry-collector/issues/13748))
- `internal/tools`: Add support for modernize in Makefile
([#&#8203;13796](https://github.com/open-telemetry/opentelemetry-collector/issues/13796))

##### 🧰 Bug fixes 🧰

- `otelcol`: Fix a potential deadlock during collector shutdown.
([#&#8203;13740](https://github.com/open-telemetry/opentelemetry-collector/issues/13740))
- `otlpexporter`: fix the validation of unix socket endpoints
([#&#8203;13826](https://github.com/open-telemetry/opentelemetry-collector/issues/13826))

<!-- previous-version -->

###
[`v0.135.0`](https://github.com/open-telemetry/opentelemetry-collector/blob/HEAD/CHANGELOG.md#v1410v01350)

[Compare
Source](https://github.com/open-telemetry/opentelemetry-collector/compare/v0.134.0...v0.135.0)

##### 💡 Enhancements 💡

- `exporterhelper`: Add new `exporter_queue_batch_send_size` and
`exporter_queue_batch_send_size_bytes` metrics, showing the size of
telemetry batches from the exporter.
([#&#8203;12894](https://github.com/open-telemetry/opentelemetry-collector/issues/12894))

<!-- previous-version -->

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

[Compare
Source](https://github.com/open-telemetry/opentelemetry-collector/compare/v0.133.0...v0.134.0)

##### 💡 Enhancements 💡

- `pdata`: Add custom grpc/encoding that replaces proto and calls into
the custom marshal/unmarshal logic in pdata.
([#&#8203;13631](https://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://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://github.com/open-telemetry/opentelemetry-collector/issues/13607))

##### 🧰 Bug fixes 🧰

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

<!-- previous-version -->

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

[Compare
Source](https://github.com/open-telemetry/opentelemetry-collector/compare/v0.132.0...v0.133.0)

##### 🛑 Breaking changes 🛑

- `all`: Increase minimum Go version to 1.24
([#&#8203;13627](https://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://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://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://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://github.com/open-telemetry/opentelemetry-collector/issues/12207),
[#&#8203;12802](https://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://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://github.com/open-telemetry/opentelemetry-collector/issues/13634))

- `service`: Implement refcounting for pipeline data owned memory.
([#&#8203;13631](https://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://github.com/open-telemetry/opentelemetry-collector/issues/13357))

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

- `otlpreceiver`: Log the listening addresses of the receiver, rather
than the configured endpoints.
([#&#8203;13654](https://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://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://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://github.com/open-telemetry/opentelemetry-collector/issues/13689))
- `service`: Ensure the insecure configuration is accounted for when
normalizing the endpoint.
([#&#8203;13691](https://github.com/open-telemetry/opentelemetry-collector/issues/13691))
- `configoptional`: Allow validating nested types
([#&#8203;13579](https://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://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 -->

###
[`v0.132.0`](https://github.com/open-telemetry/opentelemetry-collector/blob/HEAD/CHANGELOG.md#v1380v01320)

[Compare
Source](https://github.com/open-telemetry/opentelemetry-collector/compare/v0.131.0...v0.132.0)

##### 🛑 Breaking changes 🛑

- `componentstatus`: Change the signature of the
componentstatus.NewEvent to accept multiple options.
([#&#8203;13210](https://github.com/open-telemetry/opentelemetry-collector/issues/13210))
Changes the signature of the component.NewEvent to accept multiple
EventBuilderOption,
  like the new WithAttributes constructor.

##### 🚩 Deprecations 🚩

- `service`: move service.noopTraceProvider feature gate to deprecated
stage
([#&#8203;13492](https://github.com/open-telemetry/opentelemetry-collector/issues/13492))
The functionality of the feature gate is available via configuration
with the following telemetry settings:
  ```
  service:
    telemetry:
      traces:
        level: none
  ```

- `mdatagen`: Remove the deletion of
`generated_component_telemetry_test.go`.
([#&#8203;12067](https://github.com/open-telemetry/opentelemetry-collector/issues/12067))
This file used to be generated by mdatagen. Starting with 0.122.0, the
code deletes that file.
It is no longer necessary to delete the file, as code has had time to
upgrade to mdatagen and delete the file.

- `service`: The `telemetry.disableHighCardinalityMetrics` feature gate
is deprecated
([#&#8203;13537](https://github.com/open-telemetry/opentelemetry-collector/issues/13537))
The feature gate is now deprecated s…
avleentwilio pushed a commit to avleentwilio/opentelemetry-collector-contrib that referenced this pull request Apr 1, 2026
…metry#45409)

#### Description
This PR enables dynamic metric configuration at runtime. This means that
collector configuration files can now define a set of attributes for a
metric that they would like to aggregate data by. This can be done on a
per-metric basis for any metric attribute defined at a [requirement
level](open-telemetry/opentelemetry-collector#13913)
of `recommended` or below.

For more information about how reaggregation works please check out
[14281](open-telemetry/opentelemetry-collector#14281).

#### Link to tracking issue
Fixes
[45396](open-telemetry#45396)

#### Testing
Unit tests were updated for the component parts including the `golden`
file for `scraper_test.go`.
andrzej-stencel pushed a commit to open-telemetry/opentelemetry-collector-contrib that referenced this pull request Apr 6, 2026
<!--Ex. Fixing a bug - Describe the bug and how this fixes the issue.
Ex. Adding a feature - Explain what this achieves.-->
#### Description
This PR enables dynamic metric configuration at runtime. This means that
collector configuration files can now define a set of attributes for a
metric that they would like to aggregate data by. This can be done on a
per-metric basis for any metric attribute defined at a [requirement
level](open-telemetry/opentelemetry-collector#13913)
of `recommended` or below.

For more information about how reaggregation works please check out
open-telemetry/opentelemetry-collector#14281.

<!-- Issue number (e.g. #1234) or full URL to issue, if applicable. -->
#### Link to tracking issue
Fixes #46346

<!--Describe what testing was performed and which tests were added.-->
#### Testing
Unit tests are passing

Signed-off-by: Shaanveer Singh <shaanver.singh@gmail.com>
emiliaFer pushed a commit to emiliaFer/opentelemetry-collector-contrib that referenced this pull request Apr 8, 2026
…emetry#46408)

<!--Ex. Fixing a bug - Describe the bug and how this fixes the issue.
Ex. Adding a feature - Explain what this achieves.-->
#### Description
This PR enables dynamic metric configuration at runtime. This means that
collector configuration files can now define a set of attributes for a
metric that they would like to aggregate data by. This can be done on a
per-metric basis for any metric attribute defined at a [requirement
level](open-telemetry/opentelemetry-collector#13913)
of `recommended` or below.

For more information about how reaggregation works please check out
open-telemetry/opentelemetry-collector#14281.

<!-- Issue number (e.g. open-telemetry#1234) or full URL to issue, if applicable. -->
#### Link to tracking issue
Fixes open-telemetry#46346

<!--Describe what testing was performed and which tests were added.-->
#### Testing
Unit tests are passing

Signed-off-by: Shaanveer Singh <shaanver.singh@gmail.com>
MovieStoreGuy pushed a commit to open-telemetry/opentelemetry-collector-contrib that referenced this pull request Apr 15, 2026
#### Description
Enables dynamic metric reaggregation in the Chrony receiver. Collector
configuration files can now define a set of attributes per metric to
aggregate data by. This can be done for any metric attribute at a
[requirement
level](open-telemetry/opentelemetry-collector#13913)
of `recommended` or below.

For more information about how reaggregation works, see
open-telemetry/opentelemetry-collector#14281.

Changes:
- Set `reaggregation_enabled: true` in `metadata.yaml`
- Set `leap.status` attribute to `requirement_level: recommended`
- Ran `go generate ./...` to regenerate all derived files

#### Link to tracking issue
Fixes
#46350
Part of
#45396

#### Testing
- `go test -race ./...` in `receiver/chronyreceiver/` — all 27 tests
pass (including `reaggregate_set`)
- `go vet ./...` — clean
- `make chlog-validate` — valid

#### Documentation
No documentation changes needed. The generated `documentation.md` is
updated automatically by `go generate`.
AndrewCharlesHay pushed a commit to AndrewCharlesHay/opentelemetry-collector-contrib that referenced this pull request Apr 23, 2026
…emetry#46408)

<!--Ex. Fixing a bug - Describe the bug and how this fixes the issue.
Ex. Adding a feature - Explain what this achieves.-->
#### Description
This PR enables dynamic metric configuration at runtime. This means that
collector configuration files can now define a set of attributes for a
metric that they would like to aggregate data by. This can be done on a
per-metric basis for any metric attribute defined at a [requirement
level](open-telemetry/opentelemetry-collector#13913)
of `recommended` or below.

For more information about how reaggregation works please check out
open-telemetry/opentelemetry-collector#14281.

<!-- Issue number (e.g. open-telemetry#1234) or full URL to issue, if applicable. -->
#### Link to tracking issue
Fixes open-telemetry#46346

<!--Describe what testing was performed and which tests were added.-->
#### Testing
Unit tests are passing

Signed-off-by: Shaanveer Singh <shaanver.singh@gmail.com>
AndrewCharlesHay pushed a commit to AndrewCharlesHay/opentelemetry-collector-contrib that referenced this pull request Apr 23, 2026
#### Description
Enables dynamic metric reaggregation in the Chrony receiver. Collector
configuration files can now define a set of attributes per metric to
aggregate data by. This can be done for any metric attribute at a
[requirement
level](open-telemetry/opentelemetry-collector#13913)
of `recommended` or below.

For more information about how reaggregation works, see
open-telemetry/opentelemetry-collector#14281.

Changes:
- Set `reaggregation_enabled: true` in `metadata.yaml`
- Set `leap.status` attribute to `requirement_level: recommended`
- Ran `go generate ./...` to regenerate all derived files

#### Link to tracking issue
Fixes
open-telemetry#46350
Part of
open-telemetry#45396

#### Testing
- `go test -race ./...` in `receiver/chronyreceiver/` — all 27 tests
pass (including `reaggregate_set`)
- `go vet ./...` — clean
- `make chlog-validate` — valid

#### Documentation
No documentation changes needed. The generated `documentation.md` is
updated automatically by `go generate`.
gracewehner pushed a commit to gracewehner/opentelemetry-collector-contrib that referenced this pull request Apr 29, 2026
#### Description
Enables dynamic metric reaggregation in the Chrony receiver. Collector
configuration files can now define a set of attributes per metric to
aggregate data by. This can be done for any metric attribute at a
[requirement
level](open-telemetry/opentelemetry-collector#13913)
of `recommended` or below.

For more information about how reaggregation works, see
open-telemetry/opentelemetry-collector#14281.

Changes:
- Set `reaggregation_enabled: true` in `metadata.yaml`
- Set `leap.status` attribute to `requirement_level: recommended`
- Ran `go generate ./...` to regenerate all derived files

#### Link to tracking issue
Fixes
open-telemetry#46350
Part of
open-telemetry#45396

#### Testing
- `go test -race ./...` in `receiver/chronyreceiver/` — all 27 tests
pass (including `reaggregate_set`)
- `go vet ./...` — clean
- `make chlog-validate` — valid

#### Documentation
No documentation changes needed. The generated `documentation.md` is
updated automatically by `go generate`.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants