Skip to content

Chore/filter goleak test - #1

Open
Goutham-Annem wants to merge 88 commits into
mainfrom
chore/filter-goleak-test
Open

Chore/filter goleak test#1
Goutham-Annem wants to merge 88 commits into
mainfrom
chore/filter-goleak-test

Conversation

@Goutham-Annem

Copy link
Copy Markdown
Owner

Description

Adds a tests: goleak: declaration to the filter package's metadata.yaml and the corresponding generated_package_test.go so that goroutine leaks are detected automatically on every test run. Follows the same pattern as open-telemetry#15632.

Testing

Ran go test ./... in filter/ — all tests pass with goleak enabled

Authorship

  • I, a human, wrote this pull request description myself.

renovate Bot and others added 30 commits June 16, 2026 09:38
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [CodSpeedHQ/action](https://redirect.github.com/CodSpeedHQ/action) |
action | patch | `v4.17.0` → `v4.17.5` |

---

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

---

### Release Notes

<details>
<summary>CodSpeedHQ/action (CodSpeedHQ/action)</summary>

###
[`v4.17.5`](https://redirect.github.com/CodSpeedHQ/action/releases/tag/v4.17.5)

[Compare
Source](https://redirect.github.com/CodSpeedHQ/action/compare/v4.17.0...v4.17.5)

#### Release Notes

This release bundles all runner changes from `4.17.1` through `4.17.5`.

##### <!-- 0 -->🚀 Features

- Add optional `mode` arg to target setup by
[@&open-telemetry#8203;fargito](https://redirect.github.com/fargito) in
[#&open-telemetry#8203;397](https://redirect.github.com/CodSpeedHQ/runner/pull/397)
- Restore DYLD\_INSERT\_LIBRARIES from SAMPLY\_ alias by
[@&open-telemetry#8203;not-matthias](https://redirect.github.com/not-matthias)
- Bump valgrind-codspeed to 3.26.0-0codspeed3 by
[@&open-telemetry#8203;adriencaccia](https://redirect.github.com/adriencaccia)

##### <!-- 1 -->🐛 Bug Fixes

- Purge inherited mappings on execve to fix unknown symbols
([#&open-telemetry#8203;392](https://redirect.github.com/CodSpeedHQ/action/issues/392))
by
[@&open-telemetry#8203;GuillaumeLagrange](https://redirect.github.com/GuillaumeLagrange)
in [#&open-telemetry#8203;392](https://redirect.github.com/CodSpeedHQ/runner/pull/392)
- Use %p in log file path to avoid multi-process overwrite by
[@&open-telemetry#8203;not-matthias](https://redirect.github.com/not-matthias) in
[#&open-telemetry#8203;381](https://redirect.github.com/CodSpeedHQ/runner/pull/381)
- Compare codspeed iteration of installed valgrind by
[@&open-telemetry#8203;not-matthias](https://redirect.github.com/not-matthias)

##### <!-- 10 -->💼 Other

- Enable set -u to match go.sh by
[@&open-telemetry#8203;not-matthias](https://redirect.github.com/not-matthias) in
[#&open-telemetry#8203;389](https://redirect.github.com/CodSpeedHQ/runner/pull/389)

##### <!-- 2 -->🏗️ Refactor

- Parse codspeed iteration from version string by
[@&open-telemetry#8203;not-matthias](https://redirect.github.com/not-matthias)

##### <!-- 7 -->⚙️ Internals

- Bump samply by
[@&open-telemetry#8203;not-matthias](https://redirect.github.com/not-matthias)
- Bump samply to fix sigkill by
[@&open-telemetry#8203;not-matthias](https://redirect.github.com/not-matthias) in
[#&open-telemetry#8203;386](https://redirect.github.com/CodSpeedHQ/runner/pull/386)
- Log detected valgrind version by
[@&open-telemetry#8203;not-matthias](https://redirect.github.com/not-matthias) in
[#&open-telemetry#8203;390](https://redirect.github.com/CodSpeedHQ/runner/pull/390)
- Bump samply-codspeed to disable jit classification and add
fp-anchoring to unwinding
([#&open-telemetry#8203;382](https://redirect.github.com/CodSpeedHQ/action/issues/382))
by
[@&open-telemetry#8203;GuillaumeLagrange](https://redirect.github.com/GuillaumeLagrange)
in [#&open-telemetry#8203;382](https://redirect.github.com/CodSpeedHQ/runner/pull/382)

#### Install codspeed-runner 4.17.5

##### Install prebuilt binaries via shell script

```sh
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/CodSpeedHQ/codspeed/releases/download/v4.17.5/codspeed-runner-installer.sh | sh
```

#### Download codspeed-runner 4.17.5

| File | Platform | Checksum |
|
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
| ------------------- |
-------------------------------------------------------------------------------------------------------------------------------------
|
|
[codspeed-runner-aarch64-apple-darwin.tar.gz](https://redirect.github.com/CodSpeedHQ/codspeed/releases/download/v4.17.5/codspeed-runner-aarch64-apple-darwin.tar.gz)
| Apple Silicon macOS |
[checksum](https://redirect.github.com/CodSpeedHQ/codspeed/releases/download/v4.17.5/codspeed-runner-aarch64-apple-darwin.tar.gz.sha256)
|
|
[codspeed-runner-aarch64-unknown-linux-musl.tar.gz](https://redirect.github.com/CodSpeedHQ/codspeed/releases/download/v4.17.5/codspeed-runner-aarch64-unknown-linux-musl.tar.gz)
| ARM64 MUSL Linux |
[checksum](https://redirect.github.com/CodSpeedHQ/codspeed/releases/download/v4.17.5/codspeed-runner-aarch64-unknown-linux-musl.tar.gz.sha256)
|
|
[codspeed-runner-x86\_64-unknown-linux-musl.tar.gz](https://redirect.github.com/CodSpeedHQ/codspeed/releases/download/v4.17.5/codspeed-runner-x86_64-unknown-linux-musl.tar.gz)
| x64 MUSL Linux |
[checksum](https://redirect.github.com/CodSpeedHQ/codspeed/releases/download/v4.17.5/codspeed-runner-x86_64-unknown-linux-musl.tar.gz.sha256)
|

**Full Runner Changelog**:
<https://github.com/CodSpeedHQ/codspeed/blob/main/CHANGELOG.md>

**Full Changelog**:
<CodSpeedHQ/action@v4.17.0...v4.17.5>

</details>

---

### Configuration

📅 **Schedule**: (UTC)

- Branch creation
  - "on tuesday"
- 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:eyJjcmVhdGVkSW5WZXIiOiI0My4yMTkuMCIsInVwZGF0ZWRJblZlciI6IjQzLjIxOS4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiLCJyZW5vdmF0ZWJvdCJdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
…gen package targeting (open-telemetry#15453)

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

This change fixes mode detection for `-p` by resolving the target
package's on-disk source directory via a lightweight `packages.Load`
call before reading its `metadata.yaml`. This works for any package
reachable from the local module graph, including cross-repo dependencies
present in the module cache. When the package is not in the local module
graph, detection falls back to the existing default; a new `-m
component|package` flag is provided as a manual override for that case.

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

Changes covered with unit tests.

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

Updated `README.md` .

<!--Authorship attestation. See AGENTS.md for details. AI agents must
not check this box on behalf
of the user; the human author must check it themselves before the PR is
ready for review.-->
#### Authorship

- [x] I, a human, wrote this pull request description myself.

<!--Please delete paragraphs that you did not use before submitting.-->
…dling (open-telemetry#15452)

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

PR provides fix for pattern propagation in schema resolver (when `-r`
flag set) and improves overall error handling for better debugging.

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

Unit tests updated.

#### Authorship

- [x] I, a human, wrote this pull request description myself.

<!--Please delete paragraphs that you did not use before submitting.-->
<!--Ex. Fixing a bug - Describe the bug and how this fixes the issue.
Ex. Adding a feature - Explain what this achieves.-->
#### Description

This allows metadata to specify versioned metrics, which will allow
migration to the latest semantic-conventions for collector components.
For example, if a metric name remains the same but its type or
attributes change, we can specify the latest versioned metric with '@'.

For example

```yaml
  # Metric that keeps the same visible name but changes type (gauge -> sum)
  system.cpu.utilization:
    enabled: true
    description: CPU utilization as a ratio.
    stability: beta
    unit: "1"
    gauge:
      value_type: double
    migration:
      to: system.cpu.utilization@v1
      through_gates:
        disable_old: receiver.hostmetrics.DontEmitV0SystemConventions
        enable_new: receiver.hostmetrics.EmitV1SystemConventions
    attributes: [cpu, state]

  system.cpu.utilization@v1:
    # Emit under the stable user-facing name
    enabled: true
    description: CPU utilization as a monotonic cumulative sum.
    stability: beta
    unit: "1"
    sum:
      value_type: double
      aggregation_temporality: cumulative
      monotonic: true
    attributes: [cpu.logical_number, state]
```

For same-name metrics, dual emission of both legacy and latest is not
allowed, see RFC
[here](https://github.com/open-telemetry/opentelemetry-collector/blob/main/docs/rfcs/semconv-feature-gates.md#handling-conflicts-during-double-publishing).

There are two scenarios:
- If the type differs (e.g., Gauge to Sum), only the latest metric is
emitted with the new type.
- If the attributes differ, only the latest metric is emitted, but with
attributes from both legacy and latest versions.
- For different-name metrics (e.g., linux.memory.available →
system.memory.linux.available), both can be emitted during migration.

## Output

### Legacy and Latest Metric have the same name but its type and
attributes differ

#### metadata schema

```yaml
type: cpu

status:
  class: scraper
  stability:
    beta: [metrics]
  distributions: [core, contrib, k8s]
  codeowners:
    active: [dmitryax, braydonk, rogercoll]

reaggregation_enabled: true

sem_conv_version: 1.9.0

feature_gates:
  - id: receiver.hostmetrics.DontEmitV0SystemConventions
    description: When enabled, semconv legacy attributes are disabled.
    stage: alpha
    from_version: v0.145.0
    reference_url: open-telemetry/opentelemetry-collector-contrib#45592
    skip_strict_validation: true
  - id: receiver.hostmetrics.EmitV1SystemConventions
    description: When enabled, semconv stable attributes are enabled.
    stage: alpha
    from_version: v0.145.0
    reference_url: open-telemetry/opentelemetry-collector-contrib#45592
    skip_strict_validation: true

attributes:
  cpu:
    description: Logical CPU number starting at 0.
    type: string
    requirement_level: recommended

  cpu.logical_number:
    description: The logical CPU number [0, n-1].
    type: int

  state:
    description: Breakdown of CPU usage by type.
    type: string
    requirement_level: recommended
    enum: [idle, interrupt, nice, softirq, steal, system, user, wait]

metrics:
  system.cpu.frequency:
    enabled: false
    description: Current frequency of the CPU core in Hz.
    unit: "Hz"
    stability: development
    gauge:
      value_type: double
    attributes: [cpu]
    migration:
      to: system.cpu.frequency@v1
      through_gates:
        disable_old: receiver.hostmetrics.DontEmitV0SystemConventions
        enable_new: receiver.hostmetrics.EmitV1SystemConventions
    warnings:
      if_enabled_not_set: This metric will be disabled by default in a future release. Use system.cpu.frequency@v1 instead.

  system.cpu.frequency@v1:
    enabled: false
    description: Current frequency of the CPU core in Hz. (V1)
    unit: "Hz"
    stability: development
    gauge:
      value_type: double
    attributes: [cpu.logical_number]

  # Legacy metric - deprecated but still enabled by default for backward compatibility
  system.cpu.time:
    enabled: true
    description: Total seconds each logical CPU spent on each mode.
    unit: s
    stability: development
    sum:
      value_type: double
      monotonic: true
      aggregation_temporality: cumulative
    attributes: [cpu, state]
    migration:
      to: system.cpu.time@v1
      through_gates:
        disable_old: receiver.hostmetrics.DontEmitV0SystemConventions
        enable_new: receiver.hostmetrics.EmitV1SystemConventions
    warnings:
      if_enabled_not_set: This metric will be disabled by default in a future release. Use system.cpu.time@v1 instead.

  # New semconv metric - disabled by default, users opt-in
  system.cpu.time@v1:
    enabled: true
    description: CPU time in milliseconds (new semantic conventions)
    stability: beta
    unit: s
    gauge:
      value_type: double
    attributes: [cpu.logical_number, state]
```

#### Output

Log warning

```bash
warn	metadata/generated_metrics.go:783	[WARNING] Legacy metric `system.cpu.time` disabled: same emitted name as `system.cpu.time@v1` with different type; only latest will be emitted	{"resource": {"service.instance.id": "af346afa-9484-4139-b03c-6358aa7cf73b", "service.name": "otelcontribcol", "service.version": "0.152.0-dev"}, "otelcol.component.id": "hostmetrics", "otelcol.component.kind": "receiver", "otelcol.signal": "metrics", "scraper": "cpu"}

warn	metadata/generated_metrics.go:789	[WARNING] Legacy metric `system.cpu.time` disabled: same emitted name as `system.cpu.time@v1` with different attributes; only latest will be emitted with combined attributes	{"resource": {"service.instance.id": "d98ac78b-9da6-44c7-98f4-a3b0c6eb18e0", "service.name": "otelcontribcol", "service.version": "0.152.0-dev"}, "otelcol.component.id": "hostmetrics", "otelcol.component.kind": "receiver", "otelcol.signal": "metrics", "scraper": "cpu", "legacy_attributes": ["cpu", "state"], "latest_attributes": ["cpu.logical_number", "state"]}
```

Metrics and attributes outpu

```bash
Metric #1
Descriptor:
     -> Name: system.cpu.time
     -> Description: CPU time in milliseconds (new semantic conventions)
     -> Unit: s
     -> DataType: Gauge
NumberDataPoints #0
Data point attributes:
     -> cpu.logical_number: Int(0)
     -> state: Str(user)
     -> cpu: Str(cpu0)
StartTimestamp: 2026-05-29 08:24:40 +0000 UTC
Timestamp: 2026-06-03 15:40:48.535052237 +0000 UTC
Value: 6815.740000
NumberDataPoints #1
Data point attributes:
     -> cpu.logical_number: Int(0)
     -> state: Str(system)
     -> cpu: Str(cpu0)
StartTimestamp: 2026-05-29 08:24:40 +0000 UTC
Timestamp: 2026-06-03 15:40:48.535052237 +0000 UTC
Value: 2271.130000
```

<!-- Issue number if applicable -->
#### Link to tracking issue
This work is linked to an issue in collector-contrib:
open-telemetry/opentelemetry-collector-contrib#45592

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

- Added unit tests for migration validation (`TestValidateMigrations`)
- Added generated tests for versioned metrics (`TestVersionedMetrics`)
- Created samplemigrationscraper to demonstrate versioned metric
scenarios

<!--Describe the documentation added.-->
#### Documentation
- Created samplemigrationscraper metadata.yaml with examples
- Updated metadata-schema.yaml with migration information

<!--Please delete paragraphs that you did not use before submitting.-->
A bug in mdatagen was causing generated files to be left behind when the
last feature gate in a metadata.yaml file was removed.

---------

Signed-off-by: Alex Boten <223565+codeboten@users.noreply.github.com>
)

This PR contains the following updates:

| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
|
[github.com/cenkalti/backoff/v5](https://redirect.github.com/cenkalti/backoff)
| `v5.0.3` → `v6.0.0` |
![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fcenkalti%2fbackoff%2fv5/v6.0.0?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fcenkalti%2fbackoff%2fv5/v5.0.3/v6.0.0?slim=true)
|

:warning: MAJOR VERSION UPDATE :warning: - please manually update this
package

---

### Release Notes

<details>
<summary>cenkalti/backoff (github.com/cenkalti/backoff/v5)</summary>

###
[`v6.0.0`](https://redirect.github.com/cenkalti/backoff/compare/v5.0.3...v6.0.0)

[Compare
Source](https://redirect.github.com/cenkalti/backoff/compare/v5.0.3...v6.0.0)

</details>

---

### Configuration

📅 **Schedule**: (UTC)

- Branch creation
  - "on tuesday"
- 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:eyJjcmVhdGVkSW5WZXIiOiI0My4yMTkuMCIsInVwZGF0ZWRJblZlciI6IjQzLjIxOS4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJkZXBlbmRlbmN5LW1ham9yLXVwZGF0ZSJdfQ==-->

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Yang Song <yang.song@datadoghq.com>
…ing (open-telemetry#15445)

<!--Ex. Fixing a bug - Describe the bug and how this fixes the issue.
Ex. Adding a feature - Explain what this achieves.-->
#### Description
The recommended processor ordering list in `processor/README.md` had the
correct order but no explanation of why each processor belongs in its
position. Added a brief inline rationale to each numbered item so
readers understand the reasoning: `memory_limiter` first to shed load
early, filters before enrichment to avoid processing data that will be
dropped, context-dependent processors before batch, and batch last so
you don't batch data you'll later discard.


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

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


<!--Describe the documentation added.-->
#### Documentation
Updated `processor/README.md` — the "Recommended Processors" numbered
list now includes inline reasoning for each item.


<!--Authorship attestation. See AGENTS.md for details. AI agents must
not check this box on behalf
of the user; the human author must check it themselves before the PR is
ready for review.-->
#### Authorship

- [x] I, a human, wrote this pull request description myself.

---------

Co-authored-by: Alex Boten <223565+codeboten@users.noreply.github.com>
…limiter prefix (open-telemetry#15167)

#### Description
Renames deprecated memory limiter metrics to include the
`memory_limiter` prefix for improved clarity and consistency.

#### Link to tracking issue
Fixes open-telemetry#11203

#### Testing
- Ran `go generate ./...`
- Ran `go test ./... -count=1`

#### Documentation
- Updated metric names in `documentation.md`

---------

Co-authored-by: bradyawn <38081482+bradyawn@users.noreply.github.com>
Co-authored-by: Alex Boten <223565+codeboten@users.noreply.github.com>
<!--Ex. Fixing a bug - Describe the bug and how this fixes the issue.
Ex. Adding a feature - Explain what this achieves.-->
#### Description
Fixed the incorrect ToVersion comment to reflect that it returns the
version information when the gate will be removed.

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

#### Authorship

- [x] I, a human, wrote this pull request description myself.

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

Co-authored-by: Alex Boten <223565+codeboten@users.noreply.github.com>
…en-telemetry#15465)

Two doc comments in config/configoptional/optional.go spelled
"dereferenceable" as "derefenceable". Comment-only fix, no behavior
change (Skip Changelog).

Signed-off-by: s3onghyun <s3onghyun.hong@gmail.com>
Add an opt-in configuration snapshot path for extensions that need more
than the Collector's effective configuration. The new API exposes a
single `ConfigSnapshot` abstraction instead of separate watcher APIs for
each representation.

Proposed solution for
open-telemetry#15432.

Related contrib use case:
open-telemetry/opentelemetry-collector-contrib#44341

### New public API surface

- `confmap.(*Resolver).UnexpandedConf() *Conf`: returns the merged
configuration captured by the most recent `Resolve` call before
provider/env-var references were expanded. Returns nil if `Resolve` has
not been called.
- `extension/extensioncapabilities.ConfigSnapshot`: provides access to
config representations. It currently exposes `Effective()` and
`Unexpanded()`, and can grow with additional representations later
without adding separate watcher interfaces.
- `extension/extensioncapabilities.NewConfigSnapshot(effective,
unexpanded *confmap.Conf) ConfigSnapshot`: creates a snapshot and
returns owned `confmap.Conf` copies from its accessors.
- `extension/extensioncapabilities.ConfigSnapshotWatcher`: optional
extension interface notified through `NotifyConfigSnapshot(ctx,
ConfigSnapshot)`.
- `service.Settings.ConfigSnapshot`: optional field passed to config
snapshot watchers during `Service.Start`.
- `service/extensions.(*Extensions).NotifyConfigSnapshot(ctx,
ConfigSnapshot) error`: invokes `NotifyConfigSnapshot` on registered
extensions and falls back to deprecated `ConfigWatcher` for
compatibility.

### Compatibility

`extensioncapabilities.ConfigWatcher`, `service.Settings.CollectorConf`,
and `service/extensions.(*Extensions).NotifyConfig` are deprecated, but
existing effective-config watchers keep working. `otelcol.Collector`
still sets `CollectorConf` when constructing `service.Settings`.

The unexpanded config is redacted by mirroring the effective redacted
config: `configopaque.String` values are redacted unless the entire
original leaf is a provider reference such as `${env:TOKEN}`.

#### Authorship

- [x] I, a human, wrote this pull request description myself.

---------

Co-authored-by: Pablo Baeyens <pbaeyens31+github@gmail.com>
Co-authored-by: Evan Bradley <11745660+evan-bradley@users.noreply.github.com>
…ith ref-site nodes (open-telemetry#15462)

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

This PR fixes following problem: when `exported_configs` defines both a
parent struct and a child struct, and the parent references the child
via `$ref`, `mdatagen` generated the wrong struct-level validator name
for the child type.

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

Added unit test.

<!--Authorship attestation. See AGENTS.md for details. AI agents must
not check this box on behalf
of the user; the human author must check it themselves before the PR is
ready for review.-->
#### Authorship

- [x] I, a human, wrote this pull request description myself.

<!--Please delete paragraphs that you did not use before submitting.-->
…ed (open-telemetry#15440)

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

Use `metadata.yaml` schema to generate go code and json schema for
middleware config.
This PR contains the following updates:

| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
| [golang.org/x/net](https://pkg.go.dev/golang.org/x/net) | [`v0.55.0` →
`v0.56.0`](https://cs.opensource.google/go/x/net/+/refs/tags/v0.55.0...refs/tags/v0.56.0)
|
![age](https://developer.mend.io/api/mc/badges/age/go/golang.org%2fx%2fnet/v0.56.0?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/go/golang.org%2fx%2fnet/v0.55.0/v0.56.0?slim=true)
|
| [golang.org/x/tools](https://pkg.go.dev/golang.org/x/tools) |
[`v0.45.0` →
`v0.46.0`](https://cs.opensource.google/go/x/tools/+/refs/tags/v0.45.0...refs/tags/v0.46.0)
|
![age](https://developer.mend.io/api/mc/badges/age/go/golang.org%2fx%2ftools/v0.46.0?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/go/golang.org%2fx%2ftools/v0.45.0/v0.46.0?slim=true)
|

---

### Configuration

📅 **Schedule**: (UTC)

- Branch creation
  - "on tuesday"
- 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://redirect.github.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- 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:eyJjcmVhdGVkSW5WZXIiOiI0My4yMTkuMCIsInVwZGF0ZWRJblZlciI6IjQzLjIxOS4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiLCJyZW5vdmF0ZWJvdCJdfQ==-->

---------

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>
Co-authored-by: Yang Song <yang.song@datadoghq.com>
Co-authored-by: Alex Boten <223565+codeboten@users.noreply.github.com>
Removes the mdatagen `reaggregation_enabled` opt-out and the legacy
template branch that generated shared metric config
The following commands were run to prepare this release:
- make chlog-update VERSION=v1.61.0/v0.155.0
- make prepare-release PREVIOUS_VERSION=1[.]60[.]0
RELEASE_CANDIDATE=1.61.0 MODSET=stable
- make prepare-release PREVIOUS_VERSION=0[.]154[.]0
RELEASE_CANDIDATE=0.155.0 MODSET=beta

---------

Co-authored-by: otelbot <197425009+otelbot@users.noreply.github.com>
…emetry#15488)

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

Primitive exported config schemas now generate distinct named Go types,
including custom underlying primitive types such as `type PortNumber
int32`. Fields referencing those exported primitive configs keep the
named type, while defaults and validation remain generated inline on the
referencing field. Also fixes resolver handling so inline validation
overrides on `$ref` fields are preserved without overwriting the
original `$defs` type declaration.


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

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

1. Added `samplepkg` example
2. Unit tests coverage

<!--Authorship attestation. See AGENTS.md for details. AI agents must
not check this box on behalf
of the user; the human author must check it themselves before the PR is
ready for review.-->
#### Authorship

- [x] I, a human, wrote this pull request description myself.

<!--Please delete paragraphs that you did not use before submitting.-->
…#15483)

This PR contains the following updates:

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

---

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

---

### Release Notes

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

###
[`v0.69.0`](https://redirect.github.com/prometheus/common/blob/HEAD/CHANGELOG.md#v0690--2026-06-17)

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

##### Security / behavior changes

- **config: credentials are no longer forwarded across cross-host
redirects.** When `FollowRedirects` is enabled, the HTTP client now
strips `Authorization`, `Cookie`, `Proxy-Authorization` and other
sensitive headers, and skips basic-auth, bearer-token and OAuth2
credentials, when a redirect points to a different host. This aligns
with Go's `net/http` behavior. Callers that relied on credentials being
sent to a redirect target on another host will need to target that host
directly.
[#&open-telemetry#8203;901](https://redirect.github.com/prometheus/common/issues/901)
[#&open-telemetry#8203;920](https://redirect.github.com/prometheus/common/issues/920)
[#&open-telemetry#8203;921](https://redirect.github.com/prometheus/common/issues/921)
- config: `LoadHTTPConfigFile` now resolves relative file paths (e.g.
`*_file` credentials, `http_headers` files) against the config file's
own directory instead of its parent directory. Configs that worked
around the old behavior by prefixing paths with the config's directory
name must drop that prefix.
[#&open-telemetry#8203;925](https://redirect.github.com/prometheus/common/issues/925)

##### Bugfixes

- expfmt: fix nil pointer panic when parsing empty braces `{}`.
[#&open-telemetry#8203;922](https://redirect.github.com/prometheus/common/issues/922)
- model: fix `Time.UnmarshalJSON` for larger negative numbers.
[#&open-telemetry#8203;918](https://redirect.github.com/prometheus/common/issues/918)

##### Performance

- model: reduce allocations in `Time.UnmarshalJSON`.
[#&open-telemetry#8203;918](https://redirect.github.com/prometheus/common/issues/918)

##### Internal

- Synchronize common files from prometheus/prometheus.
[#&open-telemetry#8203;917](https://redirect.github.com/prometheus/common/issues/917)
- Modernize Go.
[#&open-telemetry#8203;919](https://redirect.github.com/prometheus/common/issues/919)

**Full Changelog**:
<prometheus/common@v0.68.1...v0.69.0>

</details>

---

### Configuration

📅 **Schedule**: (UTC)

- Branch creation
  - "on tuesday"
- 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:eyJjcmVhdGVkSW5WZXIiOiI0My4yMzUuMCIsInVwZGF0ZWRJblZlciI6IjQzLjIzNS4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiLCJyZW5vdmF0ZWJvdCJdfQ==-->

---------

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>
Co-authored-by: Alex Boten <223565+codeboten@users.noreply.github.com>
…y#15481)

This PR contains the following updates:

| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
|
[github.com/cenkalti/backoff/v6](https://redirect.github.com/cenkalti/backoff)
| `v6.0.0` → `v6.0.1` |
![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fcenkalti%2fbackoff%2fv6/v6.0.1?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fcenkalti%2fbackoff%2fv6/v6.0.0/v6.0.1?slim=true)
|

---

### Release Notes

<details>
<summary>cenkalti/backoff (github.com/cenkalti/backoff/v6)</summary>

###
[`v6.0.1`](https://redirect.github.com/cenkalti/backoff/compare/v6.0.0...v6.0.1)

[Compare
Source](https://redirect.github.com/cenkalti/backoff/compare/v6.0.0...v6.0.1)

</details>

---

### Configuration

📅 **Schedule**: (UTC)

- Branch creation
  - "on tuesday"
- 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:eyJjcmVhdGVkSW5WZXIiOiI0My4yMzUuMCIsInVwZGF0ZWRJblZlciI6IjQzLjIzNS4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiLCJyZW5vdmF0ZWJvdCJdfQ==-->

---------

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>
Co-authored-by: Alex Boten <223565+codeboten@users.noreply.github.com>
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [actions/cache](https://redirect.github.com/actions/cache) | action |
major | `v5.0.5` → `v6.0.0` |
| [actions/checkout](https://redirect.github.com/actions/checkout) |
action | major | `v6.0.3` → `v7.0.0` |
| [actions/checkout](https://redirect.github.com/actions/checkout) |
action | major | `v6` → `v7` |

---

### Release Notes

<details>
<summary>actions/cache (actions/cache)</summary>

###
[`v6.0.0`](https://redirect.github.com/actions/cache/releases/tag/v6.0.0)

[Compare
Source](https://redirect.github.com/actions/cache/compare/v6.0.0...v6.0.0)

#### What's Changed

- Update packages, migrate to ESM by
[@&open-telemetry#8203;Samirat](https://redirect.github.com/Samirat) in
[#&open-telemetry#8203;1760](https://redirect.github.com/actions/cache/pull/1760)

**Full Changelog**:
<actions/cache@v5...v6.0.0>

###
[`v6`](https://redirect.github.com/actions/cache/compare/v5.0.5...v6.0.0)

[Compare
Source](https://redirect.github.com/actions/cache/compare/v5.0.5...v6.0.0)

</details>

<details>
<summary>actions/checkout (actions/checkout)</summary>

###
[`v7.0.0`](https://redirect.github.com/actions/checkout/blob/HEAD/CHANGELOG.md#v700)

[Compare
Source](https://redirect.github.com/actions/checkout/compare/v7.0.0...v7.0.0)

- Block checking out fork PR for pull\_request\_target and workflow\_run
by [@&open-telemetry#8203;aiqiaoy](https://redirect.github.com/aiqiaoy) in
[#&open-telemetry#8203;2454](https://redirect.github.com/actions/checkout/pull/2454)
- Bump actions/publish-immutable-action from 0.0.3 to 0.0.4 in the
minor-actions-dependencies group across 1 directory by
[@&open-telemetry#8203;dependabot](https://redirect.github.com/dependabot)\[bot] in
[#&open-telemetry#8203;2458](https://redirect.github.com/actions/checkout/pull/2458)
- Bump flatted from 3.3.1 to 3.4.2 by
[@&open-telemetry#8203;dependabot](https://redirect.github.com/dependabot)\[bot] in
[#&open-telemetry#8203;2460](https://redirect.github.com/actions/checkout/pull/2460)
- Bump js-yaml from 4.1.0 to 4.2.0 by
[@&open-telemetry#8203;dependabot](https://redirect.github.com/dependabot)\[bot] in
[#&open-telemetry#8203;2461](https://redirect.github.com/actions/checkout/pull/2461)
- Bump [@&open-telemetry#8203;actions/core](https://redirect.github.com/actions/core)
and
[@&open-telemetry#8203;actions/tool-cache](https://redirect.github.com/actions/tool-cache)
and Remove uuid by
[@&open-telemetry#8203;dependabot](https://redirect.github.com/dependabot)\[bot] in
[#&open-telemetry#8203;2459](https://redirect.github.com/actions/checkout/pull/2459)
- upgrade module to esm and update dependencies by
[@&open-telemetry#8203;aiqiaoy](https://redirect.github.com/aiqiaoy) in
[#&open-telemetry#8203;2463](https://redirect.github.com/actions/checkout/pull/2463)
- Bump the minor-npm-dependencies group across 1 directory with 3
updates by
[@&open-telemetry#8203;dependabot](https://redirect.github.com/dependabot)\[bot] in
[#&open-telemetry#8203;2462](https://redirect.github.com/actions/checkout/pull/2462)

###
[`v7`](https://redirect.github.com/actions/checkout/blob/HEAD/CHANGELOG.md#v700)

[Compare
Source](https://redirect.github.com/actions/checkout/compare/v6.0.3...v7.0.0)

- Block checking out fork PR for pull\_request\_target and workflow\_run
by [@&open-telemetry#8203;aiqiaoy](https://redirect.github.com/aiqiaoy) in
[#&open-telemetry#8203;2454](https://redirect.github.com/actions/checkout/pull/2454)
- Bump actions/publish-immutable-action from 0.0.3 to 0.0.4 in the
minor-actions-dependencies group across 1 directory by
[@&open-telemetry#8203;dependabot](https://redirect.github.com/dependabot)\[bot] in
[#&open-telemetry#8203;2458](https://redirect.github.com/actions/checkout/pull/2458)
- Bump flatted from 3.3.1 to 3.4.2 by
[@&open-telemetry#8203;dependabot](https://redirect.github.com/dependabot)\[bot] in
[#&open-telemetry#8203;2460](https://redirect.github.com/actions/checkout/pull/2460)
- Bump js-yaml from 4.1.0 to 4.2.0 by
[@&open-telemetry#8203;dependabot](https://redirect.github.com/dependabot)\[bot] in
[#&open-telemetry#8203;2461](https://redirect.github.com/actions/checkout/pull/2461)
- Bump [@&open-telemetry#8203;actions/core](https://redirect.github.com/actions/core)
and
[@&open-telemetry#8203;actions/tool-cache](https://redirect.github.com/actions/tool-cache)
and Remove uuid by
[@&open-telemetry#8203;dependabot](https://redirect.github.com/dependabot)\[bot] in
[#&open-telemetry#8203;2459](https://redirect.github.com/actions/checkout/pull/2459)
- upgrade module to esm and update dependencies by
[@&open-telemetry#8203;aiqiaoy](https://redirect.github.com/aiqiaoy) in
[#&open-telemetry#8203;2463](https://redirect.github.com/actions/checkout/pull/2463)
- Bump the minor-npm-dependencies group across 1 directory with 3
updates by
[@&open-telemetry#8203;dependabot](https://redirect.github.com/dependabot)\[bot] in
[#&open-telemetry#8203;2462](https://redirect.github.com/actions/checkout/pull/2462)

</details>

---

### Configuration

📅 **Schedule**: (UTC)

- Branch creation
  - "on tuesday"
- 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://redirect.github.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- 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:eyJjcmVhdGVkSW5WZXIiOiI0My4yMzUuMCIsInVwZGF0ZWRJblZlciI6IjQzLjIzNS4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiLCJyZW5vdmF0ZWJvdCJdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Alex Boten <223565+codeboten@users.noreply.github.com>
This PR contains the following updates:

| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
| [golang.org/x/vuln](https://pkg.go.dev/golang.org/x/vuln) | [`v1.3.0`
→
`v1.4.0`](https://cs.opensource.google/go/x/vuln/+/refs/tags/v1.3.0...refs/tags/v1.4.0)
|
![age](https://developer.mend.io/api/mc/badges/age/go/golang.org%2fx%2fvuln/v1.4.0?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/go/golang.org%2fx%2fvuln/v1.3.0/v1.4.0?slim=true)
|

---

### Configuration

📅 **Schedule**: (UTC)

- Branch creation
  - "on tuesday"
- 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://redirect.github.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- 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:eyJjcmVhdGVkSW5WZXIiOiI0My4yMzUuMCIsInVwZGF0ZWRJblZlciI6IjQzLjIzNS4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiLCJyZW5vdmF0ZWJvdCJdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Yang Song <songy23@users.noreply.github.com>
Co-authored-by: Alex Boten <223565+codeboten@users.noreply.github.com>
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [CodSpeedHQ/action](https://redirect.github.com/CodSpeedHQ/action) |
action | patch | `v4.17.5` → `v4.17.6` |
|
[zizmorcore/zizmor-action](https://redirect.github.com/zizmorcore/zizmor-action)
| action | patch | `v0.5.6` → `v0.5.7` |

---

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

---

### Release Notes

<details>
<summary>CodSpeedHQ/action (CodSpeedHQ/action)</summary>

###
[`v4.17.6`](https://redirect.github.com/CodSpeedHQ/action/releases/tag/v4.17.6)

[Compare
Source](https://redirect.github.com/CodSpeedHQ/action/compare/v4.17.5...v4.17.6)

#### Release Notes

##### <!-- 0 -->🚀 Features

- feat: skip hash check error when installing pre-release by
[@&open-telemetry#8203;GuillaumeLagrange](https://redirect.github.com/GuillaumeLagrange)
in [#&open-telemetry#8203;215](https://redirect.github.com/CodSpeedHQ/action/pull/215)
- Show memtrack capability status in setup status by
[@&open-telemetry#8203;not-matthias](https://redirect.github.com/not-matthias)
- Run memtrack sudo-less via file capabilities by
[@&open-telemetry#8203;not-matthias](https://redirect.github.com/not-matthias)
- Use extra events when using samply on linux by
[@&open-telemetry#8203;GuillaumeLagrange](https://redirect.github.com/GuillaumeLagrange)
in [#&open-telemetry#8203;404](https://redirect.github.com/CodSpeedHQ/runner/pull/404)
- Update `PerfEvent` to also support samply format by
[@&open-telemetry#8203;GuillaumeLagrange](https://redirect.github.com/GuillaumeLagrange)
- Use isolation for with samply by
[@&open-telemetry#8203;GuillaumeLagrange](https://redirect.github.com/GuillaumeLagrange)
- Make eh\_frame\_hdr optional in unwind data (V4) by
[@&open-telemetry#8203;not-matthias](https://redirect.github.com/not-matthias)

##### <!-- 1 -->🐛 Bug Fixes

- Keep rolling buffer off during executor setup by
[@&open-telemetry#8203;not-matthias](https://redirect.github.com/not-matthias) in
[#&open-telemetry#8203;411](https://redirect.github.com/CodSpeedHQ/runner/pull/411)
- Gate memory executor behind Linux target by
[@&open-telemetry#8203;not-matthias](https://redirect.github.com/not-matthias)
- Enable tracking when running without IPC by
[@&open-telemetry#8203;not-matthias](https://redirect.github.com/not-matthias)
- Tolerate RLIMIT\_MEMLOCK EPERM on modern kernels by
[@&open-telemetry#8203;not-matthias](https://redirect.github.com/not-matthias)
- Install libc6-dbg during valgrind setup by
[@&open-telemetry#8203;not-matthias](https://redirect.github.com/not-matthias) in
[#&open-telemetry#8203;394](https://redirect.github.com/CodSpeedHQ/runner/pull/394)
- Skip rustup-wrapped proxy in trace-children by
[@&open-telemetry#8203;not-matthias](https://redirect.github.com/not-matthias) in
[#&open-telemetry#8203;405](https://redirect.github.com/CodSpeedHQ/runner/pull/405)
- Retry streamed uploads on transient failures by
[@&open-telemetry#8203;not-matthias](https://redirect.github.com/not-matthias) in
[#&open-telemetry#8203;399](https://redirect.github.com/CodSpeedHQ/runner/pull/399)
- Extract unwind data for binaries without eh\_frame\_hdr by
[@&open-telemetry#8203;not-matthias](https://redirect.github.com/not-matthias)

##### <!-- 10 -->💼 Other

- Drop OpenSSL, move TLS stack to rustls
([#&open-telemetry#8203;406](https://redirect.github.com/CodSpeedHQ/action/issues/406))
by [@&open-telemetry#8203;art049](https://redirect.github.com/art049) in
[#&open-telemetry#8203;406](https://redirect.github.com/CodSpeedHQ/runner/pull/406)

##### <!-- 2 -->🏗️ Refactor

- Split executor privilege granting into grant\_privileges by
[@&open-telemetry#8203;not-matthias](https://redirect.github.com/not-matthias)

##### <!-- 3 -->📚 Documentation

- Add unwind data version changelog by
[@&open-telemetry#8203;not-matthias](https://redirect.github.com/not-matthias) in
[#&open-telemetry#8203;393](https://redirect.github.com/CodSpeedHQ/runner/pull/393)

##### <!-- 7 -->⚙️ Internals

- chore: bump runner version to 4.17.6 by
[@&open-telemetry#8203;github-actions](https://redirect.github.com/github-actions)\[bot]
in [#&open-telemetry#8203;216](https://redirect.github.com/CodSpeedHQ/action/pull/216)
- Grant memtrack file capabilities before memory tests by
[@&open-telemetry#8203;not-matthias](https://redirect.github.com/not-matthias) in
[#&open-telemetry#8203;407](https://redirect.github.com/CodSpeedHQ/runner/pull/407)
- Bump samply to support additional events by
[@&open-telemetry#8203;GuillaumeLagrange](https://redirect.github.com/GuillaumeLagrange)
- Add helper script to use local versions of samply and framehop easily
by
[@&open-telemetry#8203;GuillaumeLagrange](https://redirect.github.com/GuillaumeLagrange)

#### Install codspeed-runner 4.17.6

##### Install prebuilt binaries via shell script

```sh
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/CodSpeedHQ/codspeed/releases/download/v4.17.6/codspeed-runner-installer.sh | sh
```

#### Download codspeed-runner 4.17.6

| File | Platform | Checksum |
|
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
| ------------------- |
-------------------------------------------------------------------------------------------------------------------------------------
|
|
[codspeed-runner-aarch64-apple-darwin.tar.gz](https://redirect.github.com/CodSpeedHQ/codspeed/releases/download/v4.17.6/codspeed-runner-aarch64-apple-darwin.tar.gz)
| Apple Silicon macOS |
[checksum](https://redirect.github.com/CodSpeedHQ/codspeed/releases/download/v4.17.6/codspeed-runner-aarch64-apple-darwin.tar.gz.sha256)
|
|
[codspeed-runner-aarch64-unknown-linux-musl.tar.gz](https://redirect.github.com/CodSpeedHQ/codspeed/releases/download/v4.17.6/codspeed-runner-aarch64-unknown-linux-musl.tar.gz)
| ARM64 MUSL Linux |
[checksum](https://redirect.github.com/CodSpeedHQ/codspeed/releases/download/v4.17.6/codspeed-runner-aarch64-unknown-linux-musl.tar.gz.sha256)
|
|
[codspeed-runner-x86\_64-unknown-linux-musl.tar.gz](https://redirect.github.com/CodSpeedHQ/codspeed/releases/download/v4.17.6/codspeed-runner-x86_64-unknown-linux-musl.tar.gz)
| x64 MUSL Linux |
[checksum](https://redirect.github.com/CodSpeedHQ/codspeed/releases/download/v4.17.6/codspeed-runner-x86_64-unknown-linux-musl.tar.gz.sha256)
|

**Full Runner Changelog**:
<https://github.com/CodSpeedHQ/codspeed/blob/main/CHANGELOG.md>

**Full Changelog**:
<CodSpeedHQ/action@v4.17.5...v4.17.6>

</details>

<details>
<summary>zizmorcore/zizmor-action (zizmorcore/zizmor-action)</summary>

###
[`v0.5.7`](https://redirect.github.com/zizmorcore/zizmor-action/compare/v0.5.6...v0.5.7)

[Compare
Source](https://redirect.github.com/zizmorcore/zizmor-action/compare/v0.5.6...v0.5.7)

</details>

---

### Configuration

📅 **Schedule**: (UTC)

- Branch creation
  - "on tuesday"
- 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://redirect.github.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- 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:eyJjcmVhdGVkSW5WZXIiOiI0My4yMzUuMCIsInVwZGF0ZWRJblZlciI6IjQzLjIzNS4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiLCJyZW5vdmF0ZWJvdCJdfQ==-->

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

<!--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 defining stability levels for resource attributes in
`cmd/mdatagen`.

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

<!--Describe what testing was performed and which tests were added.-->
#### Testing
- Added cmd/mdatagen/internal/testdata/invalid_rattr_stability.yaml as a
test fixture
- Added a test case in metadata_test.go that verifies an invalid
stability value produces the correct error
- Ran go test ./internal/... and all tests passed

<!--Describe the documentation added.-->
#### Documentation
- Added stability under resource attributes in metadata-schema.yaml

<!--Authorship attestation. See AGENTS.md for details. AI agents must
not check this box on behalf
of the user; the human author must check it themselves before the PR is
ready for review.-->
#### Authorship

- [x] I, a human, wrote this pull request description myself.

<!--Please delete paragraphs that you did not use before submitting.-->
…pen-telemetry#15474)

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

Adds CI check for PRs from non-members to have a linked issue. This is a
pre-requisite for us to explore implementing other workflows for
flagging duplicate work or work on issues that are not ready to be
worked on.

This tries to start small by excluding PRs marked as `[chore]` and
smalls PRs. We can make it more strict over time.

<!--Authorship attestation. See AGENTS.md for details. AI agents must
not check this box on behalf
of the user; the human author must check it themselves before the PR is
ready for review.-->
#### Authorship

- [x] I, a human, wrote this pull request description myself.

<!--Please delete paragraphs that you did not use before submitting.-->
…on (open-telemetry#15489)

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

Migrated `config/configcompression` from a hand-written Config struct to
`mdatagen` schema-based configuration.

Part of
https://github.com/open-telemetry/opentelemetry-collector/blob/main/docs/rfcs/component-configuration-schema-roadmap.md

<!--Authorship attestation. See AGENTS.md for details. AI agents must
not check this box on behalf
of the user; the human author must check it themselves before the PR is
ready for review.-->
#### Authorship

- [x] I, a human, wrote this pull request description myself.

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

---------

Co-authored-by: Evan Bradley <11745660+evan-bradley@users.noreply.github.com>
…open-telemetry#15459)

<!--Ex. Fixing a bug - Describe the bug and how this fixes the issue.
Ex. Adding a feature - Explain what this achieves.-->
#### Description
Fixes the extra line in the documentation.md between extended
description and table

Similar to
open-telemetry#15307

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

<!--Describe what testing was performed and which tests were added.-->
#### Testing
Local testing with one of the component.


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

<!--Authorship attestation. See AGENTS.md for details. AI agents must
not check this box on behalf
of the user; the human author must check it themselves before the PR is
ready for review.-->
#### Authorship

- [x] I, a human, wrote this pull request description myself.

<!--Please delete paragraphs that you did not use before submitting.-->
<!--Ex. Fixing a bug - Describe the bug and how this fixes the issue.
Ex. Adding a feature - Explain what this achieves.-->
#### Description
Added the publish of health check event in the memory limiter using
componentstatus.ReportStatus
<!-- Issue number if applicable -->
#### Link to tracking issue
Fixes open-telemetry#14700 

<!--Describe what testing was performed and which tests were added.-->
#### Testing
All unit tests are added and local testing is done with `healthcheckv2`
extenstion.

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

<!--Please delete paragraphs that you did not use before submitting.-->
…is false (open-telemetry#15443)

<!--Ex. Fixing a bug - Describe the bug and how this fixes the issue.
Ex. Adding a feature - Explain what this achieves.-->
#### Description
When `Enabled` is set to `false`, the `Validate()` method in
`BackOffConfig` returned early without checking any field values. This
meant invalid configurations (e.g. negative `InitialInterval`) would
silently pass validation. Removed the early return so all fields are
validated regardless of the `Enabled` flag.


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

<!--Describe what testing was performed and which tests were added.-->
#### Testing
Updated `TestDisabledWithInvalidValues` to assert that errors are
returned for invalid field values even when `Enabled=false`. Added
`TestDisabledWithValidValues` to confirm a well-formed config with
`Enabled=false` still passes. Run: `go test ./config/configretry/...`


<!--Describe the documentation added.-->
#### Documentation
No documentation changes needed.


<!--Authorship attestation. See AGENTS.md for details. AI agents must
not check this box on behalf
of the user; the human author must check it themselves before the PR is
ready for review.-->
#### Authorship

- [x] I, a human, wrote this pull request description myself.
dyl10s and others added 29 commits July 9, 2026 11:25
<!--Ex. Fixing a bug - Describe the bug and how this fixes the issue.
Ex. Adding a feature - Explain what this achieves.-->
#### Description
[Go Report Card](https://goreportcard.com/) has been retired. The badge
can be removed from the readme.

Matches the removal in contrib
open-telemetry/opentelemetry-collector-contrib#49538

<!--Authorship attestation. See AGENTS.md for details. AI agents must
not check this box on behalf
of the user; the human author must check it themselves before the PR is
ready for review.-->
#### Authorship

- [x] I, a human, wrote this pull request description myself.

<!--Please delete paragraphs that you did not use before submitting.-->
…bytes and otelcol_processor_batch_batch_send_size_bytes (open-telemetry#15463)

#### Description
Replace bucket boundaries for
`otelcol_exporter_queue_batch_send_size_bytes` and
`otelcol_processor_batch_batch_send_size_bytes` with powers of two from
`128 B` to `16 MiB.` The previous sub-kilobyte buckets were not useful
for byte-scale payloads, and the exporter metric topped out at` 6 KB` so
nearly all observations landed in +Inf.

#### Link to tracking issue
Fixes
open-telemetry#15535

#### Testing
- Unit tests already exist and passed.
- Ran `go generate ./...` and checked output `generated_telemetry.go`
file.

#### Documentation
No documentation update necessary. 

<!--Authorship attestation. See AGENTS.md for details. AI agents must
not check this box on behalf
of the user; the human author must check it themselves before the PR is
ready for review.-->
#### Authorship
- [x] I, a human, wrote this pull request description myself.
…-telemetry#15530)

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

Validate metrics units using `github.com/iimos/ucum`.

Depends on open-telemetry/opentelemetry-collector-contrib/pull/49453

<!--Authorship attestation. See AGENTS.md for details. AI agents must
not check this box on behalf
of the user; the human author must check it themselves before the PR is
ready for review.-->
#### Authorship

- [x] I, a human, wrote this pull request description myself.

<!--Please delete paragraphs that you did not use before submitting.-->
This PR contains the following updates:

| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
| [golang.org/x/mod](https://pkg.go.dev/golang.org/x/mod) | [`v0.37.0` →
`v0.38.0`](https://cs.opensource.google/go/x/mod/+/refs/tags/v0.37.0...refs/tags/v0.38.0)
|
![age](https://developer.mend.io/api/mc/badges/age/go/golang.org%2fx%2fmod/v0.38.0?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/go/golang.org%2fx%2fmod/v0.37.0/v0.38.0?slim=true)
|
| [golang.org/x/sys](https://pkg.go.dev/golang.org/x/sys) | [`v0.46.0` →
`v0.47.0`](https://cs.opensource.google/go/x/sys/+/refs/tags/v0.46.0...refs/tags/v0.47.0)
|
![age](https://developer.mend.io/api/mc/badges/age/go/golang.org%2fx%2fsys/v0.47.0?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/go/golang.org%2fx%2fsys/v0.46.0/v0.47.0?slim=true)
|
| [golang.org/x/text](https://pkg.go.dev/golang.org/x/text) | [`v0.39.0`
→
`v0.40.0`](https://cs.opensource.google/go/x/text/+/refs/tags/v0.39.0...refs/tags/v0.40.0)
|
![age](https://developer.mend.io/api/mc/badges/age/go/golang.org%2fx%2ftext/v0.40.0?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/go/golang.org%2fx%2ftext/v0.39.0/v0.40.0?slim=true)
|
| [golang.org/x/tools](https://pkg.go.dev/golang.org/x/tools) |
[`v0.47.0` →
`v0.48.0`](https://cs.opensource.google/go/x/tools/+/refs/tags/v0.47.0...refs/tags/v0.48.0)
|
![age](https://developer.mend.io/api/mc/badges/age/go/golang.org%2fx%2ftools/v0.48.0?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/go/golang.org%2fx%2ftools/v0.47.0/v0.48.0?slim=true)
|
| [golang.org/x/vuln](https://pkg.go.dev/golang.org/x/vuln) | [`v1.5.0`
→
`v1.6.0`](https://cs.opensource.google/go/x/vuln/+/refs/tags/v1.5.0...refs/tags/v1.6.0)
|
![age](https://developer.mend.io/api/mc/badges/age/go/golang.org%2fx%2fvuln/v1.6.0?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/go/golang.org%2fx%2fvuln/v1.5.0/v1.6.0?slim=true)
|

---

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

---

### Configuration

📅 **Schedule**: (UTC)

- Branch creation
  - "on tuesday"
- 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://redirect.github.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- 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:eyJjcmVhdGVkSW5WZXIiOiI0My4yNTkuMiIsInVwZGF0ZWRJblZlciI6IjQzLjI1OS4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiLCJyZW5vdmF0ZWJvdCJdfQ==-->

---------

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 <yang.song@datadoghq.com>
…DME (open-telemetry#15575)

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

Adds row for semantic conventions version used by component.

#### Documentation

<!--Authorship attestation. See AGENTS.md for details. AI agents must
not check this box on behalf
of the user; the human author must check it themselves before the PR is
ready for review.-->
#### Authorship

- [x] I, a human, wrote this pull request description myself.

<!--Please delete paragraphs that you did not use before submitting.-->
…#15578)

This PR contains the following updates:

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

---

### Release Notes

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

###
[`v0.70.0`](https://redirect.github.com/prometheus/common/blob/HEAD/CHANGELOG.md#v0700--2026-07-10)

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

##### Enhancements

- route: add support for the QUERY HTTP method.
[#&open-telemetry#8203;932](https://redirect.github.com/prometheus/common/issues/932)

##### Bugfixes

- config: fix `TLSVersion.String()` printing a pointer address instead
of the numeric version for unknown TLS versions.
[#&open-telemetry#8203;929](https://redirect.github.com/prometheus/common/issues/929)

##### Internal

- expfmt: add `BenchmarkConvertMetricFamily` comparing the Prometheus
text and OpenMetrics 1.0 encoders.
[#&open-telemetry#8203;943](https://redirect.github.com/prometheus/common/issues/943)
- Update Go dependencies.
[#&open-telemetry#8203;933](https://redirect.github.com/prometheus/common/issues/933)
[#&open-telemetry#8203;934](https://redirect.github.com/prometheus/common/issues/934)
- Synchronize common files from prometheus/prometheus.
[#&open-telemetry#8203;923](https://redirect.github.com/prometheus/common/issues/923)
[#&open-telemetry#8203;927](https://redirect.github.com/prometheus/common/issues/927)
[#&open-telemetry#8203;930](https://redirect.github.com/prometheus/common/issues/930)
[#&open-telemetry#8203;937](https://redirect.github.com/prometheus/common/issues/937)
- Update GitHub Actions.
[#&open-telemetry#8203;938](https://redirect.github.com/prometheus/common/issues/938)
[#&open-telemetry#8203;939](https://redirect.github.com/prometheus/common/issues/939)
[#&open-telemetry#8203;940](https://redirect.github.com/prometheus/common/issues/940)
[#&open-telemetry#8203;941](https://redirect.github.com/prometheus/common/issues/941)
[#&open-telemetry#8203;942](https://redirect.github.com/prometheus/common/issues/942)

**Full Changelog**:
<prometheus/common@v0.69.0...v0.70.0>

</details>

---

### Configuration

📅 **Schedule**: (UTC)

- Branch creation
  - "on tuesday"
- 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:eyJjcmVhdGVkSW5WZXIiOiI0My4yNTkuMiIsInVwZGF0ZWRJblZlciI6IjQzLjI1OS4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiLCJyZW5vdmF0ZWJvdCJdfQ==-->

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: otelbot <197425009+otelbot@users.noreply.github.com>
Update otelbot token creation to use GitHub App client IDs.

The app-id input for `actions/create-github-app-token` is deprecated in
favor of client-id. The matching `OTELBOT_*_CLIENT_ID` organization
variables have been provisioned, so this updates direct token creation
from `app-id / *_APP_ID` to `client-id / *_CLIENT_ID`.

Tracking issue: open-telemetry/admin#744

Co-authored-by: Alex Boten <223565+codeboten@users.noreply.github.com>
…lemetry#15558)

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

A regression where the zPages extension would have been broken was
caught only incidentally by a builder integration test here:
open-telemetry#15557.
This adds a proper E2E test that verifies the service host implements
the anonymous interface used by the zPages extension.

We could break the interface into a package imported by each as well. I
opted for the test instead just because I would rather not introduce a
package for a minor one-off interface. But if that's the preferred
approach I'm okay closing this and taking that route.

<!--Authorship attestation. See AGENTS.md for details. AI agents must
not check this box on behalf
of the user; the human author must check it themselves before the PR is
ready for review.-->
#### Authorship

- [x] I, a human, wrote this pull request description myself.

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

---------

Co-authored-by: Pablo Baeyens <pbaeyens31+github@gmail.com>
Co-authored-by: Alex Boten <223565+codeboten@users.noreply.github.com>
This PR contains the following updates:

| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
| [golang.org/x/net](https://pkg.go.dev/golang.org/x/net) | [`v0.56.0` →
`v0.57.0`](https://cs.opensource.google/go/x/net/+/refs/tags/v0.56.0...refs/tags/v0.57.0)
|
![age](https://developer.mend.io/api/mc/badges/age/go/golang.org%2fx%2fnet/v0.57.0?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/go/golang.org%2fx%2fnet/v0.56.0/v0.57.0?slim=true)
|

---

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

---

### Configuration

📅 **Schedule**: (UTC)

- Branch creation
  - "on tuesday"
- 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:eyJjcmVhdGVkSW5WZXIiOiI0My4yNTkuMiIsInVwZGF0ZWRJblZlciI6IjQzLjI1OS4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiLCJyZW5vdmF0ZWJvdCJdfQ==-->

---------

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>
Co-authored-by: Alex Boten <223565+codeboten@users.noreply.github.com>
…ata config from JSON Schema (open-telemetry#15529)

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

This branch refactors mdatagen's config generator and its underlying
`internal/schemagen` package by separating metadata and json schema
models.

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

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

1. Verified against sample components
2. Unit tests adjusted

<!--Authorship attestation. See AGENTS.md for details. AI agents must
not check this box on behalf
of the user; the human author must check it themselves before the PR is
ready for review.-->
#### Authorship

- [x] I, a human, wrote this pull request description myself.

<!--Please delete paragraphs that you did not use before submitting.-->
…ry#15461)

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

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

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

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

<!--Authorship attestation. See AGENTS.md for details. AI agents must
not check this box on behalf
of the user; the human author must check it themselves before the PR is
ready for review.-->
#### Authorship

- [x] I, a human, wrote this pull request description myself.

<!--Please delete paragraphs that you did not use before submitting.-->
…0.156.0 (open-telemetry#15583)

> ℹ️ **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/extension/xextension](https://redirect.github.com/open-telemetry/opentelemetry-collector)
| `v0.117.0` → `v0.156.0` |
![age](https://developer.mend.io/api/mc/badges/age/go/go.opentelemetry.io%2fcollector%2fextension%2fxextension/v0.156.0?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/go/go.opentelemetry.io%2fcollector%2fextension%2fxextension/v0.117.0/v0.156.0?slim=true)
|

---

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

---

### Release Notes

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

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

[Compare
Source](https://redirect.github.com/open-telemetry/opentelemetry-collector/compare/v0.155.0...v0.156.0)

##### 💡 Enhancements 💡

- `cmd/mdatagen`: Add support for defining stability levels for resource
attributes
([#&#8203;15312](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/15312))
- `cmd/mdatagen`: Add semantic convention reference to resource
attributes
([#&#8203;15313](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/15313))
- `processor/memory_limiter`: Adding health events for the memorylimiter
([#&#8203;14700](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/14700))
Publish health event from memorylimiter using
componentstatus.ReportStatus

##### 🧰 Bug fixes 🧰

- `cmd/mdatagen`: Removes the extra line in the documentation.md between
extended description and table
([#&#8203;15458](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/15458))

- `exporter/otlp_http`: Treat errors parsing successful (2xx) HTTP
response bodies as permanent errors to prevent retrying already-accepted
data.
([#&#8203;15386](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/15386))
When a server returns a 2xx status but the response body exceeds the
64kB read limit,
the body is truncated and proto unmarshaling fails. Previously this was
treated as a
retryable error, causing duplicate data to be exported. Now it is marked
as a permanent
error so the retry logic will not re-send data that was already accepted
by the server.

- `pkg/config/configretry`: Always validate BackOffConfig fields
regardless of the Enabled flag.
([#&#8203;15437](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/15437))

- `pkg/service`: Ensure receivers always start after all other
components
([#&#8203;15495](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/15495))
There was previously a race condition where multiple receivers using a
shared internal implementation,
such as the OTLP receiver, could start sending telemetry into a pipeline
before all its components had fully started.

- `processor/memory_limiter`: Fix degenerate collector performance when
exporter has problems causing permanent CPU-burning GC loop
([#&#8203;4981](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/4981))
  Forced GC runs now use exponential backoff when deemed ineffective
(still above soft limit and less than 5% reclaimed) to avoid preventing
  recovery by overloading CPU with excessive GC runs. The cap on the
backoff interval is exposed via `max_gc_interval_when_soft_limited` and
`max_gc_interval_when_hard_limited` (both default `30s`); set either to
  `0` to disable backoff on that path.

- `provider/env`: Fix empty env var default resolving to nil instead of
empty string
([#&#8203;14587](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/14587))
When using ${env:VAR:-} with an unset variable, the empty default now
correctly
  resolves to an empty string instead of nil.

<!-- previous-version -->

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

[Compare
Source](https://redirect.github.com/open-telemetry/opentelemetry-collector/compare/v0.154.0...v0.155.0)

##### 🛑 Breaking changes 🛑

- `pkg/confighttp`: Remove stabilized gate `confighttp.framedSnappy`
([#&#8203;15420](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/15420))
- `pkg/configoptional`: Remove stabilized gate
`configoptional.AddEnabledField`.
([#&#8203;15421](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/15421))
- `pkg/confmap`: Remove stabilized featuregate
`confmap.newExpandedValueSanitizer`
([#&#8203;15418](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/15418))
- `pkg/exporterhelper`: Remove stable gate
`exporter.PersistRequestContext`.
([#&#8203;15424](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/15424))
- `pkg/otelcol`: Remove stable gate `otelcol.printInitialConfig`
([#&#8203;15425](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/15425))
- `pkg/service`: Remove stable featuregate
`telemetry.UseLocalHostAsDefaultMetricsAddress`
([#&#8203;15419](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/15419))
- `pkg/xpdata`: Remove stable gate `pdata.enableRefCounting`.
([#&#8203;15426](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/15426))
- `processor/memory_limiter`: Rename deprecated memory limiter metrics
to include the `memory_limiter` prefix (e.g.
`otelcol_processor_memory_limiter_*`) to clarify they are specific to
this processor.
([#&#8203;11203](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/11203))

##### 🚀 New components 🚀

- `cmd/schemagen`: Move the `schemagen` CLI from
opentelemetry-collector-contrib to this repository as `cmd/schemagen`.
([#&#8203;14543](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/14543))
  The tool's source is identical to the upstream contrib version

(github.com/open-telemetry/opentelemetry-collector-contrib/cmd/schemagen)
except for the module path and
  the test fixtures' namespace, which now reflect the collector module
(go.opentelemetry.io/collector/cmd/schemagen). A contrib-only
integration test that pointed at three
contrib components is removed; contrib's existing `make
generate-schemas` + git-diff CI continues to
  exercise the FactoryMaps feature against real-world components.

##### 💡 Enhancements 💡

- `cmd/mdatagen`: Add support for versioned metrics
([#&#8203;15309](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/15309))
Allows metadata to specify versioned metrics for migrating to new
semantic conventions.
There are two scenarios catered for when the metric name stays the same
during migration.
When a metric name stays the same but its type differs, just the latest
metric is
  emitted with the new type.
When a metric name stays the same but its attributes differ, the latest
version
  is emitted with combined attributes during the migration period.

- `cmd/schemagen`: Add `overlayFile` support to deep-merge hand-curated
schema fragments into generated schemas.
([#&#8203;14543](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/14543))
Components can declare an `overlayFile` in `.schemagen.yaml` pointing to
a YAML file
whose keys are recursively merged into the auto-generated schema after
generation.
This allows injecting descriptions, constraints, or additional
properties that cannot
  be derived from Go types.
  Originally added to the contrib copy of `cmd/schemagen` in

[open-telemetry/opentelemetry-collector-contrib#48917](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/48917)
and brought over with the tool
  in this move.

- `cmd/schemagen`: Add `-p` flag to specify a custom Go package pattern
for the config struct.
([#&#8203;14543](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/14543))
The new `-p` flag lets callers override the default `.` package pattern
with an arbitrary
Go package selector (e.g. a sub-package whose `Config` type schemagen
should walk).
  Originally added to the contrib copy of `cmd/schemagen` in

[open-telemetry/opentelemetry-collector-contrib#48966](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/48966)
and brought over with the tool
  in this move.

##### 🧰 Bug fixes 🧰

- `cmd/mdatagen`: Fix an issue when the last feature gate is removed,
stale files are left.
([#&#8203;15423](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/15423))
- `cmd/mdatagen`: Fix known acronyms at the end of generated Go
identifiers to be all-caps, same as in any other position
([#&#8203;15438](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/15438))
- `cmd/schemagen`: Fix mode detection when using `-p` to target a
package outside the current directory.
([#&#8203;15453](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/15453))
A new `-m component|package` flag is available as a manual override when
auto-detection is not possible.

<!-- previous-version -->

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

[Compare
Source](https://redirect.github.com/open-telemetry/opentelemetry-collector/compare/v0.153.0...v0.154.0)

##### 🛑 Breaking changes 🛑

- `cmd/builder`: The `--skip-get-modules` flag will no longer regenerate
your `go.mod` file.
([#&#8203;15390](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/15390))
This is mostly a bug fix, as it led to adverse behaviour that was
unintended in the described flow in the README.
Now when you run `--skip-get-modules`, your `go.mod` file will truly be
untouched by `ocb` as the info log claims.

##### 💡 Enhancements 💡

- `pkg/config/configtls`: Add `include_insecure_cipher_suites` to
configtls to enable insecure cipher suites. Insecure cipher suites are
disabled by default for security.
([#&#8203;13829](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/13829))
- `pkg/confighttp`: Add `ExposedHeaders` field to `CORSConfig` to allow
setting the `Access-Control-Expose-Headers` response header.
([#&#8203;15119](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/15119))

##### 🧰 Bug fixes 🧰

- `cmd/mdatagen`: Removes the extra line in the README.md between status
and description
([#&#8203;15306](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/15306))
- `pkg/exporterhelper`: Fix nil-pointer panic in `sending_queue::batch`
Unmarshal when `sending_queue::sizer` is set and
`sending_queue::batch::enabled` is false.
([#&#8203;14687](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/14687))
When `sending_queue::sizer` was set and `sending_queue::batch::enabled:
false`
  cleared the batch Optional to None, the sizer-inheritance branch in
`queuebatch.Config.Unmarshal` dereferenced a nil Optional and crashed
the
  collector at startup. The branch now also requires `Batch.HasValue()`.

<!-- previous-version -->

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

[Compare
Source](https://redirect.github.com/open-telemetry/opentelemetry-collector/compare/v0.152.1...v0.153.0)

##### 🛑 Breaking changes 🛑

- `pkg/configoptional`: Stabilize feature gate
configoptional.AddEnabledField
([#&#8203;15333](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/15333))
- `pkg/confmap`: Stabilize confmap.newExpandedValueSanitizer feature
gate
([#&#8203;15339](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/15339))
- `pkg/exporterhelper`: mark exporter.PersistRequestContext as stable
([#&#8203;15330](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/15330))
- `pkg/otelcol`: Stabilize otelcol.printInitialConfig gate
([#&#8203;15340](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/15340))
- `pkg/pdata`: Remove pdata.useCustomProtoEncoding feature gate
([#&#8203;15332](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/15332))
- `pkg/service`: Stabilize telemetry.UseLocalHostAsDefaultMetricsAddress
gate
([#&#8203;15342](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/15342))
- `pkg/xpdata`: Stabilize pdata.enableRefCounting feature gate
([#&#8203;15331](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/15331))

##### 🧰 Bug fixes 🧰

- `pkg/config/configgrpc`: Fix memory corruption and fatal error in
Snappy
([#&#8203;15237](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/15237),
[#&#8203;15320](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/15320))

<!-- previous-version -->

###
[`v0.152.1`](https://redirect.github.com/open-telemetry/opentelemetry-collector/releases/tag/v0.152.1):
v1.58.0/v0.152.1

[Compare
Source](https://redirect.github.com/open-telemetry/opentelemetry-collector/compare/v0.152.0...v0.152.1)

##### Images and binaries here:
<https://github.com/open-telemetry/opentelemetry-collector-releases/releases/tag/v0.152.1>

#### End User Changelog

##### 💡 Enhancements 💡

- `pkg/exporterhelper`: Add `otelcol_exporter_in_flight_requests` metric
to track the number of export requests currently in-flight per exporter.
([#&#8203;15009](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/15009))
This UpDownCounter increments in startOp and decrements in endOp,
allowing operators to monitor
concurrent export activity and detect when an exporter is saturating its
worker pool.

##### 🧰 Bug fixes 🧰

- `pkg/confighttp`: Close the original request body after reading
block-format `Content-Encoding: snappy` requests.
([#&#8203;15262](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/15262))

- `pkg/confighttp`: Recover from panics in decompression libraries,
return HTTP 400 instead of 500.
([#&#8203;13228](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/13228))

- `pkg/confighttp`: Enforce `max_request_body_size` on
`Content-Encoding: snappy` requests before the decoded buffer is
allocated.
([#&#8203;15252](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/15252))

- `pkg/otelcol`: Stop emitting verbose gRPC transport messages at WARN
during normal client disconnect.
([#&#8203;5169](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/5169))
grpc-go gates chatty per-RPC notices (e.g. "HandleStreams failed to read
frame:
connection reset by peer") behind `LoggerV2.V(2)`. zapgrpc.Logger.V
conflates
grpclog verbosity with zap severity, so V(2) returns true whenever WARN
is
enabled and these messages emit at WARN. Wrap the installed
grpclog.LoggerV2
with a corrected V() that compares against a fixed verbosity threshold,
matching grpclog's intended semantics. See
[uber-go/zap#1544](https://redirect.github.com/uber-go/zap/issues/1544).

- `pkg/pdata`: `pcommon.Value.AsString` no longer HTML-escapes `<`, `>`,
and `&` inside `ValueTypeMap` and `ValueTypeSlice` values, matching the
behavior already used for `ValueTypeStr`.
([#&#8203;14662](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/14662))

- `pkg/service`: Fix Prometheus config defaults mismatch when host is
explicitly set in telemetry configuration.
([#&#8203;13867](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/13867))
When users explicitly configured the telemetry metrics section (e.g. to
change the host),
the Prometheus exporter boolean fields (WithoutScopeInfo, WithoutUnits,
WithoutTypeSuffix)
defaulted to nil/false instead of true, causing metric name format
changes compared to the
implicit default configuration. This fix applies the correct defaults
during config unmarshaling.

- `pkg/service`: Return noop tracer provider when no trace processors
are defined
([#&#8203;15135](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/15135))

<!-- previous-version -->

#### API Changelog

##### 🚩 Deprecations 🚩

- `pkg/xconfmap`: Deprecate `xconfmap.Validator` and `confmap.Validate`
in favor of `confmap.Validator` and `confmap.Validate`.
([#&#8203;15142](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/15142))

##### 💡 Enhancements 💡

- `cmd/mdatagen`: Add `go_struct.ignore_default` flag to suppress
default value generation for individual config fields.
([#&#8203;15156](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/15156))
Setting `go_struct.ignore_default: true` on a config field causes
mdatagen to omit that field's default
from the generated `createDefaultConfig` function, emitting `nil` for
pointer fields
  and `configoptional.None` for optional fields.

- `pkg/confmap`: Add the `confmap.Validator` interface and
`confmap.Validate` function for configuration validation.
([#&#8203;15142](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/15142))
Config structs should generally implement the interface to provide
validation
of their fields. The `confmap.Validate` function can be used to validate
config structs in testing, but is only meant to be called at runtime by
the
  Collector itself.

##### 🧰 Bug fixes 🧰

- `pkg/pdata`: `pcommon.Value.AsString` no longer HTML-escapes `<`, `>`,
and `&` inside `ValueTypeMap` and `ValueTypeSlice` values, matching the
behavior already used for `ValueTypeStr`.
([#&#8203;14662](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/14662))

<!-- previous-version -->

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

[Compare
Source](https://redirect.github.com/open-telemetry/opentelemetry-collector/compare/v0.151.0...v0.152.0)

##### 💡 Enhancements 💡

- `pkg/exporterhelper`: Add `otelcol_exporter_in_flight_requests` metric
to track the number of export requests currently in-flight per exporter.
([#&#8203;15009](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/15009))
This UpDownCounter increments in startOp and decrements in endOp,
allowing operators to monitor
concurrent export activity and detect when an exporter is saturating its
worker pool.

##### 🧰 Bug fixes 🧰

- `pkg/confighttp`: Close the original request body after reading
block-format `Content-Encoding: snappy` requests.
([#&#8203;15262](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/15262))

- `pkg/confighttp`: Recover from panics in decompression libraries,
return HTTP 400 instead of 500.
([#&#8203;13228](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/13228))

- `pkg/confighttp`: Enforce `max_request_body_size` on
`Content-Encoding: snappy` requests before the decoded buffer is
allocated.
([#&#8203;15252](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/15252))

- `pkg/otelcol`: Stop emitting verbose gRPC transport messages at WARN
during normal client disconnect.
([#&#8203;5169](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/5169))
grpc-go gates chatty per-RPC notices (e.g. "HandleStreams failed to read
frame:
connection reset by peer") behind `LoggerV2.V(2)`. zapgrpc.Logger.V
conflates
grpclog verbosity with zap severity, so V(2) returns true whenever WARN
is
enabled and these messages emit at WARN. Wrap the installed
grpclog.LoggerV2
with a corrected V() that compares against a fixed verbosity threshold,
matching grpclog's intended semantics. See
[uber-go/zap#1544](https://redirect.github.com/uber-go/zap/issues/1544).

- `pkg/pdata`: `pcommon.Value.AsString` no longer HTML-escapes `<`, `>`,
and `&` inside `ValueTypeMap` and `ValueTypeSlice` values, matching the
behavior already used for `ValueTypeStr`.
([#&#8203;14662](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/14662))

- `pkg/service`: Fix Prometheus config defaults mismatch when host is
explicitly set in telemetry configuration.
([#&#8203;13867](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/13867))
When users explicitly configured the telemetry metrics section (e.g. to
change the host),
the Prometheus exporter boolean fields (WithoutScopeInfo, WithoutUnits,
WithoutTypeSuffix)
defaulted to nil/false instead of true, causing metric name format
changes compared to the
implicit default configuration. This fix applies the correct defaults
during config unmarshaling.

- `pkg/service`: Return noop tracer provider when no trace processors
are defined
([#&#8203;15135](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/15135))

<!-- previous-version -->

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

[Compare
Source](https://redirect.github.com/open-telemetry/opentelemetry-collector/compare/v0.150.0...v0.151.0)

##### 🛑 Breaking changes 🛑

- `cmd/builder`: In the generated Collector source, the `replace`
statements in the Go module will now use relative paths by default.
([#&#8203;15097](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/15097))
We expect that this will not break existing use-cases where the
generated collector is only used in an interim manner for builds. It
enables the possibility of tracking the generated Collector code as a
longer living artifact, allowing it to be run on any machine (whereas
absolute paths will be different depending on the machine the Collector
source is generated on.) We have added
`dist::use_absolute_replace_paths` to go back to the absolute path
behaviour in the case where there is an unforeseen use-case that
requires absolute paths.

- `pkg/confighttp`: Stabilize framedSnappy feature gate.
([#&#8203;15096](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/15096))

##### 💡 Enhancements 💡

- `all`: Add declarative schema support for service telemetry resource
configuration.
([#&#8203;14411](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/14411))
The `service::telemetry::resource` configuration now accepts the
declarative schema with explicit name/value pairs:

  ```yaml
  service:
    telemetry:
      resource:
        schema_url: https://opentelemetry.io/schemas/1.38.0
        attributes:
          - name: service.name
            value: my-collector
          - name: host.name
            value: collector-host
  ```

The legacy inline attribute map format is still supported for backward
compatibility:

  ```yaml
  service:
    telemetry:
      resource:
        service.name: my-collector
        host.name: collector-host
  ```

Note: `resource.detectors` is accepted for forward compatibility but is
not yet applied by the collector.

- `exporter/otlp_grpc`: Added the `server.address` and `url.path`
attributes to metrics generated by the otlp exporter.
([#&#8203;14998](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/14998))

- `exporter/otlp_http`: Added the `server.address` and `url.path`
attributes to metrics generated by the otlp\_http exporter.
([#&#8203;14998](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/14998))

- `pkg/config/configgrpc`: Add `UserAgent` field to `ClientConfig` to
allow overriding the default gRPC user-agent string.
([#&#8203;14686](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/14686))
  The otlp gRPC exporter was unconditionally setting the User-Agent via
grpc.WithUserAgent() at dial time, which takes precedence over per-call
metadata, causing any user-configured User-Agent to be silently
discarded.
A dedicated `UserAgent` field has been added to `ClientConfig` which,
when
set, is used in the dial option directly instead of the default
BuildInfo-derived string.

- `pkg/config/configgrpc`: Accept gRPC resolver scheme URIs in client
endpoint (e.g. passthrough:///host:port) to allow control over name
resolution
([#&#8203;14990](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/14990))
After the migration to grpc.NewClient, some gRPC client components such
as the OTLP
exporter experienced connection issues in dual-stack DNS environments.
This can now be
fixed by using the passthrough:/// gRPC resolver scheme in the endpoint
field.

- `pkg/config/confignet`: Add support for Windows Named Pipe (npipe)
transport
([#&#8203;15085](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/15085))

- `pkg/service`: Emit a warning when using the old v0.2.0 declarative
config format
([#&#8203;15088](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/15088))

##### 🧰 Bug fixes 🧰

- `pkg/otelcol`: Print components exactly once in the `otelcol
components` command
([#&#8203;14682](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/14682))
  This resolves an issue where aliased components were skipped.

- `pkg/otelcol`: Synchronize Collector Run and Shutdown lifecycles so
that Shutdown blocks until Run completes all cleanup.
([#&#8203;4947](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/4947))
Shutdown now blocks until Run finishes cleanup, matching http.Server
semantics.
If Shutdown is called before Run, the next Run call returns nil after
cleaning up
  the config provider.

- `pkg/pdata`: Use spec-compliant string representation for NaN,
Infinity, and -Infinity in Value.AsString().
([#&#8203;14487](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/14487))

- `pkg/pprofile`: Fix data corruption of resource and scope attributes
after marshal-unmarshal-merge round-trip.
([#&#8203;15084](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/15084))

- `pkg/service`: Non-string resource attributes in telemetry
configuration now return an error instead of panicking
([#&#8203;15171](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/15171))

- `pkg/xscraperhelper`: fix the merge of profiles in the profiling
scraper helpers
([#&#8203;14790](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/14790))

- `receiver/otlp`: Fix profiles receiver reporting its samples as spans
([#&#8203;15089](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/15089))

<!-- previous-version -->

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

[Compare
Source](https://redirect.github.com/open-telemetry/opentelemetry-collector/compare/v0.149.0...v0.150.0)

##### 💡 Enhancements 💡

- `all`: Update semconv package from 1.38.0 to 1.40.0
([#&#8203;15095](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/15095))
- `cmd/mdatagen`: Only allow the `ToVersion` feature flag attribute to
be set for the `Stable` and `Deprecated` stages.
([#&#8203;15040](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/15040))
  To better match the feature flag README

(<https://github.com/open-telemetry/opentelemetry-collector/blob/main/featuregate/README.md#feature-lifecycle>).

##### 🧰 Bug fixes 🧰

- `exporter/debug`: Guard from out of bounds profiles dictionary indices
([#&#8203;14803](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/14803))

- `pdata/pprofile`: create a copy when the input is marked as read-only
([#&#8203;15080](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/15080))

- `pkg/otelcol`: Fix missing default values in unredacted print-config
command by introducing confmap.WithUnredacted MarshalOption.
([#&#8203;14750](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/14750))
Resolves an issue where the unredacted mode output omitted all
default-valued options. By introducing a new MarshalOption to disable
redaction directly at the confmap encoding level, the unredacted mode
now preserves all component defaults natively without requiring
post-processing.

- `pkg/service`: Headers on the internal telemetry OTLP exporter are now
redacted when the configuration is marshaled
([#&#8203;14756](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/14756))

<!-- previous-version -->

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

[Compare
Source](https://redirect.github.com/open-telemetry/opentelemetry-collector/compare/v0.148.0...v0.149.0)

##### 🛑 Breaking changes 🛑

- `pkg/service`: Remove `service_name`, `service_instance_id`, and
`service_version` as constant labels on every internal metric datapoint.
These attributes are already present in `target_info` and were being
duplicated on each series for OpenCensus backwards compatibility.
([#&#8203;14811](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/14811))
Previously, the collector stamped every internal metric series (e.g.
`otelcol_process_runtime_heap_alloc_bytes`)
with `service_name`, `service_instance_id`, and `service_version` labels
to match the old OpenCensus behavior.
These attributes are now only present in the `target_info` metric, which
is the correct Prometheus/OTel convention.
Users who filter or group by these labels on individual metrics will
need to update their queries to use
  `target_info` joins instead.

##### 💡 Enhancements 💡

- `all`: Move aix/ppc64 to tier 3 support
([#&#8203;13380](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/13380))

- `all`: Upgrade the profiles stability status to alpha
([#&#8203;14817](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/14817))
The following components have their profiles status upgraded from
development to alpha:

  - pdata/pprofile
  - connector/forward
  - exporter/debug
  - receiver/nop
  - exporter/nop
  - exporter/otlp\_grpc
  - exporter/otlp\_http

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

##### 🧰 Bug fixes 🧰

- `cmd/mdatagen`: Fix entity code generation so `extra_attributes` are
emitted as resource attributes instead of entity descriptive attributes.
([#&#8203;14778](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/14778))

<!-- previous-version -->

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

[Compare
Source](https://redirect.github.com/open-telemetry/opentelemetry-collector/compare/v0.147.0...v0.148.0)

##### ❗ Known Issues ❗

- `service`: The collector's internal Prometheus metrics endpoint
(`:8888`) now emits OTel service labels with underscore
names (`service_name`, `service_instance_id`, `service_version`) instead
of dot-notation names (`service.name`,
`service.instance.id`, `service.version`). Users scraping this endpoint
with the Prometheus receiver will see these renamed
labels in resource and datapoint attributes. As a workaround, add the
following `metric_relabel_configs` to your scrape
  config in prometheus receiver:
  ```yaml
  metric_relabel_configs:
    - source_labels: [service_name]
      target_label: service.name
    - source_labels: [service_instance_id]
      target_label: service.instance.id
    - source_labels: [service_version]
      target_label: service.version
    - regex: service_name|service_instance_id|service_version
      action: labeldrop
  ```
See
[#&#8203;14814](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/14814)
for details and updates.

##### 🛑 Breaking changes 🛑

- `all`: Change metric units to be singular to match OTel specification,
e.g. `{requests}` -> `{request}`
([#&#8203;14753](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/14753))

##### 💡 Enhancements 💡

- `cmd/mdatagen`: Add deprecated\_type field to allow specifying an
alias for component types.
([#&#8203;14718](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/14718))
- `cmd/mdatagen`: Generate entity-scoped MetricsBuilder API that
enforces entity-metric associations at compile time
([#&#8203;14659](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/14659))
- `cmd/mdatagen`: Skip generating reaggregation config options for
metrics that have no aggregatable attributes.
([#&#8203;14689](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/14689))
- `pkg/service`: The internal status reporter no longer drops repeated
Ok and RecoverableError statuses
([#&#8203;14282](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/14282))
Status events can now carry metadata and there's value in allowing them
to be emitted despite the status value itself
  not changing.

##### 🧰 Bug fixes 🧰

- `cmd/builder`: Add `.exe` to output binary names when building for
Windows targets.
([#&#8203;12591](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/12591))

- `exporter/debug`: Add printing of metric metadata in detailed
verbosity.
([#&#8203;14667](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/14667))

- `exporter/otlp_grpc`: Prevent nil pointer panic when push methods are
called before the OTLP exporter initializes its gRPC clients.
([#&#8203;14663](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/14663))
  When the sending queue and retry are disabled, calling ConsumeTraces,
ConsumeMetrics, ConsumeLogs, or ConsumeProfiles before the OTLP exporter
initializes its gRPC clients could cause a nil pointer dereference
panic.
  The push methods now return an error instead of panicking.

- `exporter/otlp_http`: Show the actual destination URL in error
messages when request URL is modified by middleware.
([#&#8203;14673](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/14673))
Unwraps the `*url.Error` returned by `http.Client.Do()` to prevent
misleading error logs when a middleware extension dynamically updates
the endpoint.

- `pdata/pprofile`: Switch the dictionary of dictionary tables entries
only once when merging profiles
([#&#8203;14709](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/14709))
For dictionary table data, we used to switch their dictionaries when
doing
  the switch for the data that uses them.
  However, when an entry is associated with multiple other data (several
  samples can use the same stack), we would have been switching the
  dictionaries of the entry multiple times.

  We now switch dictionaries for dictionary table data only once, before
  switching the resource profiles.

<!-- previous-version -->

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

[Compare
Source](https://redirect.github.com/open-telemetry/opentelemetry-collector/compare/v0.146.1...v0.147.0)

##### 💡 Enhancements 💡

- `exporter/debug`: Output bucket counts for exponential histogram data
points in normal verbosity.
([#&#8203;10463](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/10463))
- `pkg/exporterhelper`: Add `metadata_keys` configuration to
`sending_queue.batch.partition` to partition batches by client metadata
([#&#8203;14139](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/14139))
The `metadata_keys` configuration option is now available in the
`sending_queue.batch.partition` section for all exporters.
When specified, batches are partitioned based on the values of the
listed metadata keys, allowing separate batching per metadata partition.
This feature
  is automatically configured when using `exporterhelper.WithQueue()`.

##### 🧰 Bug fixes 🧰

- `cmd/builder`: Fix duplicate error output when CLI command execution
fails in the builder tool.
([#&#8203;14436](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/14436))

- `cmd/mdatagen`: Fix duplicate error output when CLI command execution
fails in the mdatagen tool.
([#&#8203;14436](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/14436))

- `cmd/mdatagen`: Fix semconv URL validation for metrics with
underscores in their names
([#&#8203;14583](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/14583))
Metrics like `system.disk.io_time` now correctly validate against
semantic convention URLs containing underscores in the anchor tag.

- `extension/memory_limiter`: Use ChainUnaryInterceptor instead of
UnaryInterceptor to allow multiple interceptors.
([#&#8203;14634](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/14634))
If multiple extensions that use the UnaryInterceptor are set the binary
panics at start time.

- `extension/memory_limiter`: Add support for streaming services.
([#&#8203;14634](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/14634))

- `pkg/config/configmiddleware`: Add context.Context to HTTP middleware
interface constructors.
([#&#8203;14523](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/14523))
This is a breaking API change for components that implement or use
extensionmiddleware.

- `pkg/confmap`: Fix another issue where configs could fail to decode
when using interpolated values in string fields.
([#&#8203;14034](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/14034))
For example, a resource attribute can be set via an environment variable
to a string that is parseable as a number, e.g. `1234`.

(A similar bug was fixed in a previous release: that one was triggered
when the field was nested in a struct,
whereas this one is triggered when the field internally has type
"pointer to string" rather than "string".)

- `pkg/otelcol`: The featuregate subcommand now rejects extra positional
arguments instead of silently ignoring them.
([#&#8203;14554](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/14554))

- `pkg/queuebatch`: Fix data race in partition\_batcher where
resetTimer() was called outside mutex, causing concurrent timer.Reset()
calls and unpredictable batch flush timing under load.
([#&#8203;14491](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/14491))

- `pkg/scraperhelper`: Log scrapers now emit log-appropriate receiver
telemetry
([#&#8203;14654](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/14654))
Log scrapers previously emitted the same receiver telemetry as metric
scrapers,
such as the otelcol\_receiver\_accepted\_metric\_points metric (instead
of otelcol\_receiver\_accepted\_log\_records),
or spans named receiver/myreceiver/MetricsReceived (instead of
receiver/myreceiver/LogsReceived).

  This did not affect scraper-specific spans and metrics.

- `processor/batch`: Fixes a bug where the batch processor would not
copy `SchemaUrl` metadata from resource and scope containers during
partial batch splits.
([#&#8203;12279](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/12279),
[#&#8203;14620](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/14620))

<!-- previous-version -->

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

[Compare
Source](https://redirect.github.com/open-telemetry/opentelemetry-collector/compare/v0.146.0...v0.146.1)

<!-- previous-version -->

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

[Compare
Source](https://redirect.github.com/open-telemetry/opentelemetry-collector/compare/v0.145.0...v0.146.0)

##### 🛑 Breaking changes 🛑

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

##### 🚩 Deprecations 🚩

- `pdata/pprofile`: Declare removed aggregation elements as deprecated.
([#&#8203;14528](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/14528))

##### 💡 Enhancements 💡

- `all`: Add detailed failure attributes to exporter send\_failed
metrics at detailed telemetry level.
([#&#8203;13956](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/13956))
The `otelcol_exporter_send_failed_{spans,metric_points,log_records}`
metrics now include
failure attributes when telemetry level is Detailed: `error.type`
(OpenTelemetry semantic convention
describing the error class) and `error.permanent` (indicates if error is
permanent/non-retryable).
The `error.type` attribute captures gRPC status codes (e.g.,
"Unavailable", "ResourceExhausted"),
  standard Go context errors (e.g., "canceled", "deadline\_exceeded"),
  and collector-specific errors (e.g., "shutdown").
This enables better alerting and debugging by providing standardized
error classification.

- `cmd/builder`: Introduce new experimental `init` subcommand
([#&#8203;14530](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/14530))
  The new `init` subcommand initializes a new custom collector

- `cmd/builder`: Add "telemetry" field to allow configuring telemetry
providers
([#&#8203;14575](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/14575))
Most users should not need to use this, this field should only be set if
you
  intend to provide your own OpenTelemetry SDK.

- `cmd/mdatagen`: Introduce additional metadata (the version since the
deprecation started, and the deprecation reason) for deprecated metrics.
([#&#8203;14113](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/14113))

- `cmd/mdatagen`: Add optional `relationships` field to entity schema in
metadata.yaml
([#&#8203;14284](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/14284))

- `exporter/debug`: Add `output_paths` configuration option to control
output destination when `use_internal_logger` is false.
([#&#8203;10472](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/10472))
When `use_internal_logger` is set to `false`, the debug exporter now
supports configuring the output destination via the `output_paths`
option.
This allows users to send debug exporter output to `stdout`, `stderr`,
or a file path.
  The default value is `["stdout"]` to maintain backward compatibility.

- `pkg/confmap`: Add experimental `ToStringMapRaw` function to decode
`confmap.Conf` into a string map without losing internal types
([#&#8203;14480](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/14480))
This method exposes the internal structure of a `confmap.Conf` which may
change at any time without prior notice

##### 🧰 Bug fixes 🧰

- `cmd/mdatagen`: Reset aggDataPoints during metric init to avoid index
out of range panic across emit cycles when reaggregation is enabled.
([#&#8203;14569](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/14569))
- `cmd/mdatagen`: Fix panic when mdatagen is run without arguments.
([#&#8203;14506](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/14506))
- `pdata/pprofile`: Fix off-by-one issue in dictionary lookups.
([#&#8203;14534](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/14534))
- `pkg/config/confighttp`: Fix high cardinality span name from request
method from confighttp server internal telemetry
([#&#8203;14516](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/14516))
  Follow spec to bound request method cardinality.
- `pkg/otelcol`: Ignore component aliases in the `otelcol components`
command
([#&#8203;14492](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/14492))
- `pkg/otelcol`: Order providers and converters in alphabetical order in
the `components` subcommand.
([#&#8203;14476](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/14476))

<!-- previous-version -->

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

[Compare
Source](https://redirect.github.com/open-telemetry/opentelemetry-collector/compare/v0.144.0...v0.145.0)

##### 💡 Enhancements 💡

- `pkg/scraperhelper`: ScraperID has been added to the logs for metrics,
logs, and profiles
([#&#8203;14461](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/14461))

##### 🧰 Bug fixes 🧰

- `exporter/otlp_grpc`: Fix the OTLP exporter balancer to use
round\_robin by default, as intended.
([#&#8203;14090](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/14090))

- `pkg/config/configoptional`: Fix `Unmarshal` methods not being called
when config is wrapped inside `Optional`
([#&#8203;14500](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/14500))
This bug notably manifested in the fact that the
`sending_queue::batch::sizer` config for exporters
stopped defaulting to `sending_queue::sizer`, which sometimes caused the
wrong units to be used
  when configuring `sending_queue::batch::min_size` and `max_size`.

As part of the fix, `xconfmap` exposes a new
`xconfmap.WithForceUnmarshaler` option, to be used in the `Unmarshal`
methods
of wrapper types like `configoptional.Optional` to make sure the
`Unmarshal` method of the inner type is called.

The default behavior remains that calling `conf.Unmarshal` on the
`confmap.Conf` passed as argument to an `Unmarshal`
method will skip any top-level `Unmarshal` methods to avoid infinite
recursion in standard use cases.

- `pkg/confmap`: Fix an issue where configs could fail to decode when
using interpolated values in string fields.
([#&#8203;14413](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/14413))
For example, a header can be set via an environment variable to a string
that is parseable as a number, e.g. `1234`

- `pkg/service`: Don't error on startup when process metrics are enabled
on unsupported OSes (e.g. AIX)
([#&#8203;14307](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/14307))

<!-- previous-version -->

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

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

##### 🛑 Breaking changes 🛑

- `pkg/exporterhelper`: Change verbosity level for
otelcol\_exporter\_queue\_batch\_send\_size metric to detailed.
([#&#8203;14278](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/14278))
- `pkg/service`: Remove deprecated
`telemetry.disableHighCardinalityMetrics` feature gate.
([#&#8203;14373](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/14373))
- `pkg/service`: Remove deprecated `service.noopTracerProvider` feature
gate.
([#&#8203;14374](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/14374))

##### 🚩 Deprecations 🚩

- `exporter/otlp_grpc`: Rename `otlp` exporter to `otlp_grpc` exporter
and add deprecated alias `otlp`.
([#&#8203;14403](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/14403))
- `exporter/otlp_http`: Rename `otlphttp` exporter to `otlp_http`
exporter and add deprecated alias `otlphttp`.
([#&#8203;14396](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/14396))

##### 💡 Enhancements 💡

- `cmd/builder`: Avoid duplicate CLI error logging in generated
collector binaries by relying on cobra's error handling.
([#&#8203;14317](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/14317))

- `cmd/mdatagen`: Add the ability to disable attributes at the metric
level and re-aggregate data points based off of these new dimensions
([#&#8203;10726](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/10726))

- `cmd/mdatagen`: Add optional `display_name` and `description` fields
to metadata.yaml for human-readable component names
([#&#8203;14114](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/14114))
The `display_name` field allows components to specify a human-readable
name in metadata.yaml.
When provided, this name is used as the title in generated README files.
The `description` field allows components to include a brief description
in generated README files.

- `cmd/mdatagen`: Validate stability level for entities
([#&#8203;14425](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/14425))

- `pkg/xexporterhelper`: Reenable batching for profiles
([#&#8203;14313](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/14313))

- `receiver/nop`: add profiles signal support
([#&#8203;14253](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/14253))

##### 🧰 Bug fixes 🧰

- `pkg/exporterhelper`: Fix reference count bug in partition batcher
([#&#8203;14444](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/14444))

<!-- previous-version -->

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

[Compare
Source](https://redirect.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://redirect.github.com/open-telemetry/opentelemetry-collector/issues/14305))
- `exporter/nop`: Add profiles support to nop exporter
([#&#8203;14331](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/14331))
- `pkg/pdata`: Optimize the size and pointer bytes for pdata structs
([#&#8203;14339](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/14339))
- `pkg/pdata`: Avoid using interfaces/oneof like style for optional
fields
([#&#8203;14333](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/14333))

<!-- previous-version -->

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

[Compare
Source](https://redirect.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://redirect.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://redirect.github.com/open-telemetry/opentelemetry-collector/issues/14081))

- `pkg/config/configgrpc`: Statically validate gRPC endpoint
([#&#8203;10451](https://redirect.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://redirect.github.com/open-telemetry/opentelemetry-collector/issues/13869))
  Note that this does not affect logs exported through OTLP.

<!-- previous-version -->

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

[Compare
Source](https://redirect.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://redirect.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://redirect.github.com/open-telemetry/opentelemetry-collector/issues/14131))
- `pkg/service`: Update semantic conventions from internal telemetry to
v1.37.0
([#&#8203;14232](https://redirect.github.com/open-telemetry/opentelemetry-collector/issues/14232))
- `pkg/xscraper`: Implement xscraper for Profiles.
([#&#8203;13915](https://redirect.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://redirect.github.com/open-telemetry/opentelemetry-collector/issues/14218))

<!-- previous-version -->

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

[Compare
Source](https://redirect.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://redirect.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://redirect.github.com/open-telemetry/opentelemetry-collector/issues/13920))

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

- `exporter/debug`: Disable sending queue by default
([#&#8203;14138](https://redirect.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://redirect.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://redirect.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://redirect.github.com/open-telemetry/opentelemetry-collector/issues/14140))

<!-- previous-version -->

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

[Compare
Source](https://redirect.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://redirect.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://redirect.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 `recomme

> ✂ **Note**
> 
> PR body was truncated to here.


</details>

---

### Configuration

📅 **Schedule**: (UTC)

- Branch creation
  - "on tuesday"
- 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:eyJjcmVhdGVkSW5WZXIiOiI0My4yNTkuMiIsInVwZGF0ZWRJblZlciI6IjQzLjI1OS4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiLCJyZW5vdmF0ZWJvdCJdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
…d `service.partialReloadReceivers` (open-telemetry#15397)

#### Description

Phase 1 implementation of the [Partial Reload
RFC](https://github.com/open-telemetry/opentelemetry-collector/blob/main/docs/rfcs/partial-reload.md),
receivers only.

This adds the `service.partialReload` alpha feature flag (disabled by
default) and the `service.partialReloadReceivers` beta feature flag
(enabled by default). This allows the overall feature to be enabled with
`service.partialReload`, and as different phases occur it allows the
ability to disable an individual phase if it becomes problem in the
overall partial reload system.

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

- `otelcol/config_diff_test.go` - tests covering receiversOnlyChange
scenarios (identical configs, receiver-only changes,
processor/exporter/connector/extension/telemetry/pipeline changes,
connector-as-receiver changes)
- `service/internal/graph/graph_test.go`.`UpdateReceivers` - add
receiver, remove receiver, config change rebuild, no-op, pipeline set
change, simultaneous add/remove/rebuild, connector-as-receiver
untouched, nil host guard
- `otelcol/collector_test.go`.`TestCollectorPartialReceiverReload` -
verifies end-to-end that with the feature gate enabled, a receiver-only
config change triggers partial reload (stays in StateRunning, logs
partial reload message, never logs full restart)
- `otelcol/collector_test.go` - add benchmark tests for add, remove,
update a receiver

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

Added documentation on how configuration reload works. Added
documentation on how configuration reload works when the
`service.receiverPartialReload` feature flag is enabled.

#### Authorship

- [x] I, a human, wrote this pull request description myself.
…lued attribute (open-telemetry#15572)

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

Enabling the `process` resource detector (or any detector emitting a
slice-valued resource attribute) aborts collector startup with `<Invalid
value type []string>`. `createResource` fed the OTel SDK attribute value
directly into `pcommon.Value.FromRaw`, which only accepts `[]any` for
slices — typed scalar slices (`[]string`/`[]int64`/`[]float64`/`[]bool`)
hit the `default` error branch and abort `service.New`.

This converts slice-typed SDK attributes element-wise into a `pcommon`
slice, mirroring the existing `ToZapFields` SDK-attribute converter
(`internal/telemetry/attribute.go`, which type-switches on
`attribute.Value.Type()`). Scalar and other types keep the existing
`FromRaw` path. The `pcommon.FromRaw`/`AsRaw` `[]any`-symmetric contract
(PR open-telemetry#6579) is intentional, so the fix is caller-side rather than in
pdata.


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

<!--Describe what testing was performed and which tests were added.-->
#### Testing
Added a `TestCreateResource` subtest exercising the `process` detector;
it asserts the collector resource is built and `process.command_args` is
a proper element-wise slice equal to `os.Args` (not a stringified
`"[...]"`). Red before the fix (`<Invalid value type []string>`), green
after. Full `service/telemetry/otelconftelemetry` module passes with
`-race`.


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

No changes.

<!--Authorship attestation. See AGENTS.md for details. AI agents must
not check this box on behalf
of the user; the human author must check it themselves before the PR is
ready for review.-->
#### Authorship

- [x] I, a human, wrote this pull request description myself.

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

---------

Signed-off-by: Pavel Lazureykis <pavel@lazureykis.dev>
…#15557)

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

The host passed to extensions currently doesn't implement
`componentstatus.Reporter` and therefore all calls to
`componentstatus.ReportStatus` inside extensions [are
ignored](https://github.com/open-telemetry/opentelemetry-collector/blob/d1d8e8ddb283e89ddce0059715dceda5265224c7/component/componentstatus/status.go#L191),
preventing them from reporting their own status.

This wraps the host so the host given to extensions is suitable for
reporting status events.

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

Relates to
open-telemetry/opentelemetry-collector-contrib#48758.

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

Ran a manual test with a modified zPages extension.

<!--Authorship attestation. See AGENTS.md for details. AI agents must
not check this box on behalf
of the user; the human author must check it themselves before the PR is
ready for review.-->
#### Authorship

- [x] I, a human, wrote this pull request description myself.

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

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

Good prereq for
open-telemetry#9477

<!--Authorship attestation. See AGENTS.md for details. AI agents must
not check this box on behalf
of the user; the human author must check it themselves before the PR is
ready for review.-->
#### Authorship

- [x] I, a human, wrote this pull request description myself.

<!--Please delete paragraphs that you did not use before submitting.-->
…ls (open-telemetry#15616)

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

We return the top-level error variable rather than the variable we
check.

<!--Authorship attestation. See AGENTS.md for details. AI agents must
not check this box on behalf
of the user; the human author must check it themselves before the PR is
ready for review.-->
#### Authorship

- [x] I, a human, wrote this pull request description myself.

<!--Please delete paragraphs that you did not use before submitting.-->
…try#15612)

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

`confmap.Validator` is available now, so we should use that

#### Issue

Prereq for open-telemetry#9477 

<!--Authorship attestation. See AGENTS.md for details. AI agents must
not check this box on behalf
of the user; the human author must check it themselves before the PR is
ready for review.-->
#### Authorship

- [x] I, a human, wrote this pull request description myself.

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

---------

Co-authored-by: Pablo Baeyens <pbaeyens31+github@gmail.com>
<!--Ex. Fixing a bug - Describe the bug and how this fixes the issue.
Ex. Adding a feature - Explain what this achieves.-->
#### Description

The `WaitForReady` option is currently not used outside tests. This
makes sure it's properly applied

#### Issue

Prereq for open-telemetry#9477

<!--Authorship attestation. See AGENTS.md for details. AI agents must
not check this box on behalf
of the user; the human author must check it themselves before the PR is
ready for review.-->
#### Authorship

- [x] I, a human, wrote this pull request description myself.

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

---------

Co-authored-by: Pablo Baeyens <pbaeyens31+github@gmail.com>
<!--Ex. Fixing a bug - Describe the bug and how this fixes the issue.
Ex. Adding a feature - Explain what this achieves.-->
#### Description

The function has been deprecated for several versions now and is ready
for removal.

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

Prereq for open-telemetry#9477

<!--Authorship attestation. See AGENTS.md for details. AI agents must
not check this box on behalf
of the user; the human author must check it themselves before the PR is
ready for review.-->
#### Authorship

- [x] I, a human, wrote this pull request description myself.

<!--Please delete paragraphs that you did not use before submitting.-->
<!--Ex. Fixing a bug - Describe the bug and how this fixes the issue.
Ex. Adding a feature - Explain what this achieves.-->
#### Description

This option has been around for months now and is being used by stable
modules. It should be safe to stabilize since we will be using it for
the foreseeable future.

This also removes an `xconfmap` dependency from modules that use
configoptional.

<!--Authorship attestation. See AGENTS.md for details. AI agents must
not check this box on behalf
of the user; the human author must check it themselves before the PR is
ready for review.-->
#### Authorship

- [x] I, a human, wrote this pull request description myself.

<!--Please delete paragraphs that you did not use before submitting.-->
…ion host wrapper (open-telemetry#15619)

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

The host wrapper introduced in open-telemetry#15557 hid the host's optional capability
interfaces (`ModuleInfo`, `ExposeExporters`, `ComponentFactory`) from
extensions, breaking type assertions such as
`host.(hostcapabilities.ModuleInfo)` used by the OpAMP extension.

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

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

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

<!--Authorship attestation. See AGENTS.md for details. AI agents must
not check this box on behalf
of the user; the human author must check it themselves before the PR is
ready for review.-->
#### Authorship

- [x] I, a human, wrote this pull request description myself.

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

---------

Co-authored-by: Evan Bradley <11745660+evan-bradley@users.noreply.github.com>
Co-authored-by: Dmitry Anoshin <anoshindx@gmail.com>
The following commands were run to prepare this release:
- make chlog-update VERSION=v1.63.0/v0.157.0
- make prepare-release PREVIOUS_VERSION=1[.]62[.]0
RELEASE_CANDIDATE=1.63.0 MODSET=stable
- make prepare-release PREVIOUS_VERSION=0[.]156[.]0
RELEASE_CANDIDATE=0.157.0 MODSET=beta

---------

Co-authored-by: otelbot <197425009+otelbot@users.noreply.github.com>
<!--Ex. Fixing a bug - Describe the bug and how this fixes the issue.
Ex. Adding a feature - Explain what this achieves.-->
#### Description

Unblocks
open-telemetry/opentelemetry-collector-contrib#49767.

<!--Authorship attestation. See AGENTS.md for details. AI agents must
not check this box on behalf
of the user; the human author must check it themselves before the PR is
ready for review.-->
#### Authorship

- [x] I, a human, wrote this pull request description myself.

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

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

Adds `metadata.yaml` to `configtls` and add `goleak` configuration.

<!-- Issue number if applicable -->
#### Link to tracking issue
Updates open-telemetry#9221

<!--Authorship attestation. See AGENTS.md for details. AI agents must
not check this box on behalf
of the user; the human author must check it themselves before the PR is
ready for review.-->
#### Authorship

- [x] I, a human, wrote this pull request description myself.

<!--Please delete paragraphs that you did not use before submitting.-->
…emetry#15626)

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/grpc](https://redirect.github.com/grpc/grpc-go) |
`v1.82.0` → `v1.82.1` |
![age](https://developer.mend.io/api/mc/badges/age/go/google.golang.org%2fgrpc/v1.82.1?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/go/google.golang.org%2fgrpc/v1.82.0/v1.82.1?slim=true)
|

---

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

---

### Release Notes

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

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

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

### Security

- server: Stop reading from the connection when flooded by HTTP/2
frames. The default value for this limit is 100 frames, excluding DATA
and HEADERS, and may be changed by setting environment variable
`GRPC_GO_EXPERIMENTAL_CONTROL_BUFFER_THROTTLE_LIMIT`.
- xds/rbac: Support `Metadata` and `RequestedServerName` permissions
matcher fields. If present in a DENY rule, previously these would be
ignored and fail-open.
- xds/rbac: Fix panic when parsing unsupported fields in
`NotRule`/`NotId` permissions.
- xds/rbac: Support the deprecated `source_ip` principal identifier by
treating it as equivalent to `direct_remote_ip`.

</details>

---

### Configuration

📅 **Schedule**: (UTC)

- Branch creation
  - "on tuesday"
- 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:eyJjcmVhdGVkSW5WZXIiOiI0My4yNzIuNCIsInVwZGF0ZWRJblZlciI6IjQzLjI3Mi40IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiLCJyZW5vdmF0ZWJvdCJdfQ==-->

---------

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>
#### Description
Running [the "Inform Incompatible PRs"
CI](https://github.com/open-telemetry/opentelemetry-collector/blob/main/.github/workflows/api-compatibility.yml)
locally, it seems it only checks for API breakage for the packages
inside the root module. This PR rewrites the relevant Makefiles to
actually check all non-internal packages inside all stable Collector
modules, and updates the CI check to match.

#### Testing
I briefly tested the `make` commands on open-telemetry#15589, confirming that the
expected breaking change is now correctly flagged.

#### Authorship

- [x] I, a human, wrote this pull request description myself.
…en-telemetry#15514)

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

Adds first-class extended type aliases to cmd/mdatagen, so
`metadata.yaml` authors can write a Go-idiomatic type name directly as
the type field of a config property, instead of combining `type` +
`format` or `type` + `x-customType` by hand.

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

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

- Sample components extended with examples
- Changes covered with unit tests

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

Extended README of mdatagen with info about usage of extended types and
how to add new.

<!--Authorship attestation. See AGENTS.md for details. AI agents must
not check this box on behalf
of the user; the human author must check it themselves before the PR is
ready for review.-->
#### Authorship

- [x] I, a human, wrote this pull request description myself.

<!--Please delete paragraphs that you did not use before submitting.-->
Adds a `tests: goleak:` declaration to the filter package's
metadata.yaml and the corresponding generated_package_test.go so that
goroutine leaks are detected automatically on every test run.

Follows the same pattern used in
config/configtls (PR open-telemetry#15632).

Assisted-by: Claude Sonnet 4.6
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7
if: ${{ github.event.pull_request.user.login != 'dependabot[bot]' && github.repository == 'open-telemetry/opentelemetry-collector' }}
steps:
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7
cache: false

- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.