Skip to content

prometheus: handle schema URL and scope attributes#4505

Merged
carlosalberto merged 14 commits intoopen-telemetry:mainfrom
pellared:rm-scope-info
Jun 5, 2025
Merged

prometheus: handle schema URL and scope attributes#4505
carlosalberto merged 14 commits intoopen-telemetry:mainfrom
pellared:rm-scope-info

Conversation

@pellared
Copy link
Copy Markdown
Member

@pellared pellared commented May 13, 2025

Fixes #4223

Prototypes:

Changes

Currently (before this PR) Prometheus and OpenMetrics Compatibility assumes that only scope name and scope version are identifying.

However, with #4161 this is no longer true.

Therefore, this PR updates the Prometheus and OpenMetrics Compatibility specification to add the scope name, version, schema URL, scope attributes to all metrics.

This also removes the otel_scope_info as it looks that it won't be useful. See: #4223 (comment).

This change important for Collector open-telemetry/opentelemetry-go#5846 (comment). It is also is necessary towards stabilization of OTel-Prom/OpenMetrics compatibility) and the Prometheus exporter.

Initially, I thought about splitting it into a few PRs. However, it looks like doing it in one PR would be a more complete approach (also there are not that many changes).

@pellared pellared marked this pull request as ready for review May 13, 2025 11:10
@pellared pellared requested review from a team May 13, 2025 11:10
@pellared pellared changed the title prometheus: handle scheme URL and scope attributes prometheus: handle schema URL and scope attributes May 13, 2025
@pellared
Copy link
Copy Markdown
Member Author

@open-telemetry/prometheus-interoperability, @jade-guiton-dd, @aknuds1, @ywwg: PTAL

Comment thread specification/compatibility/prometheus_and_openmetrics.md Outdated
Co-authored-by: Jade Guiton <jade.guiton@datadoghq.com>
@pellared pellared requested a review from jade-guiton-dd May 13, 2025 13:53
Comment thread specification/compatibility/prometheus_and_openmetrics.md
Comment thread specification/compatibility/prometheus_and_openmetrics.md
Comment thread specification/compatibility/prometheus_and_openmetrics.md Outdated
Comment thread specification/metrics/sdk_exporters/prometheus.md
@pellared pellared requested a review from ArthurSens May 15, 2025 08:57
Comment thread specification/metrics/sdk_exporters/prometheus.md
Comment thread spec-compliance-matrix.md
Copy link
Copy Markdown
Contributor

@dashpole dashpole left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm OK with cleaning up configuration options in a separate PR.

Copy link
Copy Markdown
Member

@ArthurSens ArthurSens left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, thanks for the help and guidance on this work :)

@pellared pellared requested a review from lmolkova May 28, 2025 16:39
Comment thread specification/compatibility/prometheus_and_openmetrics.md
@pellared
Copy link
Copy Markdown
Member Author

pellared commented Jun 4, 2025

@carlosalberto, here is the PR that is supposed to fix the hyperlinks: #4542

@carlosalberto carlosalberto added this pull request to the merge queue Jun 5, 2025
@carlosalberto carlosalberto removed this pull request from the merge queue due to the queue being cleared Jun 5, 2025
@carlosalberto carlosalberto added this pull request to the merge queue Jun 5, 2025
Merged via the queue into open-telemetry:main with commit 0c730d9 Jun 5, 2025
6 checks passed
@pellared pellared deleted the rm-scope-info branch June 5, 2025 17:31
@carlosalberto carlosalberto mentioned this pull request Jun 6, 2025
github-merge-queue Bot pushed a commit that referenced this pull request Jun 12, 2025
### Metrics

- Prometheus receiver can expect `otel_scope_schema_url` and
`otel_scope_[attribute]` labels on all metrics.

([#4505](#4505))
- Prometheus receiver no longer expects `otel_scope_info` metric.

([#4505](#4505))
- Prometheus exporter adds `otel_scope_schema_url` and
`otel_scope_[attribute]` labels on all metrics.

([#4505](#4505))
- Prometheus exporter no longer exports `otel_scope_info` metric.

([#4505](#4505))

### Entities

- Define rules for setting identifying attributes.

([#4498](#4498))
- Define rules for entity-resource referencing model.

([#4499](#4499))

### Common

- Move Instrumentation Scope definition from glossary to a dedicated
document and use normative language.

([#4488](#4488))
github-merge-queue Bot pushed a commit that referenced this pull request Jul 24, 2025
…me, version and schema URL (#4599)

## Changes

Small adjustment after
#4505

cc @pellared @dashpole @aknuds1 @ywwg

Signed-off-by: Arthur Silva Sens <arthursens2005@gmail.com>
github-merge-queue Bot pushed a commit to jaegertracing/jaeger that referenced this pull request Apr 10, 2026
This PR contains the following updates:

| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
|
[github.com/open-telemetry/opentelemetry-collector-contrib/cmd/schemagen](https://github.com/open-telemetry/opentelemetry-collector-contrib)
| `v0.148.0` → `v0.149.0` |
![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fopen-telemetry%2fopentelemetry-collector-contrib%2fcmd%2fschemagen/v0.149.0?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fopen-telemetry%2fopentelemetry-collector-contrib%2fcmd%2fschemagen/v0.148.0/v0.149.0?slim=true)
|
|
[github.com/open-telemetry/opentelemetry-collector-contrib/connector/spanmetricsconnector](https://github.com/open-telemetry/opentelemetry-collector-contrib)
| `v0.148.0` → `v0.149.0` |
![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fopen-telemetry%2fopentelemetry-collector-contrib%2fconnector%2fspanmetricsconnector/v0.149.0?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fopen-telemetry%2fopentelemetry-collector-contrib%2fconnector%2fspanmetricsconnector/v0.148.0/v0.149.0?slim=true)
|
|
[github.com/open-telemetry/opentelemetry-collector-contrib/exporter/kafkaexporter](https://github.com/open-telemetry/opentelemetry-collector-contrib)
| `v0.148.0` → `v0.149.0` |
![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fopen-telemetry%2fopentelemetry-collector-contrib%2fexporter%2fkafkaexporter/v0.149.0?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fopen-telemetry%2fopentelemetry-collector-contrib%2fexporter%2fkafkaexporter/v0.148.0/v0.149.0?slim=true)
|
|
[github.com/open-telemetry/opentelemetry-collector-contrib/exporter/prometheusexporter](https://github.com/open-telemetry/opentelemetry-collector-contrib)
| `v0.148.0` → `v0.149.0` |
![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fopen-telemetry%2fopentelemetry-collector-contrib%2fexporter%2fprometheusexporter/v0.149.0?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fopen-telemetry%2fopentelemetry-collector-contrib%2fexporter%2fprometheusexporter/v0.148.0/v0.149.0?slim=true)
|
|
[github.com/open-telemetry/opentelemetry-collector-contrib/extension/basicauthextension](https://github.com/open-telemetry/opentelemetry-collector-contrib)
| `v0.148.0` → `v0.149.0` |
![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fopen-telemetry%2fopentelemetry-collector-contrib%2fextension%2fbasicauthextension/v0.149.0?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fopen-telemetry%2fopentelemetry-collector-contrib%2fextension%2fbasicauthextension/v0.148.0/v0.149.0?slim=true)
|
|
[github.com/open-telemetry/opentelemetry-collector-contrib/extension/healthcheckv2extension](https://github.com/open-telemetry/opentelemetry-collector-contrib)
| `v0.148.0` → `v0.149.0` |
![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fopen-telemetry%2fopentelemetry-collector-contrib%2fextension%2fhealthcheckv2extension/v0.149.0?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fopen-telemetry%2fopentelemetry-collector-contrib%2fextension%2fhealthcheckv2extension/v0.148.0/v0.149.0?slim=true)
|
|
[github.com/open-telemetry/opentelemetry-collector-contrib/extension/pprofextension](https://github.com/open-telemetry/opentelemetry-collector-contrib)
| `v0.148.0` → `v0.149.0` |
![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fopen-telemetry%2fopentelemetry-collector-contrib%2fextension%2fpprofextension/v0.149.0?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fopen-telemetry%2fopentelemetry-collector-contrib%2fextension%2fpprofextension/v0.148.0/v0.149.0?slim=true)
|
|
[github.com/open-telemetry/opentelemetry-collector-contrib/extension/sigv4authextension](https://github.com/open-telemetry/opentelemetry-collector-contrib)
| `v0.148.0` → `v0.149.0` |
![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fopen-telemetry%2fopentelemetry-collector-contrib%2fextension%2fsigv4authextension/v0.149.0?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fopen-telemetry%2fopentelemetry-collector-contrib%2fextension%2fsigv4authextension/v0.148.0/v0.149.0?slim=true)
|
|
[github.com/open-telemetry/opentelemetry-collector-contrib/extension/storage](https://github.com/open-telemetry/opentelemetry-collector-contrib)
| `v0.148.0` → `v0.149.0` |
![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fopen-telemetry%2fopentelemetry-collector-contrib%2fextension%2fstorage/v0.149.0?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fopen-telemetry%2fopentelemetry-collector-contrib%2fextension%2fstorage/v0.148.0/v0.149.0?slim=true)
|
|
[github.com/open-telemetry/opentelemetry-collector-contrib/pkg/core/xidutils](https://github.com/open-telemetry/opentelemetry-collector-contrib)
| `v0.148.0` → `v0.149.0` |
![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fopen-telemetry%2fopentelemetry-collector-contrib%2fpkg%2fcore%2fxidutils/v0.149.0?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fopen-telemetry%2fopentelemetry-collector-contrib%2fpkg%2fcore%2fxidutils/v0.148.0/v0.149.0?slim=true)
|
|
[github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatatest](https://github.com/open-telemetry/opentelemetry-collector-contrib)
| `v0.148.0` → `v0.149.0` |
![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fopen-telemetry%2fopentelemetry-collector-contrib%2fpkg%2fpdatatest/v0.149.0?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fopen-telemetry%2fopentelemetry-collector-contrib%2fpkg%2fpdatatest/v0.148.0/v0.149.0?slim=true)
|
|
[github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatautil](https://github.com/open-telemetry/opentelemetry-collector-contrib)
| `v0.148.0` → `v0.149.0` |
![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fopen-telemetry%2fopentelemetry-collector-contrib%2fpkg%2fpdatautil/v0.149.0?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fopen-telemetry%2fopentelemetry-collector-contrib%2fpkg%2fpdatautil/v0.148.0/v0.149.0?slim=true)
|
|
[github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/jaeger](https://github.com/open-telemetry/opentelemetry-collector-contrib)
| `v0.148.0` → `v0.149.0` |
![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fopen-telemetry%2fopentelemetry-collector-contrib%2fpkg%2ftranslator%2fjaeger/v0.149.0?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fopen-telemetry%2fopentelemetry-collector-contrib%2fpkg%2ftranslator%2fjaeger/v0.148.0/v0.149.0?slim=true)
|
|
[github.com/open-telemetry/opentelemetry-collector-contrib/processor/attributesprocessor](https://github.com/open-telemetry/opentelemetry-collector-contrib)
| `v0.148.0` → `v0.149.0` |
![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fopen-telemetry%2fopentelemetry-collector-contrib%2fprocessor%2fattributesprocessor/v0.149.0?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fopen-telemetry%2fopentelemetry-collector-contrib%2fprocessor%2fattributesprocessor/v0.148.0/v0.149.0?slim=true)
|
|
[github.com/open-telemetry/opentelemetry-collector-contrib/processor/filterprocessor](https://github.com/open-telemetry/opentelemetry-collector-contrib)
| `v0.148.0` → `v0.149.0` |
![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fopen-telemetry%2fopentelemetry-collector-contrib%2fprocessor%2ffilterprocessor/v0.149.0?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fopen-telemetry%2fopentelemetry-collector-contrib%2fprocessor%2ffilterprocessor/v0.148.0/v0.149.0?slim=true)
|
|
[github.com/open-telemetry/opentelemetry-collector-contrib/processor/tailsamplingprocessor](https://github.com/open-telemetry/opentelemetry-collector-contrib)
| `v0.148.0` → `v0.149.0` |
![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fopen-telemetry%2fopentelemetry-collector-contrib%2fprocessor%2ftailsamplingprocessor/v0.149.0?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fopen-telemetry%2fopentelemetry-collector-contrib%2fprocessor%2ftailsamplingprocessor/v0.148.0/v0.149.0?slim=true)
|
|
[github.com/open-telemetry/opentelemetry-collector-contrib/receiver/jaegerreceiver](https://github.com/open-telemetry/opentelemetry-collector-contrib)
| `v0.148.0` → `v0.149.0` |
![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fopen-telemetry%2fopentelemetry-collector-contrib%2freceiver%2fjaegerreceiver/v0.149.0?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fopen-telemetry%2fopentelemetry-collector-contrib%2freceiver%2fjaegerreceiver/v0.148.0/v0.149.0?slim=true)
|
|
[github.com/open-telemetry/opentelemetry-collector-contrib/receiver/kafkareceiver](https://github.com/open-telemetry/opentelemetry-collector-contrib)
| `v0.148.0` → `v0.149.0` |
![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fopen-telemetry%2fopentelemetry-collector-contrib%2freceiver%2fkafkareceiver/v0.149.0?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fopen-telemetry%2fopentelemetry-collector-contrib%2freceiver%2fkafkareceiver/v0.148.0/v0.149.0?slim=true)
|
|
[github.com/open-telemetry/opentelemetry-collector-contrib/receiver/zipkinreceiver](https://github.com/open-telemetry/opentelemetry-collector-contrib)
| `v0.148.0` → `v0.149.0` |
![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fopen-telemetry%2fopentelemetry-collector-contrib%2freceiver%2fzipkinreceiver/v0.149.0?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fopen-telemetry%2fopentelemetry-collector-contrib%2freceiver%2fzipkinreceiver/v0.148.0/v0.149.0?slim=true)
|

---

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

---

### Release Notes

<details>
<summary>open-telemetry/opentelemetry-collector-contrib
(github.com/open-telemetry/opentelemetry-collector-contrib/cmd/schemagen)</summary>

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

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

##### 🛑 Breaking changes 🛑

- `exporter/elasticsearch`: Remove `host.os.type` encoding in ECS mode
([#&#8203;46900](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46900))
Use
[processor/elasticapmprocessor](https://github.com/elastic/opentelemetry-collector-components/tree/main/processor/elasticapmprocessor)
v0.36.2 or later for `host.os.type` enrichment
- `receiver/prometheus`: Remove the deprecated
`report_extra_scrape_metrics` receiver configuration option and obsolete
extra scrape metric feature gates.
([#&#8203;44181](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/44181))
`report_extra_scrape_metrics` is no longer accepted in
`prometheusreceiver` configuration.
Control extra scrape metrics through the
PromConfig.ScrapeConfigs.ExtraScrapeMetrics setting instead.

##### 🚩 Deprecations 🚩

- `receiver/awsfirehose`: Deprecate built-in unmarshalers (cwlogs,
cwmetrics, otlp\_v1) in favor of encoding extensions.
([#&#8203;45830](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/45830))
Use the aws\_logs\_encoding extension (format: cloudwatch) instead of
cwlogs,
and the awscloudwatchmetricstreams\_encoding extension instead of
cwmetrics (format: json)
  or otlp\_v1 (format: opentelemetry1.0).

- `receiver/file_log`: Rename `filelog` receiver to `file_log` with
deprecated alias `filelog`
([#&#8203;45339](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/45339))

- `receiver/kafka`: Deprecate the built-in `azure_resource_logs`
encoding in favour of `azureencodingextension`.
([#&#8203;46267](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46267))
The built-in `azure_resource_logs` encoding does not support all
timestamp formats
emitted by Azure services (e.g. US-format timestamps from Azure
Functions).
Users should migrate to the
[`azureencodingextension`](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/extension/encoding/azureencodingextension),
which provides full control over time formats and is actively
maintained.

##### 💡 Enhancements 💡

- `cmd/opampsupervisor`: Add configuration validation before applying
remote config to prevent collector downtime
([#&#8203;41068](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/41068))
Validates collector configurations before applying them, preventing
downtime from invalid remote configs.
Disabled by default. Enable via `agent.validate_config: true`. May
produce false positives when resources
  like ports are temporarily unavailable during validation.

- `connector/datadog`: Document datadog connector is not supported in
aix environments
([#&#8203;47010](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47010))
Explicitly opt out of host metadata computation in datadog components to
support AIX compilation target.

- `connector/signal_to_metrics`: Add `keys_expression` support in
`include_resource_attributes` and `attributes` for dynamic attribute key
resolution at runtime
([#&#8203;46884](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46884))
The `keys_expression` field allows specifying an OTTL value expression
that resolves to a list
of attribute keys at runtime. This enables dynamic resource attribute
filtering based on runtime
data such as client metadata. Exactly one of `key` or `keys_expression`
must be set per entry.

- `connector/signal_to_metrics`: Reduce per-signal allocations in the
hot path by replacing attribute map allocation with a pooled hash-based
ID check, and caching filtered resource attributes per metric definition
within each resource batch.
([#&#8203;47197](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47197))

- `connector/signal_to_metrics`: Pre-compute prefixed collector key to
avoid a string allocation on every signal processed.
([#&#8203;47183](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47183))
Pre-computing the collector key avoids a string allocation on every
signal processed.

- `exporter/datadog`: Document datadog exporter is not supported in aix
environments
([#&#8203;47010](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47010))
Explicitly opt out of host metadata computation in datadog components to
support AIX compilation target.

- `exporter/elasticsearch`: Add `histogram:raw` mapping hint to bypass
midpoint approximation for histogram metrics
([#&#8203;47150](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47150))

- `exporter/elasticsearch`: Cache metric attribute set per bulk session
instead of recomputing it for every document
([#&#8203;47170](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47170))
`syncBulkIndexerSession.Add()` was calling
`getAttributesFromMetadataKeys` +
`attribute.NewSet` + `metric.WithAttributeSet` on every document in the
hot path. The attribute set is
derived from the request context metadata, which is constant for the
lifetime of a session, so it is
now computed once in `StartSession` and reused across all `Add()` calls
in that session.

- `exporter/elasticsearch`: populate \_doc\_count field in ECS mapping
mode
([#&#8203;46936](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46936))
\_doc\_count is a special metadata field in Elasticsearch used when a
document represents pre-aggregated data (like histograms or aggregate
metrics).
Currently, elasticsearchexporter only populates this field for otel
mapping mode (native otel field structure). This change
adds support for ECS mapping mode (native ECS field structure) so that
we have consistent behavior for both mapping modes.

- `exporter/elasticsearch`: Encode `require_data_stream` in
Elasticsearch bulk action metadata instead of the bulk request query
string.
([#&#8203;46970](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46970))
This preserves existing endpoint query parameters while moving
`require_data_stream`
to the per-document action line expected by newer bulk workflows.
Benchmarks show
  a stable \~27 bytes/item NDJSON payload overhead before compression.

- `exporter/elasticsearch`: Improve performance of Elasticsearch
exporter document serialisation
([#&#8203;47171](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47171))

- `exporter/elasticsearch`: Add metric for docs retried because of
request errors
([#&#8203;46215](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46215))

- `exporter/kafka`: Cache OTel metric attribute sets in OnBrokerE2E hook
to reduce per-export allocations
([#&#8203;47186](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47186))
`OnBrokerE2E` previously rebuilt `attribute.NewSet` +
`metric.WithAttributeSet` on every
call. The set of distinct (nodeID, host, outcome) combinations is
bounded by
2 × number-of-brokers, so the computed `MeasurementOption` is now cached
per key.

- `exporter/pulsar`: This component does not support aix/ppc64.
([#&#8203;47010](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47010))
  Make the exporter explicitly panic if used in aix/ppc64 environments.

- `extension/datadog`: Document datadog extension is not supported in
aix environments
([#&#8203;47010](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47010))
Explicitly opt out of host metadata computation in datadog components to
support AIX compilation target.

- `extension/db_storage`: Make dbstorage work in AIX environments
([#&#8203;47010](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47010))
sqlite support is offered via modernC, which doesn't support the AIX
ppc64 compilation target.
We carve out support for sqlite in AIX environments so contrib can
compile for this compilation target.

- `extension/health_check`: Add component event attributes to serialized
output.
([#&#8203;43606](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/43606))
When `http.status.include_attributes` is enabled in the healthcheckv2
extension (with `use_v2: true`),
users will see additional attributes in the status output. These
attributes provide more
context about component states, including details like error messages
and affected components.
  For example:
  ```json
  {
    "healthy": false,
    "status": "error",
    "attributes": {
      "error_msg": "not enough permissions to read cpu data",
      "scrapers": ["cpu", "memory", "network"]
    }
  }
  ```

- `extension/healthcheckv2`: Add component event attributes to
serialized output.
([#&#8203;43606](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/43606))
When `http.status.include_attributes` is enabled in the healthcheckv2
extension (with `use_v2: true`),
users will see additional attributes in the status output. These
attributes provide more
context about component states, including details like error messages
and affected components.
  For example:
  ```json
  {
    "healthy": false,
    "status": "error",
    "attributes": {
      "error_msg": "not enough permissions to read cpu data",
      "scrapers": ["cpu", "memory", "network"]
    }
  }
  ```

- `extension/sigv4auth`: Add support for External IDs when assuming
roles in cross-account authentication scenarios
([#&#8203;44930](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/44930))
Added external\_id field to the AssumeRole configuration, allowing users
to specify
an External ID when assuming roles for enhanced cross-account security.

- `internal/datadog`: Do not compute host metadata in AIX environments
([#&#8203;47010](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47010))
Explicitly opt out of host metadata computation in datadog components to
support AIX compilation target.

- `pkg/stanza`: Ensure router operator does not split batches of entries
([#&#8203;42393](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/42393))

- `pkg/stanza`: Parse all Windows Event XML fields into the log body,
including RenderingInfo (with Culture, Channel, Provider, Task, Opcode,
Keywords, Message), UserData, ProcessingErrorData, DebugData, and
BinaryEventData.
([#&#8203;46943](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46943))
Previously, RenderingInfo was only used to derive the top-level
level/task/opcode/keywords/message
fields. It is now also emitted as a top-level `rendering_info` key
containing all fields including
`culture`, `channel`, and `provider`. UserData (an alternative to
EventData used by some providers)
is now parsed into a `user_data` key. Rare schema elements
ProcessingErrorData, DebugData, and
  BinaryEventData are also captured when present.

- `processor/resourcedetection`: Added IBM Cloud VPC resource detector
to the Resource Detection Processor
([#&#8203;46874](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46874))

- `processor/resourcedetection`: Added IBM Cloud Classic resource
detector to the Resource Detection Processor
([#&#8203;46874](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46874))

- `processor/tail_sampling`: Add `sampling_strategy` config with
`trace-complete` and `span-ingest` modes for tail sampling decision
timing and evaluation behavior.
([#&#8203;46600](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46600))

- `receiver/awslambda`: Enrich context with AWS Lambda receiver metadata
for S3 logs
([#&#8203;47046](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47046))

- `receiver/azure_event_hub`: Add support for Azure Event Hubs
distributed processing. This allows the receiver to automatically
coordinate partition ownership and checkpointing across multiple
collector instances via Azure Blob Storage.
([#&#8203;46595](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46595))

- `receiver/docker_stats`: Add TLS configuration support for connecting
to the Docker daemon over HTTPS with client and server certificates.
([#&#8203;33557](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/33557))
A new optional `tls` configuration block is available in `docker_stats`
receiver config (and the
shared `internal/docker` package). When omitted the connection remains
insecure (plain HTTP or
Unix socket), preserving existing behavior. When provided it supports
the standard
`configtls.ClientConfig` fields: `ca_file`, `cert_file`, `key_file`,
`insecure_skip_verify`,
  `min_version`, and `max_version`.
A warning is now emitted when a plain `tcp://` or `http://` endpoint is
used without TLS,
reflecting Docker's deprecation of unauthenticated TCP connections since
Docker v26.0
(see
<https://docs.docker.com/engine/deprecated/#unauthenticated-tcp-connections>).

- `receiver/docker_stats`: Add "stream\_stats" config option to maintain
a persistent Docker stats stream per container instead of opening a new
connection on every scrape cycle.
([#&#8203;46493](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46493))
When `stream_stats: true` is set, each container maintains a persistent
open Docker stats
stream instead of opening and closing a new connection on every scrape
cycle. The scraper
  reads from the cached latest value, which reduces connection overhead.

- `receiver/expvar`: Enable the re-aggregation feature for the expvar
receiver
([#&#8203;45396](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/45396))

- `receiver/file_log`: Add `max_log_size_behavior` config option to
control oversized log entry behavior
([#&#8203;44371](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/44371))
The new `max_log_size_behavior` setting controls what happens when a log
entry exceeds `max_log_size`.
- `split` (default): Splits oversized log entries into multiple log
entries. This is the existing behavior.
- `truncate`: Truncates oversized log entries and drops the remainder,
emitting only a single truncated log entry.

- `receiver/hostmetrics`: Enable re-aggregation for system scraper
([#&#8203;46624](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46624))
  Enabled the reaggregation feature gate for the system scraper.

- `receiver/hostmetrics`: Enable re-aggregation for process scraper
([#&#8203;46623](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46623))
Enabled the reaggregation feature gate for the process scraper and set
all metric attributes (context\_switch\_type, direction,
paging\_fault\_type, state) with requirement\_level recommended.

- `receiver/mongodb`: Enable re-aggregation feature for mongodb receiver
metrics
([#&#8203;46366](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46366))

- `receiver/mongodb`: Add `scheme` configuration option to support
`mongodb+srv` connections
([#&#8203;36011](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/36011))
  The new `scheme` field allows connecting to MongoDB clusters using
  SRV DNS records (mongodb+srv protocol). Defaults to "mongodb" for
  backward compatibility.

- `receiver/mysql`: Add `mysql.query_plan.hash` attribute to top query
log records, enabling users to correlate top queries with their
corresponding execution plans.
([#&#8203;46626](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46626))

- `receiver/mysql`: Added `mysql.session.status` and `mysql.session.id`
attributes to query samples. `mysql.session.status` indicates the
session status (`waiting`, `running`, or `other`) at the time of the
sample. `mysql.session.id` provides the unique session identifier. Both
attributes provide additional context for understanding query
performance and behavior.
([#&#8203;135350](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/135350))

- `receiver/mysql`: Add and tune obfuscation of sensitive properties in
both V1 and V2 JSON query plans.
([#&#8203;46629](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46629),
[#&#8203;46587](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46587))
Configure and test obfuscation for V1 and V2 plans, including tests of
queries retrieved from the performance schema that are truncated and
cannot be obfuscated.
The importance of obfuscation can be very context dependent; sensitive
PII, banking, and authorization data may reside in the same database as
less sensitive data, and it can be vital to ensure that what is expected
to be obfuscated is always obfuscated. Significant additional testing
has been added around query plan obfuscation to ensure that this is
enforced and to provide assurance and reference to users about what
specifically is obfuscated and what is not.

- `receiver/mysql`: Propagates W3C TraceContext from MySQL session
variables to query sample log records. When a MySQL session sets
`@traceparent`, the receiver extracts the TraceID and SpanID and stamps
them onto the corresponding `db.server.query_sample` log record,
enabling correlation between application traces and query samples.
([#&#8203;46631](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46631))
Only samples from sessions where `@traceparent` is set will have
non-zero `traceId` and `spanId` fields on the log record.

- `receiver/prometheus`: Add support for reading instrumentation scope
attributes from `otel_scope_<attribute-name>` labels while
feature-gating deprecation of `otel_scope_info`.
([#&#8203;41502](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/41502))
Scope attributes are always extracted from `otel_scope_<attribute-name>`
labels on metrics.
The `receiver.prometheusreceiver.IgnoreScopeInfoMetric` feature gate
(alpha, disabled by default)
controls only whether the legacy `otel_scope_info` metric is ignored for
scope attribute extraction.
When the gate is disabled, both mechanisms coexist to support migration.
See the specification change for motivation:
[open-telemetry/opentelemetry-specification#4505](https://github.com/open-telemetry/opentelemetry-specification/pull/4505)

- `receiver/pulsar`: This component does not support aix/ppc64.
([#&#8203;47010](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47010))
  Make the receiver explicitly panic if used in aix/ppc64 environments.

- `receiver/skywalking`: Add feature gate
`translator.skywalking.useStableSemconv` to update semantic conventions
from v1.18.0 to v1.38.0
([#&#8203;44796](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/44796))
A feature gate `translator.skywalking.useStableSemconv` has been added
to control the migration.
The gate is disabled by default (Alpha stage), so existing behavior is
preserved.

- `receiver/sqlquery`: Add clickhouse support to sqlquery
([#&#8203;47116](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47116))

- `receiver/sqlquery`: Add `row_condition` to metric configuration for
filtering result rows by column value
([#&#8203;45862](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/45862))
Enables extracting individual metrics from pivot-style result sets where
each row
represents a different metric (e.g. pgbouncer's `SHOW LISTS` command).
When
`row_condition` is configured on a metric, only rows where the specified
column
equals the specified value are used; all other rows are silently
skipped.

- `receiver/sqlserver`: Enable dynamic metric reaggregation in the SQL
Server receiver.
([#&#8203;46379](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46379))

- `receiver/yang_grpc`: Support collecting any metric by browsing the
whole metrics tree
([#&#8203;47054](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47054))

##### 🧰 Bug fixes 🧰

- `exporter/kafka`: Fixes the validation for `topic_from_metadata_key`
to use partition keys.
([#&#8203;46994](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46994))

- `exporter/kafka`: Fix topic routing for multi-resource batches when
`topic_from_attribute` is set without resource-level partitioning
([#&#8203;46872](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46872))
  Previously, when a batch contained multiple resources with different
  topic attribute values, all data was silently sent to the topic of the
first resource. Each resource is now correctly routed to its own topic.

- `exporter/splunk_hec`: Fix timestamp precision in Splunk HEC exporter
to preserve microseconds instead of truncating to milliseconds.
([#&#8203;47175](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47175))
Timestamps were rounded to milliseconds before sending to Splunk HEC.
The rounding has been removed, giving microsecond precision in the HEC
`time` field.

- `extension/bearertokenauth`: Redact bearer token from authentication
error messages to prevent credential exposure in logs.
([#&#8203;46200](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46200))
Previously, when a client presented an invalid bearer token, the full
token value was
included in the error message returned by the Authenticate method. This
error could be
propagated to log output, exposing sensitive credentials. The error
message now omits
  the token value entirely.

- `internal/aws`: Respect NO\_PROXY/no\_proxy environment variables when
using env-based proxy configuration in awsutil
([#&#8203;46892](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46892))
When no explicit proxy\_address was configured, the HTTP client manually
read HTTPS\_PROXY
and used http.ProxyURL which ignores NO\_PROXY. Now delegates to
http.ProxyFromEnvironment
  which correctly handles all proxy environment variables.

- `processor/deltatorate`: Append "/s" to the unit of output datapoints
to reflect the per-second rate.
([#&#8203;46841](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46841))

- `processor/filter`: Fix validation of include and exclude severity
configurations so they run independently of LogConditions.
([#&#8203;46883](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46883))

- `receiver/datadog`: Propagate Datadog trace sampling priority to all
spans translated from a trace chunk.
([#&#8203;45402](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/45402))

- `receiver/file_log`: Fix data corruption after file compression
([#&#8203;46105](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46105))
After a log file is compressed (e.g. test.log → test.log.gz), the
receiver configured with `compression: auto` will now correctly
decompress the content and continue reading from where the plaintext
file left off.

- `receiver/file_log`: Fixes bug where File Log receiver did not read
the last line of gzip compressed files.
([#&#8203;45572](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/45572))

- `receiver/hostmetrics`: Align HugePages metric instrument types with
the semantic conventions by emitting page\_size, reserved, and surplus
as non-monotonic sums instead of gauges.
([#&#8203;42650](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/42650))

- `receiver/hostmetrics`: Handle nil PageFaultsStat in process scraper
to prevent panic on zombie processes.
([#&#8203;47095](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47095))

- `receiver/journald`: Fix emitting of historical entries on startup
([#&#8203;46556](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46556))
When start\_at is "end" (the default), pass --lines=0 to journalctl to
suppress
  the 10 historical entries it emits by default in follow mode.

- `receiver/k8s_events`: Exclude DELETED watch events to prevent
duplicate event ingestion.
([#&#8203;47035](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47035))

- `receiver/mysql`: Remove deprecated `information_schema.processlist`
JOIN from query samples template; use `thread.processlist_host` instead.
([#&#8203;47041](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47041))

- `receiver/oracledb`: Fix oracledbreceiver aborting entire scrape when
a SQL query text fails to obfuscate (e.g. due to Oracle truncating a
CLOB mid-string-literal). The affected entry is now skipped with a
warning log and the rest of the scrape continues normally.
([#&#8203;47151](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47151))

- `receiver/otelarrow`: Remove assumed positions of otel arrow root
payload types
([#&#8203;46878](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46878))

- `receiver/otelarrow`: Fix OTLP fallback handlers returning
codes.Unknown instead of codes.Unavailable for pipeline errors, causing
upstream exporters to permanently drop data instead of retrying.
([#&#8203;46182](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46182))

- `receiver/pprof`: Fixes pprofreceiver file\_scrapper appending
resource profiles instead of merging them.
([#&#8203;46991](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46991))

- `receiver/prometheus_remote_write`: Count target\_info samples in PRW
response stats
([#&#8203;47108](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47108))

<!-- previous-version -->

</details>

---

### Configuration

📅 **Schedule**: (UTC)

- Branch creation
  - "on friday"
- Automerge
  - At any time (no schedule defined)

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

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

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

---

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

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/jaegertracing/jaeger).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xMTAuMiIsInVwZGF0ZWRJblZlciI6IjQzLjExMC4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJjaGFuZ2Vsb2c6ZGVwZW5kZW5jaWVzIl19-->

Signed-off-by: Mend Renovate <bot@renovateapp.com>
codeboten pushed a commit to open-telemetry/opentelemetry-collector-contrib that referenced this pull request Apr 14, 2026
…ib/extension/internal/credentialsfile to v0.150.0 (#47636)

> ℹ️ **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/) |
|---|---|---|---|
|
[github.com/open-telemetry/opentelemetry-collector-contrib/extension/internal/credentialsfile](https://github.com/open-telemetry/opentelemetry-collector-contrib)
| `v0.146.2-0.20260219223409-66996adfaaf7` → `v0.150.0` |
![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fopen-telemetry%2fopentelemetry-collector-contrib%2fextension%2finternal%2fcredentialsfile/v0.150.0?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fopen-telemetry%2fopentelemetry-collector-contrib%2fextension%2finternal%2fcredentialsfile/v0.146.2-0.20260219223409-66996adfaaf7/v0.150.0?slim=true)
|

---

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

---

### Release Notes

<details>
<summary>open-telemetry/opentelemetry-collector-contrib
(github.com/open-telemetry/opentelemetry-collector-contrib/extension/internal/credentialsfile)</summary>

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

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

##### 🛑 Breaking changes 🛑

- `pkg/ottl`: Return errors when OTTL context accessors receive values
of the wrong type (part 2)
([#&#8203;40198](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/40198))
Setters in OTTL contexts now validate that values are of the expected
type and return
descriptive errors when type mismatches occur. This is the continuation
of work done in

[#&#8203;43505](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/43505),
addressing remaining contexts: datapoint, profile, profilesample,
resource, span,
  and spanevent.

  Changes include:

- Slice setters (explicit\_bounds, bucket\_counts,
positive.bucket\_counts, negative.bucket\_counts)
now use SetCommonTypedSliceValues/SetCommonIntSliceValues for better
type handling.
- SetMap now returns an error for invalid value types instead of
silently ignoring them.

**Note:** Users may see new errors from OTTL statements that were
previously silently failing
due to type mismatches. These errors indicate pre-existing issues in
OTTL configurations that
  were not being applied as expected.

- `processor/resourcedetection`: Remove feature gate
processor.resourcedetection.propagateerrors
([#&#8203;45853](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/45853))

- `processor/transform`: Remove the
`processor.transform.ConvertBetweenSumAndGaugeMetricContext` feature
gate.
([#&#8203;47358](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47358))
This feature gate has been stable for over a year and is no longer used
in any code paths.

- `receiver/k8s_cluster`: Kubernetes resource labels in entity events
are now prefixed per OTel semantic conventions.
([#&#8203;47491](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47491))
Labels on Kubernetes resources emitted as entity event attributes are
now prefixed with
`k8s.<resource>.label.` to align with OTel semantic conventions (e.g.
`k8s.pod.label.<key>`,
  `k8s.node.label.<key>`, `k8s.deployment.label.<key>`, etc.).
  Previously, label keys were emitted verbatim without any prefix.
Users consuming entity event attributes by label key will need to update
their configurations.

- `receiver/kubeletstats`: Disable deprecated resource attributes by
default
([#&#8203;47184](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47184))
The following resource attributes are deprecated and will now be
disabled by default:
`aws.volume.id`, `fs.type`, `gce.pd.name`, `glusterfs.endpoints.name`,
`glusterfs.path`, and `partition`.
  All of these attributes will be removed in a future release.

##### 🚩 Deprecations 🚩

- `receiver/http_check`: Rename `httpcheck` receiver to `http_check`
with deprecated alias `httpcheck`
([#&#8203;45339](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/45339))
- `receiver/named_pipe`: Rename `namedpipe` receiver to `named_pipe`
with deprecated alias `namedpipe`.
([#&#8203;45339](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/45339))
- `receiver/tcp_log`: Rename `tcplog` receiver to `tcp_log` with
deprecated alias `tcplog`
([#&#8203;45339](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/45339))
- `receiver/tls_check`: Rename `tlscheck` receiver to `tls_check` with
deprecated alias `tlscheck`
([#&#8203;45339](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/45339))
- `receiver/udp_log`: Rename `udplog` receiver to `udp_log` with
deprecated alias `udplog`
([#&#8203;45339](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/45339))
- `receiver/windows_event_log`: Rename `windowseventlog` receiver to
`windows_event_log` with deprecated alias `windowseventlog`
([#&#8203;45339](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/45339))

##### 🚀 New components 🚀

- `exporter/google_secops`: Add Google SecOps exporter for sending logs
to the Google SecOps (Chronicle) Ingestion APIs.
([#&#8203;46148](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46148))
- `processor/spanpruning`: Add span pruning processor for aggregating
repetitive leaf spans in trace data.
([#&#8203;45654](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/45654))
- `receiver/osquery`: Implement osquery query scraping
([#&#8203;30375](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/30375))

##### 💡 Enhancements 💡

- `exporter/datadog`: Promote
`exporter.datadogexporter.DisableAllMetricRemapping` feature gate to
beta.
([#&#8203;47212](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47212))
- All metrics remappings are now handled by the Datadog backend and this
should be a transparent change. If you run into any issues, please
disable the feature gate by passing
`--feature-gates=-exporter.datadogexporter.DisableAllMetricRemapping`
and reach out to Datadog support (<https://www.datadoghq.com/support/>).

- `exporter/elasticsearch`: Add suppress\_conflict\_errors config to
optionally silence document level 409 version conflict logs
([#&#8203;47248](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47248))

- `exporter/kafka`: Add `record_headers` configuration option to set
static headers on outgoing records
([#&#8203;47193](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47193))

- `exporter/kafka`: Add support for partitioning kafka records
([#&#8203;46931](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46931))
Add support for RoundRobin and LeastBackup partitioning strategies, as
well as custom partitioners
provided by RecordPartitionerExtension implementations. Users can
implement their own partitioning logic
and plug it into the kafka exporter via the RecordPartitionerExtension
interface.

- `exporter/prometheus`: Exemplar support for exponential histograms in
Prometheus exporter
([#&#8203;47159](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47159))

- `exporter/prometheus`: prevent panic on histogram with empty
BucketCounts.
([#&#8203;47351](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47351))
Guard BucketCounts access with a length check in convertDoubleHistogram
to avoid index-out-of-range panic when a histogram has explicit bounds
but no corresponding bucket counts.

- `exporter/signalfx`: Add `dimension_client::strip_k8s_label_prefix`
option to strip `k8s.<resource>.label.` prefix from dimension property
updates.
([#&#8203;47491](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47491))
The k8s cluster receiver now emits Kubernetes resource labels in entity
events with the
`k8s.<resource>.label.` prefix per OTel semantic conventions (e.g.
`k8s.pod.label.app`).
When `strip_k8s_label_prefix: true` (the default), the SignalFx exporter
strips this prefix
when forwarding labels as dimension properties, preserving the existing
SignalFx behavior (e.g. `app`).
Set `strip_k8s_label_prefix: false` to disable stripping and receive the
full prefixed keys.

- `exporter/sumologic`: Modify default retry settings to prevent
dropping data on transient backend unavailability
([#&#8203;47503](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47503))

- `extension/datadog`: Add `gateway_service` and `gateway_destination`
config fields to support gateway topology view in Fleet Automation.
([#&#8203;47471](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47471))
Gateway collectors set `gateway_service` to the k8s Service fronting
them.
Agent/daemonset collectors set `gateway_destination` to the k8s Service
they forward telemetry to.
Both fields are optional and omitted from the metadata payload when
empty.

- `extension/health_check`: Migrate
extension.healthcheck.useComponentStatus feature gate registration from
manual code to metadata.yaml for mdatagen code generation
([#&#8203;46116](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46116))

- `extension/sumologic`: Adding support to sumologic extension for auto
discovery of services in windows
([#&#8203;47349](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47349))

- `pkg/ottl`: Add Coalesce converter that returns the first non-nil
value from a list of arguments.
([#&#8203;46847](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46847))
The Coalesce converter accepts a list of values and returns the first
one that is not nil.
This simplifies common patterns where a canonical attribute must be
resolved from multiple possible sources.
Example: `set(attributes["user"], Coalesce([attributes["user.id"],
attributes["enduser.id"], "unknown"]))`

- `pkg/stanza`: Optimizing the performance of Windows Event log
unmarshalling when raw = true
([#&#8203;47164](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47164))

- `pkg/stanza`: Add new scrape model for Windows event logs using an
event-driven subscription instead of polling
([#&#8203;47091](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47091))

- `pkg/stanza`: Add `on_truncate` option to fileconsumer to control
behavior when a file's stored offset exceeds its current size.
([#&#8203;43693](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/43693))

- `processor/filter`: Add feature gate
`processor.filter.defaultErrorModeIgnore` to change default error\_mode
to ignore
([#&#8203;47232](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47232))

- `processor/interval`: Flush remaining buffered metrics on shutdown to
prevent data loss during restarts and rollouts.
([#&#8203;47238](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47238))
Previously, the interval processor would silently drop any metrics
accumulated
in its buffer when receiving a shutdown signal. Now it flushes the
buffer to
the next consumer before exiting, consistent with the batch processor
behavior.

- `processor/lookup`: Add DNS lookup source and LRU caching
([#&#8203;46114](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46114))
Adds a DNS source that performs reverse DNS lookups (PTR records) to
resolve IP addresses to hostnames.
Implements a full LRU cache with size-based eviction, TTL expiration,
and negative caching.
  The DNS source has caching enabled by default.

- `processor/spanpruning`: Add full implementation of the span pruning
processor.
([#&#8203;45654](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/45654))

- `processor/tail_sampling`: Add gated tail storage extension support to
tailsampling processor via new tail\_storage config
([#&#8203;45250](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/45250))
Introduces a new tail storage interface with in-memory default behavior
and allows extension-backed storage when
the processor.tailsamplingprocessor.tailstorageextension feature gate is
enabled.

- `processor/transform`: Add feature gate
`processor.transform.defaultErrorModeIgnore` to change default
error\_mode to ignore
([#&#8203;47231](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47231))

- `processor/transform`: Add support for semantic conventions 1.38.0,
1.39.0, and 1.40.0 in the `set_semconv_span_name` function.
([#&#8203;45911](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/45911))
The `set_semconv_span_name` function now recognizes semantic conventions
1.38.0, 1.39.0, and 1.40.0, allowing span names to be determined using
the latest rules. Support for the `rpc.system.name` attribute
(introduced in 1.39.0) has been added so span names can reflect the new
RPC system conventions. Backward compatibility is preserved: the
`rpc.system` attribute remains supported.

- `receiver/active_directory_ds`: Enables dynamic metric reaggregation
in the Active Directory Domain Services receiver. This does not break
existing configuration files.
([#&#8203;46346](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46346))

- `receiver/apachespark`: Enable the re-aggregation feature for the
apachespark receiver
([#&#8203;46349](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46349))

- `receiver/awss3`: add `tag_object_after_ingestion` flag to the s3
receiver so objects that have been processed can be identified
([#&#8203;46078](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46078))
They will be tagged with `otel-collector:status=ingested`. Operators can
use that tag to define bucket lifecycle policies.

- `receiver/awss3`: add zstd decompression to the s3 receiver
([#&#8203;46854](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46854))

- `receiver/cloudfoundry`: Migrate cloudfoundry.resourceAttributes.allow
feature gate registration from manual code to metadata.yaml for mdatagen
code generation
([#&#8203;46116](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46116))

- `receiver/elasticsearch`: Enable dynamic attribute metric with
attribute re-aggregation in configuration at runtime
([#&#8203;46353](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46353))

- `receiver/filestats`: Enable re-aggregation and set requirement levels
for attributes.
([#&#8203;46355](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46355))

- `receiver/googlecloudpubsub`: Add flow control configuration
([#&#8203;44804](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/44804))
Add flow control configuration, giving advanced users more control over
the parameters of the streaming
  pull control loop.

- `receiver/k8s_cluster`: Emit entity references as part of metrics
resources.
([#&#8203;41080](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/41080))

- `receiver/k8sobjects`: Add `kube_api_qps` and `kube_api_burst` config
options to control Kubernetes API request rate limits and prevent
client-side throttling when watching or polling many resources
([#&#8203;44484](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/44484))
The same fields are also available in `receiver/k8sevents` via the
shared `internal/k8sconfig` package.
Default values match the client-go defaults: `kube_api_qps=5`,
`kube_api_burst=10`.

- `receiver/receiver_creator`: add support for profiling signal for
receiver creator
([#&#8203;46930](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46930))

- `receiver/splunkenterprise`: Add custom search support to the Splunk
Enterprise receiver
([#&#8203;47124](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47124))

- `receiver/windows_event_log`: Add `discover_domain_controllers` config
flag to automatically discover and collect Security events from Active
Directory domain controllers based on feature gate
domainControllers.autodiscovery.
([#&#8203;44156](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/44156),
[#&#8203;44423](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/44423))
When `discover_domain_controllers` in config and
`domainControllers.autodiscovery` feature gate is set `true` , the
receiver queries LDAP Root DSE to
discover the root domain path, enumerates all domain controllers in the
Active Directory
  forest, and creates receiver for each domain controller.
Falls back to the currently joined DC if the root DN cannot be
determined.

##### 🧰 Bug fixes 🧰

- `exporter/awsemf`: Fix data races in getPusher and logPusher that
cause nil pointer panics and out-of-order log events
([#&#8203;47126](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47126))

- `exporter/awss3`: Use AWS SDK S3 types for StorageClass and ACL
validation instead of hardcoded lists
([#&#8203;46825](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46825))
The hardcoded list of valid S3 storage classes was missing GLACIER\_IR,
REDUCED\_REDUNDANCY, and EXPRESS\_ONEZONE.
Replaced both StorageClass and ACL hardcoded validation maps with values
from the AWS SDK s3types package
  to prevent this from going out of date again in the future.

- `exporter/datadog`: Fix use-after-free bug causing corrupted quantile
sketches when exporting ExponentialHistogram metrics with multiple
attribute sets
([#&#8203;47338](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47338))
When multiple ExponentialHistogram data points were converted to Datadog
sketches in a single
export call, the underlying sync.Pool backing array was shared across
conversions. A second
conversion would reuse and overwrite the first sketch's bin memory,
producing non-monotonic
  bin keys and inflated percentile values. This is fixed by upgrading
github.com/DataDog/datadog-agent/pkg/util/quantile to commit
[`bfa4eff`](https://github.com/open-telemetry/opentelemetry-collector-contrib/commit/bfa4eff6c991),
which deep-copies
  the bin slice before returning the sketch.

- `exporter/elasticsearch`: Fix malformed JSON creation for numbers in
exponential notation.
([#&#8203;47363](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47363))
When rendering numbers in exponential notation the exporter JSON
implementation always added a radix point (e.g. 1.0 not 1).
The implementation had a buffer corruption bug where it was overriding
part of the buffer leading to malformed and invalid JSON numbers being
created.

- `exporter/prometheus`: Fix Prometheus exporter default HTTP server
behavior where keep-alives and server timeouts were not using the
intended defaults.
([#&#8203;47173](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47173))
This fixes default behavior where keep\_alives\_enabled was effectively
false unless explicitly configured.

- `exporter/prometheus`: Fix unbounded memory growth when metrics are no
longer being scraped.
([#&#8203;41123](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/41123))
Expired metric families now get cleaned up even when no Prometheus
scraper is actively collecting,
  preventing memory from growing indefinitely.

- `extension/aws_logs_encoding`: Add `source_region` field (27th field)
to S3 server access log parser and skip unknown future fields
gracefully.
([#&#8203;47149](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47149))
AWS added a `source_region` field to the S3 server access log format.
The parser
previously returned an error ("values in log line exceed the number of
available fields")
  when it encountered log lines with more fields than defined. This fix:
- Adds `source_region` as field index 26 mapped to
`aws.s3.source_region`.
- Makes the parser skip any fields beyond the known schema instead of
failing,
providing forward compatibility with future AWS S3 access log additions.

- `pkg/stanza`: Fix severity parser to work with JSON parser with
`parse_ints: true`
([#&#8203;47209](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47209))

- `receiver/awss3`: Fix infinite loop and metric skew caused by SQS
failing to parse and delete "s3:TestEvent" messages
([#&#8203;47045](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47045))

- `receiver/vcenter`: Fixes a nil pointer dereference panic in
recordVMStats when scraping metrics from VMs with missing performance
counters
([#&#8203;46977](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46977))

<!-- previous-version -->

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

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

##### 🛑 Breaking changes 🛑

- `exporter/elasticsearch`: Remove `host.os.type` encoding in ECS mode
([#&#8203;46900](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46900))
Use
[processor/elasticapmprocessor](https://github.com/elastic/opentelemetry-collector-components/tree/main/processor/elasticapmprocessor)
v0.36.2 or later for `host.os.type` enrichment
- `receiver/prometheus`: Remove the deprecated
`report_extra_scrape_metrics` receiver configuration option and obsolete
extra scrape metric feature gates.
([#&#8203;44181](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/44181))
`report_extra_scrape_metrics` is no longer accepted in
`prometheusreceiver` configuration.
Control extra scrape metrics through the
PromConfig.ScrapeConfigs.ExtraScrapeMetrics setting instead.

##### 🚩 Deprecations 🚩

- `receiver/awsfirehose`: Deprecate built-in unmarshalers (cwlogs,
cwmetrics, otlp\_v1) in favor of encoding extensions.
([#&#8203;45830](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/45830))
Use the aws\_logs\_encoding extension (format: cloudwatch) instead of
cwlogs,
and the awscloudwatchmetricstreams\_encoding extension instead of
cwmetrics (format: json)
  or otlp\_v1 (format: opentelemetry1.0).

- `receiver/file_log`: Rename `filelog` receiver to `file_log` with
deprecated alias `filelog`
([#&#8203;45339](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/45339))

- `receiver/kafka`: Deprecate the built-in `azure_resource_logs`
encoding in favour of `azureencodingextension`.
([#&#8203;46267](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46267))
The built-in `azure_resource_logs` encoding does not support all
timestamp formats
emitted by Azure services (e.g. US-format timestamps from Azure
Functions).
Users should migrate to the
[`azureencodingextension`](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/extension/encoding/azureencodingextension),
which provides full control over time formats and is actively
maintained.

##### 💡 Enhancements 💡

- `cmd/opampsupervisor`: Add configuration validation before applying
remote config to prevent collector downtime
([#&#8203;41068](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/41068))
Validates collector configurations before applying them, preventing
downtime from invalid remote configs.
Disabled by default. Enable via `agent.validate_config: true`. May
produce false positives when resources
  like ports are temporarily unavailable during validation.

- `connector/datadog`: Document datadog connector is not supported in
aix environments
([#&#8203;47010](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47010))
Explicitly opt out of host metadata computation in datadog components to
support AIX compilation target.

- `connector/signal_to_metrics`: Add `keys_expression` support in
`include_resource_attributes` and `attributes` for dynamic attribute key
resolution at runtime
([#&#8203;46884](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46884))
The `keys_expression` field allows specifying an OTTL value expression
that resolves to a list
of attribute keys at runtime. This enables dynamic resource attribute
filtering based on runtime
data such as client metadata. Exactly one of `key` or `keys_expression`
must be set per entry.

- `connector/signal_to_metrics`: Reduce per-signal allocations in the
hot path by replacing attribute map allocation with a pooled hash-based
ID check, and caching filtered resource attributes per metric definition
within each resource batch.
([#&#8203;47197](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47197))

- `connector/signal_to_metrics`: Pre-compute prefixed collector key to
avoid a string allocation on every signal processed.
([#&#8203;47183](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47183))
Pre-computing the collector key avoids a string allocation on every
signal processed.

- `exporter/datadog`: Document datadog exporter is not supported in aix
environments
([#&#8203;47010](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47010))
Explicitly opt out of host metadata computation in datadog components to
support AIX compilation target.

- `exporter/elasticsearch`: Add `histogram:raw` mapping hint to bypass
midpoint approximation for histogram metrics
([#&#8203;47150](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47150))

- `exporter/elasticsearch`: Cache metric attribute set per bulk session
instead of recomputing it for every document
([#&#8203;47170](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47170))
`syncBulkIndexerSession.Add()` was calling
`getAttributesFromMetadataKeys` +
`attribute.NewSet` + `metric.WithAttributeSet` on every document in the
hot path. The attribute set is
derived from the request context metadata, which is constant for the
lifetime of a session, so it is
now computed once in `StartSession` and reused across all `Add()` calls
in that session.

- `exporter/elasticsearch`: populate \_doc\_count field in ECS mapping
mode
([#&#8203;46936](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46936))
\_doc\_count is a special metadata field in Elasticsearch used when a
document represents pre-aggregated data (like histograms or aggregate
metrics).
Currently, elasticsearchexporter only populates this field for otel
mapping mode (native otel field structure). This change
adds support for ECS mapping mode (native ECS field structure) so that
we have consistent behavior for both mapping modes.

- `exporter/elasticsearch`: Encode `require_data_stream` in
Elasticsearch bulk action metadata instead of the bulk request query
string.
([#&#8203;46970](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46970))
This preserves existing endpoint query parameters while moving
`require_data_stream`
to the per-document action line expected by newer bulk workflows.
Benchmarks show
  a stable \~27 bytes/item NDJSON payload overhead before compression.

- `exporter/elasticsearch`: Improve performance of Elasticsearch
exporter document serialisation
([#&#8203;47171](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47171))

- `exporter/elasticsearch`: Add metric for docs retried because of
request errors
([#&#8203;46215](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46215))

- `exporter/kafka`: Cache OTel metric attribute sets in OnBrokerE2E hook
to reduce per-export allocations
([#&#8203;47186](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47186))
`OnBrokerE2E` previously rebuilt `attribute.NewSet` +
`metric.WithAttributeSet` on every
call. The set of distinct (nodeID, host, outcome) combinations is
bounded by
2 × number-of-brokers, so the computed `MeasurementOption` is now cached
per key.

- `exporter/pulsar`: This component does not support aix/ppc64.
([#&#8203;47010](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47010))
  Make the exporter explicitly panic if used in aix/ppc64 environments.

- `extension/datadog`: Document datadog extension is not supported in
aix environments
([#&#8203;47010](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47010))
Explicitly opt out of host metadata computation in datadog components to
support AIX compilation target.

- `extension/db_storage`: Make dbstorage work in AIX environments
([#&#8203;47010](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47010))
sqlite support is offered via modernC, which doesn't support the AIX
ppc64 compilation target.
We carve out support for sqlite in AIX environments so contrib can
compile for this compilation target.

- `extension/health_check`: Add component event attributes to serialized
output.
([#&#8203;43606](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/43606))
When `http.status.include_attributes` is enabled in the healthcheckv2
extension (with `use_v2: true`),
users will see additional attributes in the status output. These
attributes provide more
context about component states, including details like error messages
and affected components.
  For example:
  ```json
  {
    "healthy": false,
    "status": "error",
    "attributes": {
      "error_msg": "not enough permissions to read cpu data",
      "scrapers": ["cpu", "memory", "network"]
    }
  }
  ```

- `extension/healthcheckv2`: Add component event attributes to
serialized output.
([#&#8203;43606](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/43606))
When `http.status.include_attributes` is enabled in the healthcheckv2
extension (with `use_v2: true`),
users will see additional attributes in the status output. These
attributes provide more
context about component states, including details like error messages
and affected components.
  For example:
  ```json
  {
    "healthy": false,
    "status": "error",
    "attributes": {
      "error_msg": "not enough permissions to read cpu data",
      "scrapers": ["cpu", "memory", "network"]
    }
  }
  ```

- `extension/sigv4auth`: Add support for External IDs when assuming
roles in cross-account authentication scenarios
([#&#8203;44930](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/44930))
Added external\_id field to the AssumeRole configuration, allowing users
to specify
an External ID when assuming roles for enhanced cross-account security.

- `internal/datadog`: Do not compute host metadata in AIX environments
([#&#8203;47010](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47010))
Explicitly opt out of host metadata computation in datadog components to
support AIX compilation target.

- `pkg/stanza`: Ensure router operator does not split batches of entries
([#&#8203;42393](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/42393))

- `pkg/stanza`: Parse all Windows Event XML fields into the log body,
including RenderingInfo (with Culture, Channel, Provider, Task, Opcode,
Keywords, Message), UserData, ProcessingErrorData, DebugData, and
BinaryEventData.
([#&#8203;46943](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46943))
Previously, RenderingInfo was only used to derive the top-level
level/task/opcode/keywords/message
fields. It is now also emitted as a top-level `rendering_info` key
containing all fields including
`culture`, `channel`, and `provider`. UserData (an alternative to
EventData used by some providers)
is now parsed into a `user_data` key. Rare schema elements
ProcessingErrorData, DebugData, and
  BinaryEventData are also captured when present.

- `processor/resourcedetection`: Added IBM Cloud VPC resource detector
to the Resource Detection Processor
([#&#8203;46874](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46874))

- `processor/resourcedetection`: Added IBM Cloud Classic resource
detector to the Resource Detection Processor
([#&#8203;46874](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46874))

- `processor/tail_sampling`: Add `sampling_strategy` config with
`trace-complete` and `span-ingest` modes for tail sampling decision
timing and evaluation behavior.
([#&#8203;46600](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46600))

- `receiver/awslambda`: Enrich context with AWS Lambda receiver metadata
for S3 logs
([#&#8203;47046](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47046))

- `receiver/azure_event_hub`: Add support for Azure Event Hubs
distributed processing. This allows the receiver to automatically
coordinate partition ownership and checkpointing across multiple
collector instances via Azure Blob Storage.
([#&#8203;46595](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46595))

- `receiver/docker_stats`: Add TLS configuration support for connecting
to the Docker daemon over HTTPS with client and server certificates.
([#&#8203;33557](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/33557))
A new optional `tls` configuration block is available in `docker_stats`
receiver config (and the
shared `internal/docker` package). When omitted the connection remains
insecure (plain HTTP or
Unix socket), preserving existing behavior. When provided it supports
the standard
`configtls.ClientConfig` fields: `ca_file`, `cert_file`, `key_file`,
`insecure_skip_verify`,
  `min_version`, and `max_version`.
A warning is now emitted when a plain `tcp://` or `http://` endpoint is
used without TLS,
reflecting Docker's deprecation of unauthenticated TCP connections since
Docker v26.0
(see
<https://docs.docker.com/engine/deprecated/#unauthenticated-tcp-connections>).

- `receiver/docker_stats`: Add "stream\_stats" config option to maintain
a persistent Docker stats stream per container instead of opening a new
connection on every scrape cycle.
([#&#8203;46493](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46493))
When `stream_stats: true` is set, each container maintains a persistent
open Docker stats
stream instead of opening and closing a new connection on every scrape
cycle. The scraper
  reads from the cached latest value, which reduces connection overhead.

- `receiver/expvar`: Enable the re-aggregation feature for the expvar
receiver
([#&#8203;45396](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/45396))

- `receiver/file_log`: Add `max_log_size_behavior` config option to
control oversized log entry behavior
([#&#8203;44371](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/44371))
The new `max_log_size_behavior` setting controls what happens when a log
entry exceeds `max_log_size`.
- `split` (default): Splits oversized log entries into multiple log
entries. This is the existing behavior.
- `truncate`: Truncates oversized log entries and drops the remainder,
emitting only a single truncated log entry.

- `receiver/hostmetrics`: Enable re-aggregation for system scraper
([#&#8203;46624](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46624))
  Enabled the reaggregation feature gate for the system scraper.

- `receiver/hostmetrics`: Enable re-aggregation for process scraper
([#&#8203;46623](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46623))
Enabled the reaggregation feature gate for the process scraper and set
all metric attributes (context\_switch\_type, direction,
paging\_fault\_type, state) with requirement\_level recommended.

- `receiver/mongodb`: Enable re-aggregation feature for mongodb receiver
metrics
([#&#8203;46366](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46366))

- `receiver/mongodb`: Add `scheme` configuration option to support
`mongodb+srv` connections
([#&#8203;36011](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/36011))
  The new `scheme` field allows connecting to MongoDB clusters using
  SRV DNS records (mongodb+srv protocol). Defaults to "mongodb" for
  backward compatibility.

- `receiver/mysql`: Add `mysql.query_plan.hash` attribute to top query
log records, enabling users to correlate top queries with their
corresponding execution plans.
([#&#8203;46626](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46626))

- `receiver/mysql`: Added `mysql.session.status` and `mysql.session.id`
attributes to query samples. `mysql.session.status` indicates the
session status (`waiting`, `running`, or `other`) at the time of the
sample. `mysql.session.id` provides the unique session identifier. Both
attributes provide additional context for understanding query
performance and behavior.
([#&#8203;135350](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/135350))

- `receiver/mysql`: Add and tune obfuscation of sensitive properties in
both V1 and V2 JSON query plans.
([#&#8203;46629](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46629),
[#&#8203;46587](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46587))
Configure and test obfuscation for V1 and V2 plans, including tests of
queries retrieved from the performance schema that are truncated and
cannot be obfuscated.
The importance of obfuscation can be very context dependent; sensitive
PII, banking, and authorization data may reside in the same database as
less sensitive data, and it can be vital to ensure that what is expected
to be obfuscated is always obfuscated. Significant additional testing
has been added around query plan obfuscation to ensure that this is
enforced and to provide assurance and reference to users about what
specifically is obfuscated and what is not.

- `receiver/mysql`: Propagates W3C TraceContext from MySQL session
variables to query sample log records. When a MySQL session sets
`@traceparent`, the receiver extracts the TraceID and SpanID and stamps
them onto the corresponding `db.server.query_sample` log record,
enabling correlation between application traces and query samples.
([#&#8203;46631](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46631))
Only samples from sessions where `@traceparent` is set will have
non-zero `traceId` and `spanId` fields on the log record.

- `receiver/prometheus`: Add support for reading instrumentation scope
attributes from `otel_scope_<attribute-name>` labels while
feature-gating deprecation of `otel_scope_info`.
([#&#8203;41502](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/41502))
Scope attributes are always extracted from `otel_scope_<attribute-name>`
labels on metrics.
The `receiver.prometheusreceiver.IgnoreScopeInfoMetric` feature gate
(alpha, disabled by default)
controls only whether the legacy `otel_scope_info` metric is ignored for
scope attribute extraction.
When the gate is disabled, both mechanisms coexist to support migration.
See the specification change for motivation:
[open-telemetry/opentelemetry-specification#4505](https://github.com/open-telemetry/opentelemetry-specification/pull/4505)

- `receiver/pulsar`: This component does not support aix/ppc64.
([#&#8203;47010](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47010))
  Make the receiver explicitly panic if used in aix/ppc64 environments.

- `receiver/skywalking`: Add feature gate
`translator.skywalking.useStableSemconv` to update semantic conventions
from v1.18.0 to v1.38.0
([#&#8203;44796](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/44796))
A feature gate `translator.skywalking.useStableSemconv` has been added
to control the migration.
The gate is disabled by default (Alpha stage), so existing behavior is
preserved.

- `receiver/sqlquery`: Add clickhouse support to sqlquery
([#&#8203;47116](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47116))

- `receiver/sqlquery`: Add `row_condition` to metric configuration for
filtering result rows by column value
([#&#8203;45862](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/45862))
Enables extracting individual metrics from pivot-style result sets where
each row
represents a different metric (e.g. pgbouncer's `SHOW LISTS` command).
When
`row_condition` is configured on a metric, only rows where the specified
column
equals the specified value are used; all other rows are silently
skipped.

- `receiver/sqlserver`: Enable dynamic metric reaggregation in the SQL
Server receiver.
([#&#8203;46379](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46379))

- `receiver/yang_grpc`: Support collecting any metric by browsing the
whole metrics tree
([#&#8203;47054](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47054))

##### 🧰 Bug fixes 🧰

- `exporter/kafka`: Fixes the validation for `topic_from_metadata_key`
to use partition keys.
([#&#8203;46994](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46994))

- `exporter/kafka`: Fix topic routing for multi-resource batches when
`topic_from_attribute` is set without resource-level partitioning
([#&#8203;46872](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46872))
  Previously, when a batch contained multiple resources with different
  topic attribute values, all data was silently sent to the topic of the
first resource. Each resource is now correctly routed to its own topic.

- `exporter/splunk_hec`: Fix timestamp precision in Splunk HEC exporter
to preserve microseconds instead of truncating to milliseconds.
([#&#8203;47175](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47175))
Timestamps were rounded to milliseconds before sending to Splunk HEC.
The rounding has been removed, giving microsecond precision in the HEC
`time` field.

- `extension/bearertokenauth`: Redact bearer token from authentication
error messages to prevent credential exposure in logs.
([#&#8203;46200](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46200))
Previously, when a client presented an invalid bearer token, the full
token value was
included in the error message returned by the Authenticate method. This
error could be
propagated to log output, exposing sensitive credentials. The error
message now omits
  the token value entirely.

- `internal/aws`: Respect NO\_PROXY/no\_proxy environment variables when
using env-based proxy configuration in awsutil
([#&#8203;46892](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46892))
When no explicit proxy\_address was configured, the HTTP client manually
read HTTPS\_PROXY
and used http.ProxyURL which ignores NO\_PROXY. Now delegates to
http.ProxyFromEnvironment
  which correctly handles all proxy environment variables.

- `processor/deltatorate`: Append "/s" to the unit of output datapoints
to reflect the per-second rate.
([#&#8203;46841](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46841))

- `processor/filter`: Fix validation of include and exclude severity
configurations so they run independently of LogConditions.
([#&#8203;46883](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46883))

- `receiver/datadog`: Propagate Datadog trace sampling priority to all
spans translated from a trace chunk.
([#&#8203;45402](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/45402))

- `receiver/file_log`: Fix data corruption after file compression
([#&#8203;46105](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46105))
After a log file is compressed (e.g. test.log → test.log.gz), the
receiver configured with `compression: auto` will now correctly
decompress the content and continue reading from where the plaintext
file left off.

- `receiver/file_log`: Fixes bug where File Log receiver did not read
the last line of gzip compressed files.
([#&#8203;45572](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/45572))

- `receiver/hostmetrics`: Align HugePages metric instrument types with
the semantic conventions by emitting page\_size, reserved, and surplus
as non-monotonic sums instead of gauges.
([#&#8203;42650](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/42650))

- `receiver/hostmetrics`: Handle nil PageFaultsStat in process scraper
to prevent panic on zombie processes.
([#&#8203;47095](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47095))

- `receiver/journald`: Fix emitting of historical entries on startup
([#&#8203;46556](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46556))
When start\_at is "end" (the default), pass --lines=0 to journalctl to
suppress
  the 10 historical entries it emits by default in follow mode.

- `receiver/k8s_events`: Exclude DELETED watch events to prevent
duplicate event ingestion.
([#&#8203;47035](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47035))

- `receiver/mysql`: Remove deprecated `information_schema.processlist`
JOIN from query samples template; use `thread.processlist_host` instead.
([#&#8203;47041](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47041))

- `receiver/oracledb`: Fix oracledbreceiver aborting entire scrape when
a SQL query text fails to obfuscate (e.g. due to Oracle truncating a
CLOB mid-string-literal). The affected entry is now skipped with a
warning log and the rest of the scrape continues normally.
([#&#8203;47151](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47151))

- `receiver/otelarrow`: Remove assumed positions of otel arrow root
payload types
([#&#8203;46878](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46878))

- `receiver/otelarrow`: Fix OTLP fallback handlers returning
codes.Unknown instead of codes.Unavailable for pipeline errors, causing
upstream exporters to permanently drop data instead of retrying.
([#&#8203;46182](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46182))

- `receiver/pprof`: Fixes pprofreceiver file\_scrapper appending
resource profiles instead of merging them.
([#&#8203;46991](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46991))

- `receiver/prometheus_remote_write`: Count target\_info samples in PRW
response stats
([#&#8203;47108](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47108))

<!-- previous-version -->

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

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

##### 🛑 Breaking changes 🛑

- `all`: Removes the k8slog receiver after being unmaintained for 3
months
([#&#8203;46544](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46544))

- `all`: Remove deprecated SAPM exporter
([#&#8203;46555](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46555))

- `all`: Remove the datadogsemantics processor.
([#&#8203;46893](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46893))
If you need help, please contact Datadog support:
<https://www.datadoghq.com/support>.

- `exporter/google_cloud_storage`: `reuse_if_exists` behavior changed:
now checks bucket existence instead of attempting creation
([#&#8203;45971](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/45971))
Previously, `reuse_if_exists=true` would attempt bucket creation and
fall back to reusing on conflict.
Now, `reuse_if_exists=true` checks if bucket exists (via
storage.buckets.get) and uses it, failing if it doesn't exist.
Set to true when the service account lacks project-level bucket creation
permissions but has bucket-level permissions.
`reuse_if_exists=false` still attempts to create the bucket and fails if
it already exists.

- `exporter/kafka`: Remove deprecated top-level `topic` and `encoding`
configuration fields
([#&#8203;46916](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46916))
The top-level `topic` and `encoding` fields were deprecated in v0.124.0.
  Use the per-signal fields instead: `logs::topic`, `metrics::topic`,
  `traces::topic`, `profiles::topic`, and the corresponding `encoding`
  fields under each signal section.

- `exporter/kafka`: Remove kafka-local batching partitioner wiring and
require explicit `sending_queue::batch::partition::metadata_keys`
configuration as a superset of `include_metadata_keys` when batching is
enabled.
([#&#8203;46757](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46757))

- `pkg/ottl`: `truncate_all` function now supports UTF-8 safe truncation
([#&#8203;36713](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/36713))
The default `truncate_all` behavior has changed. Truncation now respects
UTF-8 character boundaries by default (new optional parameter
`utf8_safe`, default: `true`), so results stay valid UTF-8 and may be
slightly shorter than the limit.
To keep the previous byte-level truncation behavior (e.g. for non-UTF-8
data or to avoid any behavior change), set `utf8_safe` to `false` in all
`truncate_all` usages.

- `receiver/awsecscontainermetrics`: Add ephemeral storage metrics and
fix unit strings from Megabytes to MiB
([#&#8203;46414](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46414))
Adds two new task-level gauge metrics:
`ecs.task.ephemeral_storage.utilized` and
`ecs.task.ephemeral_storage.reserved` (in MiB).
These metrics are available on AWS Fargate Linux platform version 1.4.0+
and represent the shared ephemeral storage for the entire task.

**Breaking change:** The unit string for `ecs.task.memory.utilized`,
`ecs.task.memory.reserved`,
`container.memory.utilized`, and `container.memory.reserved` has been
corrected from `"Megabytes"` to `"MiB"`.
The underlying values were already in MiB (computed via division by
1024\*1024), but the unit label was incorrect.
Users relying on the exact unit string (e.g. in metric filters or
dashboards) will need to update accordingly.

- `receiver/mysql`: Set the default collection of query\_sample to false
([#&#8203;46902](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46902))

- `receiver/postgresql`: Disable default collection of top\_query and
query\_sample events.
([#&#8203;46843](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46843))
This change is breaking because it disables the default collection of
top\_query and query\_sample events. These events will need to be
enabled manually if desired.

- `receiver/redfish`: `system.host_name` and `base_url` resource
attribute has been changed to `host.name` and `url.full` respectively.

([#&#8203;46236](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46236))

- `receiver/windowseventlog`: Change event\_data from an array of
single-key maps to a flat map by default, making fields directly
accessible via OTTL. The previous format is available by setting
`event_data_format: array`.
([#&#8203;42565](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/42565),
[#&#8203;32952](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/32952))
Named <Data> elements become direct keys (e.g.,
body\["event\_data"]\["ProcessId"]).
  Anonymous <Data> elements use numbered keys: param1, param2, etc.
To preserve the previous array format, set event\_data\_format: array in
the receiver configuration.

##### 🚩 Deprecations 🚩

- `exporter/azure_blob`: Introduce new snake case compliant name
`azure_blob`
([#&#8203;46722](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46722))
- `exporter/google_cloud_storage`: Introduce new snake case compliant
name `google_cloud_storage`
([#&#8203;46733](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46733))
- `extension/aws_logs_encoding`: Introduce new snake case compliant name
`aws_logs_encoding`
([#&#8203;46776](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46776))
- `extension/azure_auth`: Introduce new snake case compliant name
`azure_auth`
([#&#8203;46775](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46775))
- `extension/cgroup_runtime`: Introduce new snake case compliant name
`cgroup_runtime`
([#&#8203;46773](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46773))
- `extension/google_cloud_logentry_encoding`: Introduce new snake case
compliant name `google_cloud_logentry_encoding`
([#&#8203;46778](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46778))
- `processor/metric_start_time`: Introduce new snake case compliant name
`metric_start_time`
([#&#8203;46777](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46777))
- `receiver/azure_blob`: Introduce new snake case compliant name
`azure_blob`
([#&#8203;46721](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46721))
- `receiver/azure_monitor`: Introduce new snake case compliant name
`azure_monitor`
([#&#8203;46730](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46730))
- `receiver/cisco_os`: Introduce new snake case compliant name
`cisco_os`
([#&#8203;46948](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46948))
- `receiver/macos_unified_logging`: Introduce new snake case compliant
name `macos_unified_logging`
([#&#8203;46729](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46729))
- `receiver/prometheus_remote_write`: Introduce new snake case compliant
name `prometheus_remote_write`
([#&#8203;46726](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46726))
- `receiver/yang_grpc`: Introduce new snake case compliant name
`yang_grpc`
([#&#8203;46723](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46723))

##### 🚀 New components 🚀

- `receiver/azure_functions`: Introduce new component to receive logs
from Azure Functions
([#&#8203;43507](https://github.com/open-telemetry/opentelemetry-collector-con

</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-contrib).

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

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
songy23 pushed a commit to open-telemetry/opentelemetry-collector-contrib that referenced this pull request Apr 21, 2026
…ib/extension/storage to v0.150.0 (#47807)

> ℹ️ **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/) |
|---|---|---|---|
|
[github.com/open-telemetry/opentelemetry-collector-contrib/extension/storage](https://github.com/open-telemetry/opentelemetry-collector-contrib)
| `v0.147.0` → `v0.150.0` |
![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fopen-telemetry%2fopentelemetry-collector-contrib%2fextension%2fstorage/v0.150.0?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fopen-telemetry%2fopentelemetry-collector-contrib%2fextension%2fstorage/v0.147.0/v0.150.0?slim=true)
|

---

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

---

### Release Notes

<details>
<summary>open-telemetry/opentelemetry-collector-contrib
(github.com/open-telemetry/opentelemetry-collector-contrib/extension/storage)</summary>

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

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

##### 🛑 Breaking changes 🛑

- `pkg/ottl`: Return errors when OTTL context accessors receive values
of the wrong type (part 2)
([#&#8203;40198](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/40198))
Setters in OTTL contexts now validate that values are of the expected
type and return
descriptive errors when type mismatches occur. This is the continuation
of work done in

[#&#8203;43505](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/43505),
addressing remaining contexts: datapoint, profile, profilesample,
resource, span,
  and spanevent.

  Changes include:

- Slice setters (explicit\_bounds, bucket\_counts,
positive.bucket\_counts, negative.bucket\_counts)
now use SetCommonTypedSliceValues/SetCommonIntSliceValues for better
type handling.
- SetMap now returns an error for invalid value types instead of
silently ignoring them.

**Note:** Users may see new errors from OTTL statements that were
previously silently failing
due to type mismatches. These errors indicate pre-existing issues in
OTTL configurations that
  were not being applied as expected.

- `processor/resourcedetection`: Remove feature gate
processor.resourcedetection.propagateerrors
([#&#8203;45853](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/45853))

- `processor/transform`: Remove the
`processor.transform.ConvertBetweenSumAndGaugeMetricContext` feature
gate.
([#&#8203;47358](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47358))
This feature gate has been stable for over a year and is no longer used
in any code paths.

- `receiver/k8s_cluster`: Kubernetes resource labels in entity events
are now prefixed per OTel semantic conventions.
([#&#8203;47491](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47491))
Labels on Kubernetes resources emitted as entity event attributes are
now prefixed with
`k8s.<resource>.label.` to align with OTel semantic conventions (e.g.
`k8s.pod.label.<key>`,
  `k8s.node.label.<key>`, `k8s.deployment.label.<key>`, etc.).
  Previously, label keys were emitted verbatim without any prefix.
Users consuming entity event attributes by label key will need to update
their configurations.

- `receiver/kubeletstats`: Disable deprecated resource attributes by
default
([#&#8203;47184](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47184))
The following resource attributes are deprecated and will now be
disabled by default:
`aws.volume.id`, `fs.type`, `gce.pd.name`, `glusterfs.endpoints.name`,
`glusterfs.path`, and `partition`.
  All of these attributes will be removed in a future release.

##### 🚩 Deprecations 🚩

- `receiver/http_check`: Rename `httpcheck` receiver to `http_check`
with deprecated alias `httpcheck`
([#&#8203;45339](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/45339))
- `receiver/named_pipe`: Rename `namedpipe` receiver to `named_pipe`
with deprecated alias `namedpipe`.
([#&#8203;45339](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/45339))
- `receiver/tcp_log`: Rename `tcplog` receiver to `tcp_log` with
deprecated alias `tcplog`
([#&#8203;45339](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/45339))
- `receiver/tls_check`: Rename `tlscheck` receiver to `tls_check` with
deprecated alias `tlscheck`
([#&#8203;45339](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/45339))
- `receiver/udp_log`: Rename `udplog` receiver to `udp_log` with
deprecated alias `udplog`
([#&#8203;45339](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/45339))
- `receiver/windows_event_log`: Rename `windowseventlog` receiver to
`windows_event_log` with deprecated alias `windowseventlog`
([#&#8203;45339](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/45339))

##### 🚀 New components 🚀

- `exporter/google_secops`: Add Google SecOps exporter for sending logs
to the Google SecOps (Chronicle) Ingestion APIs.
([#&#8203;46148](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46148))
- `processor/spanpruning`: Add span pruning processor for aggregating
repetitive leaf spans in trace data.
([#&#8203;45654](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/45654))
- `receiver/osquery`: Implement osquery query scraping
([#&#8203;30375](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/30375))

##### 💡 Enhancements 💡

- `exporter/datadog`: Promote
`exporter.datadogexporter.DisableAllMetricRemapping` feature gate to
beta.
([#&#8203;47212](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47212))
- All metrics remappings are now handled by the Datadog backend and this
should be a transparent change. If you run into any issues, please
disable the feature gate by passing
`--feature-gates=-exporter.datadogexporter.DisableAllMetricRemapping`
and reach out to Datadog support (<https://www.datadoghq.com/support/>).

- `exporter/elasticsearch`: Add suppress\_conflict\_errors config to
optionally silence document level 409 version conflict logs
([#&#8203;47248](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47248))

- `exporter/kafka`: Add `record_headers` configuration option to set
static headers on outgoing records
([#&#8203;47193](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47193))

- `exporter/kafka`: Add support for partitioning kafka records
([#&#8203;46931](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46931))
Add support for RoundRobin and LeastBackup partitioning strategies, as
well as custom partitioners
provided by RecordPartitionerExtension implementations. Users can
implement their own partitioning logic
and plug it into the kafka exporter via the RecordPartitionerExtension
interface.

- `exporter/prometheus`: Exemplar support for exponential histograms in
Prometheus exporter
([#&#8203;47159](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47159))

- `exporter/prometheus`: prevent panic on histogram with empty
BucketCounts.
([#&#8203;47351](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47351))
Guard BucketCounts access with a length check in convertDoubleHistogram
to avoid index-out-of-range panic when a histogram has explicit bounds
but no corresponding bucket counts.

- `exporter/signalfx`: Add `dimension_client::strip_k8s_label_prefix`
option to strip `k8s.<resource>.label.` prefix from dimension property
updates.
([#&#8203;47491](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47491))
The k8s cluster receiver now emits Kubernetes resource labels in entity
events with the
`k8s.<resource>.label.` prefix per OTel semantic conventions (e.g.
`k8s.pod.label.app`).
When `strip_k8s_label_prefix: true` (the default), the SignalFx exporter
strips this prefix
when forwarding labels as dimension properties, preserving the existing
SignalFx behavior (e.g. `app`).
Set `strip_k8s_label_prefix: false` to disable stripping and receive the
full prefixed keys.

- `exporter/sumologic`: Modify default retry settings to prevent
dropping data on transient backend unavailability
([#&#8203;47503](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47503))

- `extension/datadog`: Add `gateway_service` and `gateway_destination`
config fields to support gateway topology view in Fleet Automation.
([#&#8203;47471](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47471))
Gateway collectors set `gateway_service` to the k8s Service fronting
them.
Agent/daemonset collectors set `gateway_destination` to the k8s Service
they forward telemetry to.
Both fields are optional and omitted from the metadata payload when
empty.

- `extension/health_check`: Migrate
extension.healthcheck.useComponentStatus feature gate registration from
manual code to metadata.yaml for mdatagen code generation
([#&#8203;46116](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46116))

- `extension/sumologic`: Adding support to sumologic extension for auto
discovery of services in windows
([#&#8203;47349](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47349))

- `pkg/ottl`: Add Coalesce converter that returns the first non-nil
value from a list of arguments.
([#&#8203;46847](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46847))
The Coalesce converter accepts a list of values and returns the first
one that is not nil.
This simplifies common patterns where a canonical attribute must be
resolved from multiple possible sources.
Example: `set(attributes["user"], Coalesce([attributes["user.id"],
attributes["enduser.id"], "unknown"]))`

- `pkg/stanza`: Optimizing the performance of Windows Event log
unmarshalling when raw = true
([#&#8203;47164](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47164))

- `pkg/stanza`: Add new scrape model for Windows event logs using an
event-driven subscription instead of polling
([#&#8203;47091](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47091))

- `pkg/stanza`: Add `on_truncate` option to fileconsumer to control
behavior when a file's stored offset exceeds its current size.
([#&#8203;43693](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/43693))

- `processor/filter`: Add feature gate
`processor.filter.defaultErrorModeIgnore` to change default error\_mode
to ignore
([#&#8203;47232](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47232))

- `processor/interval`: Flush remaining buffered metrics on shutdown to
prevent data loss during restarts and rollouts.
([#&#8203;47238](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47238))
Previously, the interval processor would silently drop any metrics
accumulated
in its buffer when receiving a shutdown signal. Now it flushes the
buffer to
the next consumer before exiting, consistent with the batch processor
behavior.

- `processor/lookup`: Add DNS lookup source and LRU caching
([#&#8203;46114](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46114))
Adds a DNS source that performs reverse DNS lookups (PTR records) to
resolve IP addresses to hostnames.
Implements a full LRU cache with size-based eviction, TTL expiration,
and negative caching.
  The DNS source has caching enabled by default.

- `processor/spanpruning`: Add full implementation of the span pruning
processor.
([#&#8203;45654](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/45654))

- `processor/tail_sampling`: Add gated tail storage extension support to
tailsampling processor via new tail\_storage config
([#&#8203;45250](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/45250))
Introduces a new tail storage interface with in-memory default behavior
and allows extension-backed storage when
the processor.tailsamplingprocessor.tailstorageextension feature gate is
enabled.

- `processor/transform`: Add feature gate
`processor.transform.defaultErrorModeIgnore` to change default
error\_mode to ignore
([#&#8203;47231](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47231))

- `processor/transform`: Add support for semantic conventions 1.38.0,
1.39.0, and 1.40.0 in the `set_semconv_span_name` function.
([#&#8203;45911](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/45911))
The `set_semconv_span_name` function now recognizes semantic conventions
1.38.0, 1.39.0, and 1.40.0, allowing span names to be determined using
the latest rules. Support for the `rpc.system.name` attribute
(introduced in 1.39.0) has been added so span names can reflect the new
RPC system conventions. Backward compatibility is preserved: the
`rpc.system` attribute remains supported.

- `receiver/active_directory_ds`: Enables dynamic metric reaggregation
in the Active Directory Domain Services receiver. This does not break
existing configuration files.
([#&#8203;46346](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46346))

- `receiver/apachespark`: Enable the re-aggregation feature for the
apachespark receiver
([#&#8203;46349](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46349))

- `receiver/awss3`: add `tag_object_after_ingestion` flag to the s3
receiver so objects that have been processed can be identified
([#&#8203;46078](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46078))
They will be tagged with `otel-collector:status=ingested`. Operators can
use that tag to define bucket lifecycle policies.

- `receiver/awss3`: add zstd decompression to the s3 receiver
([#&#8203;46854](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46854))

- `receiver/cloudfoundry`: Migrate cloudfoundry.resourceAttributes.allow
feature gate registration from manual code to metadata.yaml for mdatagen
code generation
([#&#8203;46116](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46116))

- `receiver/elasticsearch`: Enable dynamic attribute metric with
attribute re-aggregation in configuration at runtime
([#&#8203;46353](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46353))

- `receiver/filestats`: Enable re-aggregation and set requirement levels
for attributes.
([#&#8203;46355](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46355))

- `receiver/googlecloudpubsub`: Add flow control configuration
([#&#8203;44804](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/44804))
Add flow control configuration, giving advanced users more control over
the parameters of the streaming
  pull control loop.

- `receiver/k8s_cluster`: Emit entity references as part of metrics
resources.
([#&#8203;41080](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/41080))

- `receiver/k8sobjects`: Add `kube_api_qps` and `kube_api_burst` config
options to control Kubernetes API request rate limits and prevent
client-side throttling when watching or polling many resources
([#&#8203;44484](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/44484))
The same fields are also available in `receiver/k8sevents` via the
shared `internal/k8sconfig` package.
Default values match the client-go defaults: `kube_api_qps=5`,
`kube_api_burst=10`.

- `receiver/receiver_creator`: add support for profiling signal for
receiver creator
([#&#8203;46930](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46930))

- `receiver/splunkenterprise`: Add custom search support to the Splunk
Enterprise receiver
([#&#8203;47124](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47124))

- `receiver/windows_event_log`: Add `discover_domain_controllers` config
flag to automatically discover and collect Security events from Active
Directory domain controllers based on feature gate
domainControllers.autodiscovery.
([#&#8203;44156](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/44156),
[#&#8203;44423](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/44423))
When `discover_domain_controllers` in config and
`domainControllers.autodiscovery` feature gate is set `true` , the
receiver queries LDAP Root DSE to
discover the root domain path, enumerates all domain controllers in the
Active Directory
  forest, and creates receiver for each domain controller.
Falls back to the currently joined DC if the root DN cannot be
determined.

##### 🧰 Bug fixes 🧰

- `exporter/awsemf`: Fix data races in getPusher and logPusher that
cause nil pointer panics and out-of-order log events
([#&#8203;47126](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47126))

- `exporter/awss3`: Use AWS SDK S3 types for StorageClass and ACL
validation instead of hardcoded lists
([#&#8203;46825](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46825))
The hardcoded list of valid S3 storage classes was missing GLACIER\_IR,
REDUCED\_REDUNDANCY, and EXPRESS\_ONEZONE.
Replaced both StorageClass and ACL hardcoded validation maps with values
from the AWS SDK s3types package
  to prevent this from going out of date again in the future.

- `exporter/datadog`: Fix use-after-free bug causing corrupted quantile
sketches when exporting ExponentialHistogram metrics with multiple
attribute sets
([#&#8203;47338](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47338))
When multiple ExponentialHistogram data points were converted to Datadog
sketches in a single
export call, the underlying sync.Pool backing array was shared across
conversions. A second
conversion would reuse and overwrite the first sketch's bin memory,
producing non-monotonic
  bin keys and inflated percentile values. This is fixed by upgrading
github.com/DataDog/datadog-agent/pkg/util/quantile to commit
[`bfa4eff`](https://github.com/open-telemetry/opentelemetry-collector-contrib/commit/bfa4eff6c991),
which deep-copies
  the bin slice before returning the sketch.

- `exporter/elasticsearch`: Fix malformed JSON creation for numbers in
exponential notation.
([#&#8203;47363](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47363))
When rendering numbers in exponential notation the exporter JSON
implementation always added a radix point (e.g. 1.0 not 1).
The implementation had a buffer corruption bug where it was overriding
part of the buffer leading to malformed and invalid JSON numbers being
created.

- `exporter/prometheus`: Fix Prometheus exporter default HTTP server
behavior where keep-alives and server timeouts were not using the
intended defaults.
([#&#8203;47173](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47173))
This fixes default behavior where keep\_alives\_enabled was effectively
false unless explicitly configured.

- `exporter/prometheus`: Fix unbounded memory growth when metrics are no
longer being scraped.
([#&#8203;41123](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/41123))
Expired metric families now get cleaned up even when no Prometheus
scraper is actively collecting,
  preventing memory from growing indefinitely.

- `extension/aws_logs_encoding`: Add `source_region` field (27th field)
to S3 server access log parser and skip unknown future fields
gracefully.
([#&#8203;47149](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47149))
AWS added a `source_region` field to the S3 server access log format.
The parser
previously returned an error ("values in log line exceed the number of
available fields")
  when it encountered log lines with more fields than defined. This fix:
- Adds `source_region` as field index 26 mapped to
`aws.s3.source_region`.
- Makes the parser skip any fields beyond the known schema instead of
failing,
providing forward compatibility with future AWS S3 access log additions.

- `pkg/stanza`: Fix severity parser to work with JSON parser with
`parse_ints: true`
([#&#8203;47209](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47209))

- `receiver/awss3`: Fix infinite loop and metric skew caused by SQS
failing to parse and delete "s3:TestEvent" messages
([#&#8203;47045](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47045))

- `receiver/vcenter`: Fixes a nil pointer dereference panic in
recordVMStats when scraping metrics from VMs with missing performance
counters
([#&#8203;46977](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46977))

<!-- previous-version -->

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

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

##### 🛑 Breaking changes 🛑

- `exporter/elasticsearch`: Remove `host.os.type` encoding in ECS mode
([#&#8203;46900](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46900))
Use
[processor/elasticapmprocessor](https://github.com/elastic/opentelemetry-collector-components/tree/main/processor/elasticapmprocessor)
v0.36.2 or later for `host.os.type` enrichment
- `receiver/prometheus`: Remove the deprecated
`report_extra_scrape_metrics` receiver configuration option and obsolete
extra scrape metric feature gates.
([#&#8203;44181](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/44181))
`report_extra_scrape_metrics` is no longer accepted in
`prometheusreceiver` configuration.
Control extra scrape metrics through the
PromConfig.ScrapeConfigs.ExtraScrapeMetrics setting instead.

##### 🚩 Deprecations 🚩

- `receiver/awsfirehose`: Deprecate built-in unmarshalers (cwlogs,
cwmetrics, otlp\_v1) in favor of encoding extensions.
([#&#8203;45830](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/45830))
Use the aws\_logs\_encoding extension (format: cloudwatch) instead of
cwlogs,
and the awscloudwatchmetricstreams\_encoding extension instead of
cwmetrics (format: json)
  or otlp\_v1 (format: opentelemetry1.0).

- `receiver/file_log`: Rename `filelog` receiver to `file_log` with
deprecated alias `filelog`
([#&#8203;45339](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/45339))

- `receiver/kafka`: Deprecate the built-in `azure_resource_logs`
encoding in favour of `azureencodingextension`.
([#&#8203;46267](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46267))
The built-in `azure_resource_logs` encoding does not support all
timestamp formats
emitted by Azure services (e.g. US-format timestamps from Azure
Functions).
Users should migrate to the
[`azureencodingextension`](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/extension/encoding/azureencodingextension),
which provides full control over time formats and is actively
maintained.

##### 💡 Enhancements 💡

- `cmd/opampsupervisor`: Add configuration validation before applying
remote config to prevent collector downtime
([#&#8203;41068](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/41068))
Validates collector configurations before applying them, preventing
downtime from invalid remote configs.
Disabled by default. Enable via `agent.validate_config: true`. May
produce false positives when resources
  like ports are temporarily unavailable during validation.

- `connector/datadog`: Document datadog connector is not supported in
aix environments
([#&#8203;47010](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47010))
Explicitly opt out of host metadata computation in datadog components to
support AIX compilation target.

- `connector/signal_to_metrics`: Add `keys_expression` support in
`include_resource_attributes` and `attributes` for dynamic attribute key
resolution at runtime
([#&#8203;46884](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46884))
The `keys_expression` field allows specifying an OTTL value expression
that resolves to a list
of attribute keys at runtime. This enables dynamic resource attribute
filtering based on runtime
data such as client metadata. Exactly one of `key` or `keys_expression`
must be set per entry.

- `connector/signal_to_metrics`: Reduce per-signal allocations in the
hot path by replacing attribute map allocation with a pooled hash-based
ID check, and caching filtered resource attributes per metric definition
within each resource batch.
([#&#8203;47197](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47197))

- `connector/signal_to_metrics`: Pre-compute prefixed collector key to
avoid a string allocation on every signal processed.
([#&#8203;47183](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47183))
Pre-computing the collector key avoids a string allocation on every
signal processed.

- `exporter/datadog`: Document datadog exporter is not supported in aix
environments
([#&#8203;47010](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47010))
Explicitly opt out of host metadata computation in datadog components to
support AIX compilation target.

- `exporter/elasticsearch`: Add `histogram:raw` mapping hint to bypass
midpoint approximation for histogram metrics
([#&#8203;47150](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47150))

- `exporter/elasticsearch`: Cache metric attribute set per bulk session
instead of recomputing it for every document
([#&#8203;47170](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47170))
`syncBulkIndexerSession.Add()` was calling
`getAttributesFromMetadataKeys` +
`attribute.NewSet` + `metric.WithAttributeSet` on every document in the
hot path. The attribute set is
derived from the request context metadata, which is constant for the
lifetime of a session, so it is
now computed once in `StartSession` and reused across all `Add()` calls
in that session.

- `exporter/elasticsearch`: populate \_doc\_count field in ECS mapping
mode
([#&#8203;46936](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46936))
\_doc\_count is a special metadata field in Elasticsearch used when a
document represents pre-aggregated data (like histograms or aggregate
metrics).
Currently, elasticsearchexporter only populates this field for otel
mapping mode (native otel field structure). This change
adds support for ECS mapping mode (native ECS field structure) so that
we have consistent behavior for both mapping modes.

- `exporter/elasticsearch`: Encode `require_data_stream` in
Elasticsearch bulk action metadata instead of the bulk request query
string.
([#&#8203;46970](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46970))
This preserves existing endpoint query parameters while moving
`require_data_stream`
to the per-document action line expected by newer bulk workflows.
Benchmarks show
  a stable \~27 bytes/item NDJSON payload overhead before compression.

- `exporter/elasticsearch`: Improve performance of Elasticsearch
exporter document serialisation
([#&#8203;47171](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47171))

- `exporter/elasticsearch`: Add metric for docs retried because of
request errors
([#&#8203;46215](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46215))

- `exporter/kafka`: Cache OTel metric attribute sets in OnBrokerE2E hook
to reduce per-export allocations
([#&#8203;47186](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47186))
`OnBrokerE2E` previously rebuilt `attribute.NewSet` +
`metric.WithAttributeSet` on every
call. The set of distinct (nodeID, host, outcome) combinations is
bounded by
2 × number-of-brokers, so the computed `MeasurementOption` is now cached
per key.

- `exporter/pulsar`: This component does not support aix/ppc64.
([#&#8203;47010](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47010))
  Make the exporter explicitly panic if used in aix/ppc64 environments.

- `extension/datadog`: Document datadog extension is not supported in
aix environments
([#&#8203;47010](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47010))
Explicitly opt out of host metadata computation in datadog components to
support AIX compilation target.

- `extension/db_storage`: Make dbstorage work in AIX environments
([#&#8203;47010](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47010))
sqlite support is offered via modernC, which doesn't support the AIX
ppc64 compilation target.
We carve out support for sqlite in AIX environments so contrib can
compile for this compilation target.

- `extension/health_check`: Add component event attributes to serialized
output.
([#&#8203;43606](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/43606))
When `http.status.include_attributes` is enabled in the healthcheckv2
extension (with `use_v2: true`),
users will see additional attributes in the status output. These
attributes provide more
context about component states, including details like error messages
and affected components.
  For example:
  ```json
  {
    "healthy": false,
    "status": "error",
    "attributes": {
      "error_msg": "not enough permissions to read cpu data",
      "scrapers": ["cpu", "memory", "network"]
    }
  }
  ```

- `extension/healthcheckv2`: Add component event attributes to
serialized output.
([#&#8203;43606](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/43606))
When `http.status.include_attributes` is enabled in the healthcheckv2
extension (with `use_v2: true`),
users will see additional attributes in the status output. These
attributes provide more
context about component states, including details like error messages
and affected components.
  For example:
  ```json
  {
    "healthy": false,
    "status": "error",
    "attributes": {
      "error_msg": "not enough permissions to read cpu data",
      "scrapers": ["cpu", "memory", "network"]
    }
  }
  ```

- `extension/sigv4auth`: Add support for External IDs when assuming
roles in cross-account authentication scenarios
([#&#8203;44930](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/44930))
Added external\_id field to the AssumeRole configuration, allowing users
to specify
an External ID when assuming roles for enhanced cross-account security.

- `internal/datadog`: Do not compute host metadata in AIX environments
([#&#8203;47010](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47010))
Explicitly opt out of host metadata computation in datadog components to
support AIX compilation target.

- `pkg/stanza`: Ensure router operator does not split batches of entries
([#&#8203;42393](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/42393))

- `pkg/stanza`: Parse all Windows Event XML fields into the log body,
including RenderingInfo (with Culture, Channel, Provider, Task, Opcode,
Keywords, Message), UserData, ProcessingErrorData, DebugData, and
BinaryEventData.
([#&#8203;46943](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46943))
Previously, RenderingInfo was only used to derive the top-level
level/task/opcode/keywords/message
fields. It is now also emitted as a top-level `rendering_info` key
containing all fields including
`culture`, `channel`, and `provider`. UserData (an alternative to
EventData used by some providers)
is now parsed into a `user_data` key. Rare schema elements
ProcessingErrorData, DebugData, and
  BinaryEventData are also captured when present.

- `processor/resourcedetection`: Added IBM Cloud VPC resource detector
to the Resource Detection Processor
([#&#8203;46874](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46874))

- `processor/resourcedetection`: Added IBM Cloud Classic resource
detector to the Resource Detection Processor
([#&#8203;46874](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46874))

- `processor/tail_sampling`: Add `sampling_strategy` config with
`trace-complete` and `span-ingest` modes for tail sampling decision
timing and evaluation behavior.
([#&#8203;46600](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46600))

- `receiver/awslambda`: Enrich context with AWS Lambda receiver metadata
for S3 logs
([#&#8203;47046](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47046))

- `receiver/azure_event_hub`: Add support for Azure Event Hubs
distributed processing. This allows the receiver to automatically
coordinate partition ownership and checkpointing across multiple
collector instances via Azure Blob Storage.
([#&#8203;46595](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46595))

- `receiver/docker_stats`: Add TLS configuration support for connecting
to the Docker daemon over HTTPS with client and server certificates.
([#&#8203;33557](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/33557))
A new optional `tls` configuration block is available in `docker_stats`
receiver config (and the
shared `internal/docker` package). When omitted the connection remains
insecure (plain HTTP or
Unix socket), preserving existing behavior. When provided it supports
the standard
`configtls.ClientConfig` fields: `ca_file`, `cert_file`, `key_file`,
`insecure_skip_verify`,
  `min_version`, and `max_version`.
A warning is now emitted when a plain `tcp://` or `http://` endpoint is
used without TLS,
reflecting Docker's deprecation of unauthenticated TCP connections since
Docker v26.0
(see
<https://docs.docker.com/engine/deprecated/#unauthenticated-tcp-connections>).

- `receiver/docker_stats`: Add "stream\_stats" config option to maintain
a persistent Docker stats stream per container instead of opening a new
connection on every scrape cycle.
([#&#8203;46493](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46493))
When `stream_stats: true` is set, each container maintains a persistent
open Docker stats
stream instead of opening and closing a new connection on every scrape
cycle. The scraper
  reads from the cached latest value, which reduces connection overhead.

- `receiver/expvar`: Enable the re-aggregation feature for the expvar
receiver
([#&#8203;45396](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/45396))

- `receiver/file_log`: Add `max_log_size_behavior` config option to
control oversized log entry behavior
([#&#8203;44371](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/44371))
The new `max_log_size_behavior` setting controls what happens when a log
entry exceeds `max_log_size`.
- `split` (default): Splits oversized log entries into multiple log
entries. This is the existing behavior.
- `truncate`: Truncates oversized log entries and drops the remainder,
emitting only a single truncated log entry.

- `receiver/hostmetrics`: Enable re-aggregation for system scraper
([#&#8203;46624](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46624))
  Enabled the reaggregation feature gate for the system scraper.

- `receiver/hostmetrics`: Enable re-aggregation for process scraper
([#&#8203;46623](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46623))
Enabled the reaggregation feature gate for the process scraper and set
all metric attributes (context\_switch\_type, direction,
paging\_fault\_type, state) with requirement\_level recommended.

- `receiver/mongodb`: Enable re-aggregation feature for mongodb receiver
metrics
([#&#8203;46366](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46366))

- `receiver/mongodb`: Add `scheme` configuration option to support
`mongodb+srv` connections
([#&#8203;36011](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/36011))
  The new `scheme` field allows connecting to MongoDB clusters using
  SRV DNS records (mongodb+srv protocol). Defaults to "mongodb" for
  backward compatibility.

- `receiver/mysql`: Add `mysql.query_plan.hash` attribute to top query
log records, enabling users to correlate top queries with their
corresponding execution plans.
([#&#8203;46626](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46626))

- `receiver/mysql`: Added `mysql.session.status` and `mysql.session.id`
attributes to query samples. `mysql.session.status` indicates the
session status (`waiting`, `running`, or `other`) at the time of the
sample. `mysql.session.id` provides the unique session identifier. Both
attributes provide additional context for understanding query
performance and behavior.
([#&#8203;135350](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/135350))

- `receiver/mysql`: Add and tune obfuscation of sensitive properties in
both V1 and V2 JSON query plans.
([#&#8203;46629](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46629),
[#&#8203;46587](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46587))
Configure and test obfuscation for V1 and V2 plans, including tests of
queries retrieved from the performance schema that are truncated and
cannot be obfuscated.
The importance of obfuscation can be very context dependent; sensitive
PII, banking, and authorization data may reside in the same database as
less sensitive data, and it can be vital to ensure that what is expected
to be obfuscated is always obfuscated. Significant additional testing
has been added around query plan obfuscation to ensure that this is
enforced and to provide assurance and reference to users about what
specifically is obfuscated and what is not.

- `receiver/mysql`: Propagates W3C TraceContext from MySQL session
variables to query sample log records. When a MySQL session sets
`@traceparent`, the receiver extracts the TraceID and SpanID and stamps
them onto the corresponding `db.server.query_sample` log record,
enabling correlation between application traces and query samples.
([#&#8203;46631](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46631))
Only samples from sessions where `@traceparent` is set will have
non-zero `traceId` and `spanId` fields on the log record.

- `receiver/prometheus`: Add support for reading instrumentation scope
attributes from `otel_scope_<attribute-name>` labels while
feature-gating deprecation of `otel_scope_info`.
([#&#8203;41502](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/41502))
Scope attributes are always extracted from `otel_scope_<attribute-name>`
labels on metrics.
The `receiver.prometheusreceiver.IgnoreScopeInfoMetric` feature gate
(alpha, disabled by default)
controls only whether the legacy `otel_scope_info` metric is ignored for
scope attribute extraction.
When the gate is disabled, both mechanisms coexist to support migration.
See the specification change for motivation:
[open-telemetry/opentelemetry-specification#4505](https://github.com/open-telemetry/opentelemetry-specification/pull/4505)

- `receiver/pulsar`: This component does not support aix/ppc64.
([#&#8203;47010](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47010))
  Make the receiver explicitly panic if used in aix/ppc64 environments.

- `receiver/skywalking`: Add feature gate
`translator.skywalking.useStableSemconv` to update semantic conventions
from v1.18.0 to v1.38.0
([#&#8203;44796](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/44796))
A feature gate `translator.skywalking.useStableSemconv` has been added
to control the migration.
The gate is disabled by default (Alpha stage), so existing behavior is
preserved.

- `receiver/sqlquery`: Add clickhouse support to sqlquery
([#&#8203;47116](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47116))

- `receiver/sqlquery`: Add `row_condition` to metric configuration for
filtering result rows by column value
([#&#8203;45862](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/45862))
Enables extracting individual metrics from pivot-style result sets where
each row
represents a different metric (e.g. pgbouncer's `SHOW LISTS` command).
When
`row_condition` is configured on a metric, only rows where the specified
column
equals the specified value are used; all other rows are silently
skipped.

- `receiver/sqlserver`: Enable dynamic metric reaggregation in the SQL
Server receiver.
([#&#8203;46379](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46379))

- `receiver/yang_grpc`: Support collecting any metric by browsing the
whole metrics tree
([#&#8203;47054](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47054))

##### 🧰 Bug fixes 🧰

- `exporter/kafka`: Fixes the validation for `topic_from_metadata_key`
to use partition keys.
([#&#8203;46994](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46994))

- `exporter/kafka`: Fix topic routing for multi-resource batches when
`topic_from_attribute` is set without resource-level partitioning
([#&#8203;46872](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46872))
  Previously, when a batch contained multiple resources with different
  topic attribute values, all data was silently sent to the topic of the
first resource. Each resource is now correctly routed to its own topic.

- `exporter/splunk_hec`: Fix timestamp precision in Splunk HEC exporter
to preserve microseconds instead of truncating to milliseconds.
([#&#8203;47175](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47175))
Timestamps were rounded to milliseconds before sending to Splunk HEC.
The rounding has been removed, giving microsecond precision in the HEC
`time` field.

- `extension/bearertokenauth`: Redact bearer token from authentication
error messages to prevent credential exposure in logs.
([#&#8203;46200](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46200))
Previously, when a client presented an invalid bearer token, the full
token value was
included in the error message returned by the Authenticate method. This
error could be
propagated to log output, exposing sensitive credentials. The error
message now omits
  the token value entirely.

- `internal/aws`: Respect NO\_PROXY/no\_proxy environment variables when
using env-based proxy configuration in awsutil
([#&#8203;46892](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46892))
When no explicit proxy\_address was configured, the HTTP client manually
read HTTPS\_PROXY
and used http.ProxyURL which ignores NO\_PROXY. Now delegates to
http.ProxyFromEnvironment
  which correctly handles all proxy environment variables.

- `processor/deltatorate`: Append "/s" to the unit of output datapoints
to reflect the per-second rate.
([#&#8203;46841](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46841))

- `processor/filter`: Fix validation of include and exclude severity
configurations so they run independently of LogConditions.
([#&#8203;46883](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46883))

- `receiver/datadog`: Propagate Datadog trace sampling priority to all
spans translated from a trace chunk.
([#&#8203;45402](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/45402))

- `receiver/file_log`: Fix data corruption after file compression
([#&#8203;46105](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46105))
After a log file is compressed (e.g. test.log → test.log.gz), the
receiver configured with `compression: auto` will now correctly
decompress the content and continue reading from where the plaintext
file left off.

- `receiver/file_log`: Fixes bug where File Log receiver did not read
the last line of gzip compressed files.
([#&#8203;45572](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/45572))

- `receiver/hostmetrics`: Align HugePages metric instrument types with
the semantic conventions by emitting page\_size, reserved, and surplus
as non-monotonic sums instead of gauges.
([#&#8203;42650](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/42650))

- `receiver/hostmetrics`: Handle nil PageFaultsStat in process scraper
to prevent panic on zombie processes.
([#&#8203;47095](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47095))

- `receiver/journald`: Fix emitting of historical entries on startup
([#&#8203;46556](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46556))
When start\_at is "end" (the default), pass --lines=0 to journalctl to
suppress
  the 10 historical entries it emits by default in follow mode.

- `receiver/k8s_events`: Exclude DELETED watch events to prevent
duplicate event ingestion.
([#&#8203;47035](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47035))

- `receiver/mysql`: Remove deprecated `information_schema.processlist`
JOIN from query samples template; use `thread.processlist_host` instead.
([#&#8203;47041](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47041))

- `receiver/oracledb`: Fix oracledbreceiver aborting entire scrape when
a SQL query text fails to obfuscate (e.g. due to Oracle truncating a
CLOB mid-string-literal). The affected entry is now skipped with a
warning log and the rest of the scrape continues normally.
([#&#8203;47151](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47151))

- `receiver/otelarrow`: Remove assumed positions of otel arrow root
payload types
([#&#8203;46878](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46878))

- `receiver/otelarrow`: Fix OTLP fallback handlers returning
codes.Unknown instead of codes.Unavailable for pipeline errors, causing
upstream exporters to permanently drop data instead of retrying.
([#&#8203;46182](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46182))

- `receiver/pprof`: Fixes pprofreceiver file\_scrapper appending
resource profiles instead of merging them.
([#&#8203;46991](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46991))

- `receiver/prometheus_remote_write`: Count target\_info samples in PRW
response stats
([#&#8203;47108](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47108))

<!-- previous-version -->

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

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

##### 🛑 Breaking changes 🛑

- `all`: Removes the k8slog receiver after being unmaintained for 3
months
([#&#8203;46544](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46544))

- `all`: Remove deprecated SAPM exporter
([#&#8203;46555](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46555))

- `all`: Remove the datadogsemantics processor.
([#&#8203;46893](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46893))
If you need help, please contact Datadog support:
<https://www.datadoghq.com/support>.

- `exporter/google_cloud_storage`: `reuse_if_exists` behavior changed:
now checks bucket existence instead of attempting creation
([#&#8203;45971](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/45971))
Previously, `reuse_if_exists=true` would attempt bucket creation and
fall back to reusing on conflict.
Now, `reuse_if_exists=true` checks if bucket exists (via
storage.buckets.get) and uses it, failing if it doesn't exist.
Set to true when the service account lacks project-level bucket creation
permissions but has bucket-level permissions.
`reuse_if_exists=false` still attempts to create the bucket and fails if
it already exists.

- `exporter/kafka`: Remove deprecated top-level `topic` and `encoding`
configuration fields
([#&#8203;46916](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46916))
The top-level `topic` and `encoding` fields were deprecated in v0.124.0.
  Use the per-signal fields instead: `logs::topic`, `metrics::topic`,
  `traces::topic`, `profiles::topic`, and the corresponding `encoding`
  fields under each signal section.

- `exporter/kafka`: Remove kafka-local batching partitioner wiring and
require explicit `sending_queue::batch::partition::metadata_keys`
configuration as a superset of `include_metadata_keys` when batching is
enabled.
([#&#8203;46757](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46757))

- `pkg/ottl`: `truncate_all` function now supports UTF-8 safe truncation
([#&#8203;36713](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/36713))
The default `truncate_all` behavior has changed. Truncation now respects
UTF-8 character boundaries by default (new optional parameter
`utf8_safe`, default: `true`), so results stay valid UTF-8 and may be
slightly shorter than the limit.
To keep the previous byte-level truncation behavior (e.g. for non-UTF-8
data or to avoid any behavior change), set `utf8_safe` to `false` in all
`truncate_all` usages.

- `receiver/awsecscontainermetrics`: Add ephemeral storage metrics and
fix unit strings from Megabytes to MiB
([#&#8203;46414](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46414))
Adds two new task-level gauge metrics:
`ecs.task.ephemeral_storage.utilized` and
`ecs.task.ephemeral_storage.reserved` (in MiB).
These metrics are available on AWS Fargate Linux platform version 1.4.0+
and represent the shared ephemeral storage for the entire task.

**Breaking change:** The unit string for `ecs.task.memory.utilized`,
`ecs.task.memory.reserved`,
`container.memory.utilized`, and `container.memory.reserved` has been
corrected from `"Megabytes"` to `"MiB"`.
The underlying values were already in MiB (computed via division by
1024\*1024), but the unit label was incorrect.
Users relying on the exact unit string (e.g. in metric filters or
dashboards) will need to update accordingly.

- `receiver/mysql`: Set the default collection of query\_sample to false
([#&#8203;46902](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46902))

- `receiver/postgresql`: Disable default collection of top\_query and
query\_sample events.
([#&#8203;46843](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46843))
This change is breaking because it disables the default collection of
top\_query and query\_sample events. These events will need to be
enabled manually if desired.

- `receiver/redfish`: `system.host_name` and `base_url` resource
attribute has been changed to `host.name` and `url.full` respectively.

([#&#8203;46236](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46236))

- `receiver/windowseventlog`: Change event\_data from an array of
single-key maps to a flat map by default, making fields directly
accessible via OTTL. The previous format is available by setting
`event_data_format: array`.
([#&#8203;42565](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/42565),
[#&#8203;32952](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/32952))
Named <Data> elements become direct keys (e.g.,
body\["event\_data"]\["ProcessId"]).
  Anonymous <Data> elements use numbered keys: param1, param2, etc.
To preserve the previous array format, set event\_data\_format: array in
the receiver configuration.

##### 🚩 Deprecations 🚩

- `exporter/azure_blob`: Introduce new snake case compliant name
`azure_blob`
([#&#8203;46722](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46722))
- `exporter/google_cloud_storage`: Introduce new snake case compliant
name `google_cloud_storage`
([#&#8203;46733](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46733))
- `extension/aws_logs_encoding`: Introduce new snake case compliant name
`aws_logs_encoding`
([#&#8203;46776](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46776))
- `extension/azure_auth`: Introduce new snake case compliant name
`azure_auth`
([#&#8203;46775](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46775))
- `extension/cgroup_runtime`: Introduce new snake case compliant name
`cgroup_runtime`
([#&#8203;46773](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46773))
- `extension/google_cloud_logentry_encoding`: Introduce new snake case
compliant name `google_cloud_logentry_encoding`
([#&#8203;46778](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46778))
- `processor/metric_start_time`: Introduce new snake case compliant name
`metric_start_time`
([#&#8203;46777](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46777))
- `receiver/azure_blob`: Introduce new snake case compliant name
`azure_blob`
([#&#8203;46721](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46721))
- `receiver/azure_monitor`: Introduce new snake case compliant name
`azure_monitor`
([#&#8203;46730](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46730))
- `receiver/cisco_os`: Introduce new snake case compliant name
`cisco_os`
([#&#8203;46948](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46948))
- `receiver/macos_unified_logging`: Introduce new snake case compliant
name `macos_unified_logging`
([#&#8203;46729](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46729))
- `receiver/prometheus_remote_write`: Introduce new snake case compliant
name `prometheus_remote_write`
([#&#8203;46726](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46726))
- `receiver/yang_grpc`: Introduce new snake case compliant name
`yang_grpc`
([#&#8203;46723](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46723))

##### 🚀 New components 🚀

- `receiver/azure_functions`: Introduce new component to receive logs
from Azure Functions
([#&#8203;43507](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/43507))
This change includes only overall structure, readme and configuration
for the new component.

##### 💡 Enhance

</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-contrib).

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

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
AndrewCharlesHay pushed a commit to AndrewCharlesHay/opentelemetry-collector-contrib that referenced this pull request Apr 23, 2026
…ib/extension/internal/credentialsfile to v0.150.0 (open-telemetry#47636)

> ℹ️ **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/) |
|---|---|---|---|
|
[github.com/open-telemetry/opentelemetry-collector-contrib/extension/internal/credentialsfile](https://github.com/open-telemetry/opentelemetry-collector-contrib)
| `v0.146.2-0.20260219223409-66996adfaaf7` → `v0.150.0` |
![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fopen-telemetry%2fopentelemetry-collector-contrib%2fextension%2finternal%2fcredentialsfile/v0.150.0?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fopen-telemetry%2fopentelemetry-collector-contrib%2fextension%2finternal%2fcredentialsfile/v0.146.2-0.20260219223409-66996adfaaf7/v0.150.0?slim=true)
|

---

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

---

### Release Notes

<details>
<summary>open-telemetry/opentelemetry-collector-contrib
(github.com/open-telemetry/opentelemetry-collector-contrib/extension/internal/credentialsfile)</summary>

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

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

##### 🛑 Breaking changes 🛑

- `pkg/ottl`: Return errors when OTTL context accessors receive values
of the wrong type (part 2)
([#&#8203;40198](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/40198))
Setters in OTTL contexts now validate that values are of the expected
type and return
descriptive errors when type mismatches occur. This is the continuation
of work done in

[#&#8203;43505](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/43505),
addressing remaining contexts: datapoint, profile, profilesample,
resource, span,
  and spanevent.

  Changes include:

- Slice setters (explicit\_bounds, bucket\_counts,
positive.bucket\_counts, negative.bucket\_counts)
now use SetCommonTypedSliceValues/SetCommonIntSliceValues for better
type handling.
- SetMap now returns an error for invalid value types instead of
silently ignoring them.

**Note:** Users may see new errors from OTTL statements that were
previously silently failing
due to type mismatches. These errors indicate pre-existing issues in
OTTL configurations that
  were not being applied as expected.

- `processor/resourcedetection`: Remove feature gate
processor.resourcedetection.propagateerrors
([#&#8203;45853](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/45853))

- `processor/transform`: Remove the
`processor.transform.ConvertBetweenSumAndGaugeMetricContext` feature
gate.
([#&#8203;47358](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47358))
This feature gate has been stable for over a year and is no longer used
in any code paths.

- `receiver/k8s_cluster`: Kubernetes resource labels in entity events
are now prefixed per OTel semantic conventions.
([#&#8203;47491](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47491))
Labels on Kubernetes resources emitted as entity event attributes are
now prefixed with
`k8s.<resource>.label.` to align with OTel semantic conventions (e.g.
`k8s.pod.label.<key>`,
  `k8s.node.label.<key>`, `k8s.deployment.label.<key>`, etc.).
  Previously, label keys were emitted verbatim without any prefix.
Users consuming entity event attributes by label key will need to update
their configurations.

- `receiver/kubeletstats`: Disable deprecated resource attributes by
default
([#&#8203;47184](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47184))
The following resource attributes are deprecated and will now be
disabled by default:
`aws.volume.id`, `fs.type`, `gce.pd.name`, `glusterfs.endpoints.name`,
`glusterfs.path`, and `partition`.
  All of these attributes will be removed in a future release.

##### 🚩 Deprecations 🚩

- `receiver/http_check`: Rename `httpcheck` receiver to `http_check`
with deprecated alias `httpcheck`
([#&#8203;45339](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/45339))
- `receiver/named_pipe`: Rename `namedpipe` receiver to `named_pipe`
with deprecated alias `namedpipe`.
([#&#8203;45339](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/45339))
- `receiver/tcp_log`: Rename `tcplog` receiver to `tcp_log` with
deprecated alias `tcplog`
([#&#8203;45339](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/45339))
- `receiver/tls_check`: Rename `tlscheck` receiver to `tls_check` with
deprecated alias `tlscheck`
([#&#8203;45339](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/45339))
- `receiver/udp_log`: Rename `udplog` receiver to `udp_log` with
deprecated alias `udplog`
([#&#8203;45339](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/45339))
- `receiver/windows_event_log`: Rename `windowseventlog` receiver to
`windows_event_log` with deprecated alias `windowseventlog`
([#&#8203;45339](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/45339))

##### 🚀 New components 🚀

- `exporter/google_secops`: Add Google SecOps exporter for sending logs
to the Google SecOps (Chronicle) Ingestion APIs.
([#&#8203;46148](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46148))
- `processor/spanpruning`: Add span pruning processor for aggregating
repetitive leaf spans in trace data.
([#&#8203;45654](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/45654))
- `receiver/osquery`: Implement osquery query scraping
([#&#8203;30375](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/30375))

##### 💡 Enhancements 💡

- `exporter/datadog`: Promote
`exporter.datadogexporter.DisableAllMetricRemapping` feature gate to
beta.
([#&#8203;47212](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47212))
- All metrics remappings are now handled by the Datadog backend and this
should be a transparent change. If you run into any issues, please
disable the feature gate by passing
`--feature-gates=-exporter.datadogexporter.DisableAllMetricRemapping`
and reach out to Datadog support (<https://www.datadoghq.com/support/>).

- `exporter/elasticsearch`: Add suppress\_conflict\_errors config to
optionally silence document level 409 version conflict logs
([#&#8203;47248](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47248))

- `exporter/kafka`: Add `record_headers` configuration option to set
static headers on outgoing records
([#&#8203;47193](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47193))

- `exporter/kafka`: Add support for partitioning kafka records
([#&#8203;46931](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46931))
Add support for RoundRobin and LeastBackup partitioning strategies, as
well as custom partitioners
provided by RecordPartitionerExtension implementations. Users can
implement their own partitioning logic
and plug it into the kafka exporter via the RecordPartitionerExtension
interface.

- `exporter/prometheus`: Exemplar support for exponential histograms in
Prometheus exporter
([#&#8203;47159](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47159))

- `exporter/prometheus`: prevent panic on histogram with empty
BucketCounts.
([#&#8203;47351](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47351))
Guard BucketCounts access with a length check in convertDoubleHistogram
to avoid index-out-of-range panic when a histogram has explicit bounds
but no corresponding bucket counts.

- `exporter/signalfx`: Add `dimension_client::strip_k8s_label_prefix`
option to strip `k8s.<resource>.label.` prefix from dimension property
updates.
([#&#8203;47491](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47491))
The k8s cluster receiver now emits Kubernetes resource labels in entity
events with the
`k8s.<resource>.label.` prefix per OTel semantic conventions (e.g.
`k8s.pod.label.app`).
When `strip_k8s_label_prefix: true` (the default), the SignalFx exporter
strips this prefix
when forwarding labels as dimension properties, preserving the existing
SignalFx behavior (e.g. `app`).
Set `strip_k8s_label_prefix: false` to disable stripping and receive the
full prefixed keys.

- `exporter/sumologic`: Modify default retry settings to prevent
dropping data on transient backend unavailability
([#&#8203;47503](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47503))

- `extension/datadog`: Add `gateway_service` and `gateway_destination`
config fields to support gateway topology view in Fleet Automation.
([#&#8203;47471](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47471))
Gateway collectors set `gateway_service` to the k8s Service fronting
them.
Agent/daemonset collectors set `gateway_destination` to the k8s Service
they forward telemetry to.
Both fields are optional and omitted from the metadata payload when
empty.

- `extension/health_check`: Migrate
extension.healthcheck.useComponentStatus feature gate registration from
manual code to metadata.yaml for mdatagen code generation
([#&#8203;46116](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46116))

- `extension/sumologic`: Adding support to sumologic extension for auto
discovery of services in windows
([#&#8203;47349](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47349))

- `pkg/ottl`: Add Coalesce converter that returns the first non-nil
value from a list of arguments.
([#&#8203;46847](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46847))
The Coalesce converter accepts a list of values and returns the first
one that is not nil.
This simplifies common patterns where a canonical attribute must be
resolved from multiple possible sources.
Example: `set(attributes["user"], Coalesce([attributes["user.id"],
attributes["enduser.id"], "unknown"]))`

- `pkg/stanza`: Optimizing the performance of Windows Event log
unmarshalling when raw = true
([#&#8203;47164](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47164))

- `pkg/stanza`: Add new scrape model for Windows event logs using an
event-driven subscription instead of polling
([#&#8203;47091](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47091))

- `pkg/stanza`: Add `on_truncate` option to fileconsumer to control
behavior when a file's stored offset exceeds its current size.
([#&#8203;43693](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/43693))

- `processor/filter`: Add feature gate
`processor.filter.defaultErrorModeIgnore` to change default error\_mode
to ignore
([#&#8203;47232](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47232))

- `processor/interval`: Flush remaining buffered metrics on shutdown to
prevent data loss during restarts and rollouts.
([#&#8203;47238](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47238))
Previously, the interval processor would silently drop any metrics
accumulated
in its buffer when receiving a shutdown signal. Now it flushes the
buffer to
the next consumer before exiting, consistent with the batch processor
behavior.

- `processor/lookup`: Add DNS lookup source and LRU caching
([#&#8203;46114](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46114))
Adds a DNS source that performs reverse DNS lookups (PTR records) to
resolve IP addresses to hostnames.
Implements a full LRU cache with size-based eviction, TTL expiration,
and negative caching.
  The DNS source has caching enabled by default.

- `processor/spanpruning`: Add full implementation of the span pruning
processor.
([#&#8203;45654](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/45654))

- `processor/tail_sampling`: Add gated tail storage extension support to
tailsampling processor via new tail\_storage config
([#&#8203;45250](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/45250))
Introduces a new tail storage interface with in-memory default behavior
and allows extension-backed storage when
the processor.tailsamplingprocessor.tailstorageextension feature gate is
enabled.

- `processor/transform`: Add feature gate
`processor.transform.defaultErrorModeIgnore` to change default
error\_mode to ignore
([#&#8203;47231](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47231))

- `processor/transform`: Add support for semantic conventions 1.38.0,
1.39.0, and 1.40.0 in the `set_semconv_span_name` function.
([#&#8203;45911](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/45911))
The `set_semconv_span_name` function now recognizes semantic conventions
1.38.0, 1.39.0, and 1.40.0, allowing span names to be determined using
the latest rules. Support for the `rpc.system.name` attribute
(introduced in 1.39.0) has been added so span names can reflect the new
RPC system conventions. Backward compatibility is preserved: the
`rpc.system` attribute remains supported.

- `receiver/active_directory_ds`: Enables dynamic metric reaggregation
in the Active Directory Domain Services receiver. This does not break
existing configuration files.
([#&#8203;46346](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46346))

- `receiver/apachespark`: Enable the re-aggregation feature for the
apachespark receiver
([#&#8203;46349](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46349))

- `receiver/awss3`: add `tag_object_after_ingestion` flag to the s3
receiver so objects that have been processed can be identified
([#&#8203;46078](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46078))
They will be tagged with `otel-collector:status=ingested`. Operators can
use that tag to define bucket lifecycle policies.

- `receiver/awss3`: add zstd decompression to the s3 receiver
([#&#8203;46854](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46854))

- `receiver/cloudfoundry`: Migrate cloudfoundry.resourceAttributes.allow
feature gate registration from manual code to metadata.yaml for mdatagen
code generation
([#&#8203;46116](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46116))

- `receiver/elasticsearch`: Enable dynamic attribute metric with
attribute re-aggregation in configuration at runtime
([#&#8203;46353](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46353))

- `receiver/filestats`: Enable re-aggregation and set requirement levels
for attributes.
([#&#8203;46355](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46355))

- `receiver/googlecloudpubsub`: Add flow control configuration
([#&#8203;44804](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/44804))
Add flow control configuration, giving advanced users more control over
the parameters of the streaming
  pull control loop.

- `receiver/k8s_cluster`: Emit entity references as part of metrics
resources.
([#&#8203;41080](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/41080))

- `receiver/k8sobjects`: Add `kube_api_qps` and `kube_api_burst` config
options to control Kubernetes API request rate limits and prevent
client-side throttling when watching or polling many resources
([#&#8203;44484](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/44484))
The same fields are also available in `receiver/k8sevents` via the
shared `internal/k8sconfig` package.
Default values match the client-go defaults: `kube_api_qps=5`,
`kube_api_burst=10`.

- `receiver/receiver_creator`: add support for profiling signal for
receiver creator
([#&#8203;46930](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46930))

- `receiver/splunkenterprise`: Add custom search support to the Splunk
Enterprise receiver
([#&#8203;47124](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47124))

- `receiver/windows_event_log`: Add `discover_domain_controllers` config
flag to automatically discover and collect Security events from Active
Directory domain controllers based on feature gate
domainControllers.autodiscovery.
([#&#8203;44156](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/44156),
[#&#8203;44423](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/44423))
When `discover_domain_controllers` in config and
`domainControllers.autodiscovery` feature gate is set `true` , the
receiver queries LDAP Root DSE to
discover the root domain path, enumerates all domain controllers in the
Active Directory
  forest, and creates receiver for each domain controller.
Falls back to the currently joined DC if the root DN cannot be
determined.

##### 🧰 Bug fixes 🧰

- `exporter/awsemf`: Fix data races in getPusher and logPusher that
cause nil pointer panics and out-of-order log events
([#&#8203;47126](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47126))

- `exporter/awss3`: Use AWS SDK S3 types for StorageClass and ACL
validation instead of hardcoded lists
([#&#8203;46825](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46825))
The hardcoded list of valid S3 storage classes was missing GLACIER\_IR,
REDUCED\_REDUNDANCY, and EXPRESS\_ONEZONE.
Replaced both StorageClass and ACL hardcoded validation maps with values
from the AWS SDK s3types package
  to prevent this from going out of date again in the future.

- `exporter/datadog`: Fix use-after-free bug causing corrupted quantile
sketches when exporting ExponentialHistogram metrics with multiple
attribute sets
([#&#8203;47338](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47338))
When multiple ExponentialHistogram data points were converted to Datadog
sketches in a single
export call, the underlying sync.Pool backing array was shared across
conversions. A second
conversion would reuse and overwrite the first sketch's bin memory,
producing non-monotonic
  bin keys and inflated percentile values. This is fixed by upgrading
github.com/DataDog/datadog-agent/pkg/util/quantile to commit
[`bfa4eff`](https://github.com/open-telemetry/opentelemetry-collector-contrib/commit/bfa4eff6c991),
which deep-copies
  the bin slice before returning the sketch.

- `exporter/elasticsearch`: Fix malformed JSON creation for numbers in
exponential notation.
([#&#8203;47363](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47363))
When rendering numbers in exponential notation the exporter JSON
implementation always added a radix point (e.g. 1.0 not 1).
The implementation had a buffer corruption bug where it was overriding
part of the buffer leading to malformed and invalid JSON numbers being
created.

- `exporter/prometheus`: Fix Prometheus exporter default HTTP server
behavior where keep-alives and server timeouts were not using the
intended defaults.
([#&#8203;47173](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47173))
This fixes default behavior where keep\_alives\_enabled was effectively
false unless explicitly configured.

- `exporter/prometheus`: Fix unbounded memory growth when metrics are no
longer being scraped.
([#&#8203;41123](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/41123))
Expired metric families now get cleaned up even when no Prometheus
scraper is actively collecting,
  preventing memory from growing indefinitely.

- `extension/aws_logs_encoding`: Add `source_region` field (27th field)
to S3 server access log parser and skip unknown future fields
gracefully.
([#&#8203;47149](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47149))
AWS added a `source_region` field to the S3 server access log format.
The parser
previously returned an error ("values in log line exceed the number of
available fields")
  when it encountered log lines with more fields than defined. This fix:
- Adds `source_region` as field index 26 mapped to
`aws.s3.source_region`.
- Makes the parser skip any fields beyond the known schema instead of
failing,
providing forward compatibility with future AWS S3 access log additions.

- `pkg/stanza`: Fix severity parser to work with JSON parser with
`parse_ints: true`
([#&#8203;47209](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47209))

- `receiver/awss3`: Fix infinite loop and metric skew caused by SQS
failing to parse and delete "s3:TestEvent" messages
([#&#8203;47045](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47045))

- `receiver/vcenter`: Fixes a nil pointer dereference panic in
recordVMStats when scraping metrics from VMs with missing performance
counters
([#&#8203;46977](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46977))

<!-- previous-version -->

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

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

##### 🛑 Breaking changes 🛑

- `exporter/elasticsearch`: Remove `host.os.type` encoding in ECS mode
([#&#8203;46900](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46900))
Use
[processor/elasticapmprocessor](https://github.com/elastic/opentelemetry-collector-components/tree/main/processor/elasticapmprocessor)
v0.36.2 or later for `host.os.type` enrichment
- `receiver/prometheus`: Remove the deprecated
`report_extra_scrape_metrics` receiver configuration option and obsolete
extra scrape metric feature gates.
([#&#8203;44181](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/44181))
`report_extra_scrape_metrics` is no longer accepted in
`prometheusreceiver` configuration.
Control extra scrape metrics through the
PromConfig.ScrapeConfigs.ExtraScrapeMetrics setting instead.

##### 🚩 Deprecations 🚩

- `receiver/awsfirehose`: Deprecate built-in unmarshalers (cwlogs,
cwmetrics, otlp\_v1) in favor of encoding extensions.
([#&#8203;45830](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/45830))
Use the aws\_logs\_encoding extension (format: cloudwatch) instead of
cwlogs,
and the awscloudwatchmetricstreams\_encoding extension instead of
cwmetrics (format: json)
  or otlp\_v1 (format: opentelemetry1.0).

- `receiver/file_log`: Rename `filelog` receiver to `file_log` with
deprecated alias `filelog`
([#&#8203;45339](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/45339))

- `receiver/kafka`: Deprecate the built-in `azure_resource_logs`
encoding in favour of `azureencodingextension`.
([#&#8203;46267](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46267))
The built-in `azure_resource_logs` encoding does not support all
timestamp formats
emitted by Azure services (e.g. US-format timestamps from Azure
Functions).
Users should migrate to the
[`azureencodingextension`](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/extension/encoding/azureencodingextension),
which provides full control over time formats and is actively
maintained.

##### 💡 Enhancements 💡

- `cmd/opampsupervisor`: Add configuration validation before applying
remote config to prevent collector downtime
([#&#8203;41068](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/41068))
Validates collector configurations before applying them, preventing
downtime from invalid remote configs.
Disabled by default. Enable via `agent.validate_config: true`. May
produce false positives when resources
  like ports are temporarily unavailable during validation.

- `connector/datadog`: Document datadog connector is not supported in
aix environments
([#&#8203;47010](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47010))
Explicitly opt out of host metadata computation in datadog components to
support AIX compilation target.

- `connector/signal_to_metrics`: Add `keys_expression` support in
`include_resource_attributes` and `attributes` for dynamic attribute key
resolution at runtime
([#&#8203;46884](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46884))
The `keys_expression` field allows specifying an OTTL value expression
that resolves to a list
of attribute keys at runtime. This enables dynamic resource attribute
filtering based on runtime
data such as client metadata. Exactly one of `key` or `keys_expression`
must be set per entry.

- `connector/signal_to_metrics`: Reduce per-signal allocations in the
hot path by replacing attribute map allocation with a pooled hash-based
ID check, and caching filtered resource attributes per metric definition
within each resource batch.
([#&#8203;47197](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47197))

- `connector/signal_to_metrics`: Pre-compute prefixed collector key to
avoid a string allocation on every signal processed.
([#&#8203;47183](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47183))
Pre-computing the collector key avoids a string allocation on every
signal processed.

- `exporter/datadog`: Document datadog exporter is not supported in aix
environments
([#&#8203;47010](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47010))
Explicitly opt out of host metadata computation in datadog components to
support AIX compilation target.

- `exporter/elasticsearch`: Add `histogram:raw` mapping hint to bypass
midpoint approximation for histogram metrics
([#&#8203;47150](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47150))

- `exporter/elasticsearch`: Cache metric attribute set per bulk session
instead of recomputing it for every document
([#&#8203;47170](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47170))
`syncBulkIndexerSession.Add()` was calling
`getAttributesFromMetadataKeys` +
`attribute.NewSet` + `metric.WithAttributeSet` on every document in the
hot path. The attribute set is
derived from the request context metadata, which is constant for the
lifetime of a session, so it is
now computed once in `StartSession` and reused across all `Add()` calls
in that session.

- `exporter/elasticsearch`: populate \_doc\_count field in ECS mapping
mode
([#&#8203;46936](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46936))
\_doc\_count is a special metadata field in Elasticsearch used when a
document represents pre-aggregated data (like histograms or aggregate
metrics).
Currently, elasticsearchexporter only populates this field for otel
mapping mode (native otel field structure). This change
adds support for ECS mapping mode (native ECS field structure) so that
we have consistent behavior for both mapping modes.

- `exporter/elasticsearch`: Encode `require_data_stream` in
Elasticsearch bulk action metadata instead of the bulk request query
string.
([#&#8203;46970](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46970))
This preserves existing endpoint query parameters while moving
`require_data_stream`
to the per-document action line expected by newer bulk workflows.
Benchmarks show
  a stable \~27 bytes/item NDJSON payload overhead before compression.

- `exporter/elasticsearch`: Improve performance of Elasticsearch
exporter document serialisation
([#&#8203;47171](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47171))

- `exporter/elasticsearch`: Add metric for docs retried because of
request errors
([#&#8203;46215](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46215))

- `exporter/kafka`: Cache OTel metric attribute sets in OnBrokerE2E hook
to reduce per-export allocations
([#&#8203;47186](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47186))
`OnBrokerE2E` previously rebuilt `attribute.NewSet` +
`metric.WithAttributeSet` on every
call. The set of distinct (nodeID, host, outcome) combinations is
bounded by
2 × number-of-brokers, so the computed `MeasurementOption` is now cached
per key.

- `exporter/pulsar`: This component does not support aix/ppc64.
([#&#8203;47010](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47010))
  Make the exporter explicitly panic if used in aix/ppc64 environments.

- `extension/datadog`: Document datadog extension is not supported in
aix environments
([#&#8203;47010](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47010))
Explicitly opt out of host metadata computation in datadog components to
support AIX compilation target.

- `extension/db_storage`: Make dbstorage work in AIX environments
([#&#8203;47010](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47010))
sqlite support is offered via modernC, which doesn't support the AIX
ppc64 compilation target.
We carve out support for sqlite in AIX environments so contrib can
compile for this compilation target.

- `extension/health_check`: Add component event attributes to serialized
output.
([#&#8203;43606](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/43606))
When `http.status.include_attributes` is enabled in the healthcheckv2
extension (with `use_v2: true`),
users will see additional attributes in the status output. These
attributes provide more
context about component states, including details like error messages
and affected components.
  For example:
  ```json
  {
    "healthy": false,
    "status": "error",
    "attributes": {
      "error_msg": "not enough permissions to read cpu data",
      "scrapers": ["cpu", "memory", "network"]
    }
  }
  ```

- `extension/healthcheckv2`: Add component event attributes to
serialized output.
([#&#8203;43606](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/43606))
When `http.status.include_attributes` is enabled in the healthcheckv2
extension (with `use_v2: true`),
users will see additional attributes in the status output. These
attributes provide more
context about component states, including details like error messages
and affected components.
  For example:
  ```json
  {
    "healthy": false,
    "status": "error",
    "attributes": {
      "error_msg": "not enough permissions to read cpu data",
      "scrapers": ["cpu", "memory", "network"]
    }
  }
  ```

- `extension/sigv4auth`: Add support for External IDs when assuming
roles in cross-account authentication scenarios
([#&#8203;44930](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/44930))
Added external\_id field to the AssumeRole configuration, allowing users
to specify
an External ID when assuming roles for enhanced cross-account security.

- `internal/datadog`: Do not compute host metadata in AIX environments
([#&#8203;47010](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47010))
Explicitly opt out of host metadata computation in datadog components to
support AIX compilation target.

- `pkg/stanza`: Ensure router operator does not split batches of entries
([#&#8203;42393](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/42393))

- `pkg/stanza`: Parse all Windows Event XML fields into the log body,
including RenderingInfo (with Culture, Channel, Provider, Task, Opcode,
Keywords, Message), UserData, ProcessingErrorData, DebugData, and
BinaryEventData.
([#&#8203;46943](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46943))
Previously, RenderingInfo was only used to derive the top-level
level/task/opcode/keywords/message
fields. It is now also emitted as a top-level `rendering_info` key
containing all fields including
`culture`, `channel`, and `provider`. UserData (an alternative to
EventData used by some providers)
is now parsed into a `user_data` key. Rare schema elements
ProcessingErrorData, DebugData, and
  BinaryEventData are also captured when present.

- `processor/resourcedetection`: Added IBM Cloud VPC resource detector
to the Resource Detection Processor
([#&#8203;46874](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46874))

- `processor/resourcedetection`: Added IBM Cloud Classic resource
detector to the Resource Detection Processor
([#&#8203;46874](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46874))

- `processor/tail_sampling`: Add `sampling_strategy` config with
`trace-complete` and `span-ingest` modes for tail sampling decision
timing and evaluation behavior.
([#&#8203;46600](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46600))

- `receiver/awslambda`: Enrich context with AWS Lambda receiver metadata
for S3 logs
([#&#8203;47046](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47046))

- `receiver/azure_event_hub`: Add support for Azure Event Hubs
distributed processing. This allows the receiver to automatically
coordinate partition ownership and checkpointing across multiple
collector instances via Azure Blob Storage.
([#&#8203;46595](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46595))

- `receiver/docker_stats`: Add TLS configuration support for connecting
to the Docker daemon over HTTPS with client and server certificates.
([#&#8203;33557](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/33557))
A new optional `tls` configuration block is available in `docker_stats`
receiver config (and the
shared `internal/docker` package). When omitted the connection remains
insecure (plain HTTP or
Unix socket), preserving existing behavior. When provided it supports
the standard
`configtls.ClientConfig` fields: `ca_file`, `cert_file`, `key_file`,
`insecure_skip_verify`,
  `min_version`, and `max_version`.
A warning is now emitted when a plain `tcp://` or `http://` endpoint is
used without TLS,
reflecting Docker's deprecation of unauthenticated TCP connections since
Docker v26.0
(see
<https://docs.docker.com/engine/deprecated/#unauthenticated-tcp-connections>).

- `receiver/docker_stats`: Add "stream\_stats" config option to maintain
a persistent Docker stats stream per container instead of opening a new
connection on every scrape cycle.
([#&#8203;46493](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46493))
When `stream_stats: true` is set, each container maintains a persistent
open Docker stats
stream instead of opening and closing a new connection on every scrape
cycle. The scraper
  reads from the cached latest value, which reduces connection overhead.

- `receiver/expvar`: Enable the re-aggregation feature for the expvar
receiver
([#&#8203;45396](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/45396))

- `receiver/file_log`: Add `max_log_size_behavior` config option to
control oversized log entry behavior
([#&#8203;44371](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/44371))
The new `max_log_size_behavior` setting controls what happens when a log
entry exceeds `max_log_size`.
- `split` (default): Splits oversized log entries into multiple log
entries. This is the existing behavior.
- `truncate`: Truncates oversized log entries and drops the remainder,
emitting only a single truncated log entry.

- `receiver/hostmetrics`: Enable re-aggregation for system scraper
([#&#8203;46624](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46624))
  Enabled the reaggregation feature gate for the system scraper.

- `receiver/hostmetrics`: Enable re-aggregation for process scraper
([#&#8203;46623](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46623))
Enabled the reaggregation feature gate for the process scraper and set
all metric attributes (context\_switch\_type, direction,
paging\_fault\_type, state) with requirement\_level recommended.

- `receiver/mongodb`: Enable re-aggregation feature for mongodb receiver
metrics
([#&#8203;46366](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46366))

- `receiver/mongodb`: Add `scheme` configuration option to support
`mongodb+srv` connections
([#&#8203;36011](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/36011))
  The new `scheme` field allows connecting to MongoDB clusters using
  SRV DNS records (mongodb+srv protocol). Defaults to "mongodb" for
  backward compatibility.

- `receiver/mysql`: Add `mysql.query_plan.hash` attribute to top query
log records, enabling users to correlate top queries with their
corresponding execution plans.
([#&#8203;46626](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46626))

- `receiver/mysql`: Added `mysql.session.status` and `mysql.session.id`
attributes to query samples. `mysql.session.status` indicates the
session status (`waiting`, `running`, or `other`) at the time of the
sample. `mysql.session.id` provides the unique session identifier. Both
attributes provide additional context for understanding query
performance and behavior.
([#&#8203;135350](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/135350))

- `receiver/mysql`: Add and tune obfuscation of sensitive properties in
both V1 and V2 JSON query plans.
([#&#8203;46629](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46629),
[#&#8203;46587](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46587))
Configure and test obfuscation for V1 and V2 plans, including tests of
queries retrieved from the performance schema that are truncated and
cannot be obfuscated.
The importance of obfuscation can be very context dependent; sensitive
PII, banking, and authorization data may reside in the same database as
less sensitive data, and it can be vital to ensure that what is expected
to be obfuscated is always obfuscated. Significant additional testing
has been added around query plan obfuscation to ensure that this is
enforced and to provide assurance and reference to users about what
specifically is obfuscated and what is not.

- `receiver/mysql`: Propagates W3C TraceContext from MySQL session
variables to query sample log records. When a MySQL session sets
`@traceparent`, the receiver extracts the TraceID and SpanID and stamps
them onto the corresponding `db.server.query_sample` log record,
enabling correlation between application traces and query samples.
([#&#8203;46631](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46631))
Only samples from sessions where `@traceparent` is set will have
non-zero `traceId` and `spanId` fields on the log record.

- `receiver/prometheus`: Add support for reading instrumentation scope
attributes from `otel_scope_<attribute-name>` labels while
feature-gating deprecation of `otel_scope_info`.
([#&#8203;41502](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/41502))
Scope attributes are always extracted from `otel_scope_<attribute-name>`
labels on metrics.
The `receiver.prometheusreceiver.IgnoreScopeInfoMetric` feature gate
(alpha, disabled by default)
controls only whether the legacy `otel_scope_info` metric is ignored for
scope attribute extraction.
When the gate is disabled, both mechanisms coexist to support migration.
See the specification change for motivation:
[open-telemetry/opentelemetry-specification#4505](https://github.com/open-telemetry/opentelemetry-specification/pull/4505)

- `receiver/pulsar`: This component does not support aix/ppc64.
([#&#8203;47010](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47010))
  Make the receiver explicitly panic if used in aix/ppc64 environments.

- `receiver/skywalking`: Add feature gate
`translator.skywalking.useStableSemconv` to update semantic conventions
from v1.18.0 to v1.38.0
([#&#8203;44796](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/44796))
A feature gate `translator.skywalking.useStableSemconv` has been added
to control the migration.
The gate is disabled by default (Alpha stage), so existing behavior is
preserved.

- `receiver/sqlquery`: Add clickhouse support to sqlquery
([#&#8203;47116](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47116))

- `receiver/sqlquery`: Add `row_condition` to metric configuration for
filtering result rows by column value
([#&#8203;45862](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/45862))
Enables extracting individual metrics from pivot-style result sets where
each row
represents a different metric (e.g. pgbouncer's `SHOW LISTS` command).
When
`row_condition` is configured on a metric, only rows where the specified
column
equals the specified value are used; all other rows are silently
skipped.

- `receiver/sqlserver`: Enable dynamic metric reaggregation in the SQL
Server receiver.
([#&#8203;46379](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46379))

- `receiver/yang_grpc`: Support collecting any metric by browsing the
whole metrics tree
([#&#8203;47054](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47054))

##### 🧰 Bug fixes 🧰

- `exporter/kafka`: Fixes the validation for `topic_from_metadata_key`
to use partition keys.
([#&#8203;46994](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46994))

- `exporter/kafka`: Fix topic routing for multi-resource batches when
`topic_from_attribute` is set without resource-level partitioning
([#&#8203;46872](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46872))
  Previously, when a batch contained multiple resources with different
  topic attribute values, all data was silently sent to the topic of the
first resource. Each resource is now correctly routed to its own topic.

- `exporter/splunk_hec`: Fix timestamp precision in Splunk HEC exporter
to preserve microseconds instead of truncating to milliseconds.
([#&#8203;47175](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47175))
Timestamps were rounded to milliseconds before sending to Splunk HEC.
The rounding has been removed, giving microsecond precision in the HEC
`time` field.

- `extension/bearertokenauth`: Redact bearer token from authentication
error messages to prevent credential exposure in logs.
([#&#8203;46200](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46200))
Previously, when a client presented an invalid bearer token, the full
token value was
included in the error message returned by the Authenticate method. This
error could be
propagated to log output, exposing sensitive credentials. The error
message now omits
  the token value entirely.

- `internal/aws`: Respect NO\_PROXY/no\_proxy environment variables when
using env-based proxy configuration in awsutil
([#&#8203;46892](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46892))
When no explicit proxy\_address was configured, the HTTP client manually
read HTTPS\_PROXY
and used http.ProxyURL which ignores NO\_PROXY. Now delegates to
http.ProxyFromEnvironment
  which correctly handles all proxy environment variables.

- `processor/deltatorate`: Append "/s" to the unit of output datapoints
to reflect the per-second rate.
([#&#8203;46841](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46841))

- `processor/filter`: Fix validation of include and exclude severity
configurations so they run independently of LogConditions.
([#&#8203;46883](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46883))

- `receiver/datadog`: Propagate Datadog trace sampling priority to all
spans translated from a trace chunk.
([#&#8203;45402](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/45402))

- `receiver/file_log`: Fix data corruption after file compression
([#&#8203;46105](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46105))
After a log file is compressed (e.g. test.log → test.log.gz), the
receiver configured with `compression: auto` will now correctly
decompress the content and continue reading from where the plaintext
file left off.

- `receiver/file_log`: Fixes bug where File Log receiver did not read
the last line of gzip compressed files.
([#&#8203;45572](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/45572))

- `receiver/hostmetrics`: Align HugePages metric instrument types with
the semantic conventions by emitting page\_size, reserved, and surplus
as non-monotonic sums instead of gauges.
([#&#8203;42650](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/42650))

- `receiver/hostmetrics`: Handle nil PageFaultsStat in process scraper
to prevent panic on zombie processes.
([#&#8203;47095](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47095))

- `receiver/journald`: Fix emitting of historical entries on startup
([#&#8203;46556](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46556))
When start\_at is "end" (the default), pass --lines=0 to journalctl to
suppress
  the 10 historical entries it emits by default in follow mode.

- `receiver/k8s_events`: Exclude DELETED watch events to prevent
duplicate event ingestion.
([#&#8203;47035](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47035))

- `receiver/mysql`: Remove deprecated `information_schema.processlist`
JOIN from query samples template; use `thread.processlist_host` instead.
([#&#8203;47041](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47041))

- `receiver/oracledb`: Fix oracledbreceiver aborting entire scrape when
a SQL query text fails to obfuscate (e.g. due to Oracle truncating a
CLOB mid-string-literal). The affected entry is now skipped with a
warning log and the rest of the scrape continues normally.
([#&#8203;47151](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47151))

- `receiver/otelarrow`: Remove assumed positions of otel arrow root
payload types
([#&#8203;46878](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46878))

- `receiver/otelarrow`: Fix OTLP fallback handlers returning
codes.Unknown instead of codes.Unavailable for pipeline errors, causing
upstream exporters to permanently drop data instead of retrying.
([#&#8203;46182](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46182))

- `receiver/pprof`: Fixes pprofreceiver file\_scrapper appending
resource profiles instead of merging them.
([#&#8203;46991](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46991))

- `receiver/prometheus_remote_write`: Count target\_info samples in PRW
response stats
([#&#8203;47108](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47108))

<!-- previous-version -->

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

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

##### 🛑 Breaking changes 🛑

- `all`: Removes the k8slog receiver after being unmaintained for 3
months
([#&#8203;46544](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46544))

- `all`: Remove deprecated SAPM exporter
([#&#8203;46555](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46555))

- `all`: Remove the datadogsemantics processor.
([#&#8203;46893](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46893))
If you need help, please contact Datadog support:
<https://www.datadoghq.com/support>.

- `exporter/google_cloud_storage`: `reuse_if_exists` behavior changed:
now checks bucket existence instead of attempting creation
([#&#8203;45971](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/45971))
Previously, `reuse_if_exists=true` would attempt bucket creation and
fall back to reusing on conflict.
Now, `reuse_if_exists=true` checks if bucket exists (via
storage.buckets.get) and uses it, failing if it doesn't exist.
Set to true when the service account lacks project-level bucket creation
permissions but has bucket-level permissions.
`reuse_if_exists=false` still attempts to create the bucket and fails if
it already exists.

- `exporter/kafka`: Remove deprecated top-level `topic` and `encoding`
configuration fields
([#&#8203;46916](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46916))
The top-level `topic` and `encoding` fields were deprecated in v0.124.0.
  Use the per-signal fields instead: `logs::topic`, `metrics::topic`,
  `traces::topic`, `profiles::topic`, and the corresponding `encoding`
  fields under each signal section.

- `exporter/kafka`: Remove kafka-local batching partitioner wiring and
require explicit `sending_queue::batch::partition::metadata_keys`
configuration as a superset of `include_metadata_keys` when batching is
enabled.
([#&#8203;46757](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46757))

- `pkg/ottl`: `truncate_all` function now supports UTF-8 safe truncation
([#&#8203;36713](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/36713))
The default `truncate_all` behavior has changed. Truncation now respects
UTF-8 character boundaries by default (new optional parameter
`utf8_safe`, default: `true`), so results stay valid UTF-8 and may be
slightly shorter than the limit.
To keep the previous byte-level truncation behavior (e.g. for non-UTF-8
data or to avoid any behavior change), set `utf8_safe` to `false` in all
`truncate_all` usages.

- `receiver/awsecscontainermetrics`: Add ephemeral storage metrics and
fix unit strings from Megabytes to MiB
([#&#8203;46414](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46414))
Adds two new task-level gauge metrics:
`ecs.task.ephemeral_storage.utilized` and
`ecs.task.ephemeral_storage.reserved` (in MiB).
These metrics are available on AWS Fargate Linux platform version 1.4.0+
and represent the shared ephemeral storage for the entire task.

**Breaking change:** The unit string for `ecs.task.memory.utilized`,
`ecs.task.memory.reserved`,
`container.memory.utilized`, and `container.memory.reserved` has been
corrected from `"Megabytes"` to `"MiB"`.
The underlying values were already in MiB (computed via division by
1024\*1024), but the unit label was incorrect.
Users relying on the exact unit string (e.g. in metric filters or
dashboards) will need to update accordingly.

- `receiver/mysql`: Set the default collection of query\_sample to false
([#&#8203;46902](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46902))

- `receiver/postgresql`: Disable default collection of top\_query and
query\_sample events.
([#&#8203;46843](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46843))
This change is breaking because it disables the default collection of
top\_query and query\_sample events. These events will need to be
enabled manually if desired.

- `receiver/redfish`: `system.host_name` and `base_url` resource
attribute has been changed to `host.name` and `url.full` respectively.

([#&#8203;46236](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46236))

- `receiver/windowseventlog`: Change event\_data from an array of
single-key maps to a flat map by default, making fields directly
accessible via OTTL. The previous format is available by setting
`event_data_format: array`.
([#&#8203;42565](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/42565),
[#&#8203;32952](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/32952))
Named <Data> elements become direct keys (e.g.,
body\["event\_data"]\["ProcessId"]).
  Anonymous <Data> elements use numbered keys: param1, param2, etc.
To preserve the previous array format, set event\_data\_format: array in
the receiver configuration.

##### 🚩 Deprecations 🚩

- `exporter/azure_blob`: Introduce new snake case compliant name
`azure_blob`
([#&#8203;46722](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46722))
- `exporter/google_cloud_storage`: Introduce new snake case compliant
name `google_cloud_storage`
([#&#8203;46733](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46733))
- `extension/aws_logs_encoding`: Introduce new snake case compliant name
`aws_logs_encoding`
([#&#8203;46776](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46776))
- `extension/azure_auth`: Introduce new snake case compliant name
`azure_auth`
([#&#8203;46775](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46775))
- `extension/cgroup_runtime`: Introduce new snake case compliant name
`cgroup_runtime`
([#&#8203;46773](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46773))
- `extension/google_cloud_logentry_encoding`: Introduce new snake case
compliant name `google_cloud_logentry_encoding`
([#&#8203;46778](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46778))
- `processor/metric_start_time`: Introduce new snake case compliant name
`metric_start_time`
([#&#8203;46777](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46777))
- `receiver/azure_blob`: Introduce new snake case compliant name
`azure_blob`
([#&#8203;46721](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46721))
- `receiver/azure_monitor`: Introduce new snake case compliant name
`azure_monitor`
([#&#8203;46730](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46730))
- `receiver/cisco_os`: Introduce new snake case compliant name
`cisco_os`
([#&#8203;46948](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46948))
- `receiver/macos_unified_logging`: Introduce new snake case compliant
name `macos_unified_logging`
([#&#8203;46729](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46729))
- `receiver/prometheus_remote_write`: Introduce new snake case compliant
name `prometheus_remote_write`
([#&#8203;46726](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46726))
- `receiver/yang_grpc`: Introduce new snake case compliant name
`yang_grpc`
([#&#8203;46723](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46723))

##### 🚀 New components 🚀

- `receiver/azure_functions`: Introduce new component to receive logs
from Azure Functions
([#&#8203;43507](https://github.com/open-telemetry/opentelemetry-collector-con

</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-contrib).

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

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
AndrewCharlesHay pushed a commit to AndrewCharlesHay/opentelemetry-collector-contrib that referenced this pull request Apr 23, 2026
…ib/extension/storage to v0.150.0 (open-telemetry#47807)

> ℹ️ **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/) |
|---|---|---|---|
|
[github.com/open-telemetry/opentelemetry-collector-contrib/extension/storage](https://github.com/open-telemetry/opentelemetry-collector-contrib)
| `v0.147.0` → `v0.150.0` |
![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fopen-telemetry%2fopentelemetry-collector-contrib%2fextension%2fstorage/v0.150.0?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fopen-telemetry%2fopentelemetry-collector-contrib%2fextension%2fstorage/v0.147.0/v0.150.0?slim=true)
|

---

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

---

### Release Notes

<details>
<summary>open-telemetry/opentelemetry-collector-contrib
(github.com/open-telemetry/opentelemetry-collector-contrib/extension/storage)</summary>

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

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

##### 🛑 Breaking changes 🛑

- `pkg/ottl`: Return errors when OTTL context accessors receive values
of the wrong type (part 2)
([#&#8203;40198](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/40198))
Setters in OTTL contexts now validate that values are of the expected
type and return
descriptive errors when type mismatches occur. This is the continuation
of work done in

[#&#8203;43505](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/43505),
addressing remaining contexts: datapoint, profile, profilesample,
resource, span,
  and spanevent.

  Changes include:

- Slice setters (explicit\_bounds, bucket\_counts,
positive.bucket\_counts, negative.bucket\_counts)
now use SetCommonTypedSliceValues/SetCommonIntSliceValues for better
type handling.
- SetMap now returns an error for invalid value types instead of
silently ignoring them.

**Note:** Users may see new errors from OTTL statements that were
previously silently failing
due to type mismatches. These errors indicate pre-existing issues in
OTTL configurations that
  were not being applied as expected.

- `processor/resourcedetection`: Remove feature gate
processor.resourcedetection.propagateerrors
([#&#8203;45853](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/45853))

- `processor/transform`: Remove the
`processor.transform.ConvertBetweenSumAndGaugeMetricContext` feature
gate.
([#&#8203;47358](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47358))
This feature gate has been stable for over a year and is no longer used
in any code paths.

- `receiver/k8s_cluster`: Kubernetes resource labels in entity events
are now prefixed per OTel semantic conventions.
([#&#8203;47491](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47491))
Labels on Kubernetes resources emitted as entity event attributes are
now prefixed with
`k8s.<resource>.label.` to align with OTel semantic conventions (e.g.
`k8s.pod.label.<key>`,
  `k8s.node.label.<key>`, `k8s.deployment.label.<key>`, etc.).
  Previously, label keys were emitted verbatim without any prefix.
Users consuming entity event attributes by label key will need to update
their configurations.

- `receiver/kubeletstats`: Disable deprecated resource attributes by
default
([#&#8203;47184](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47184))
The following resource attributes are deprecated and will now be
disabled by default:
`aws.volume.id`, `fs.type`, `gce.pd.name`, `glusterfs.endpoints.name`,
`glusterfs.path`, and `partition`.
  All of these attributes will be removed in a future release.

##### 🚩 Deprecations 🚩

- `receiver/http_check`: Rename `httpcheck` receiver to `http_check`
with deprecated alias `httpcheck`
([#&#8203;45339](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/45339))
- `receiver/named_pipe`: Rename `namedpipe` receiver to `named_pipe`
with deprecated alias `namedpipe`.
([#&#8203;45339](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/45339))
- `receiver/tcp_log`: Rename `tcplog` receiver to `tcp_log` with
deprecated alias `tcplog`
([#&#8203;45339](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/45339))
- `receiver/tls_check`: Rename `tlscheck` receiver to `tls_check` with
deprecated alias `tlscheck`
([#&#8203;45339](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/45339))
- `receiver/udp_log`: Rename `udplog` receiver to `udp_log` with
deprecated alias `udplog`
([#&#8203;45339](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/45339))
- `receiver/windows_event_log`: Rename `windowseventlog` receiver to
`windows_event_log` with deprecated alias `windowseventlog`
([#&#8203;45339](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/45339))

##### 🚀 New components 🚀

- `exporter/google_secops`: Add Google SecOps exporter for sending logs
to the Google SecOps (Chronicle) Ingestion APIs.
([#&#8203;46148](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46148))
- `processor/spanpruning`: Add span pruning processor for aggregating
repetitive leaf spans in trace data.
([#&#8203;45654](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/45654))
- `receiver/osquery`: Implement osquery query scraping
([#&#8203;30375](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/30375))

##### 💡 Enhancements 💡

- `exporter/datadog`: Promote
`exporter.datadogexporter.DisableAllMetricRemapping` feature gate to
beta.
([#&#8203;47212](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47212))
- All metrics remappings are now handled by the Datadog backend and this
should be a transparent change. If you run into any issues, please
disable the feature gate by passing
`--feature-gates=-exporter.datadogexporter.DisableAllMetricRemapping`
and reach out to Datadog support (<https://www.datadoghq.com/support/>).

- `exporter/elasticsearch`: Add suppress\_conflict\_errors config to
optionally silence document level 409 version conflict logs
([#&#8203;47248](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47248))

- `exporter/kafka`: Add `record_headers` configuration option to set
static headers on outgoing records
([#&#8203;47193](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47193))

- `exporter/kafka`: Add support for partitioning kafka records
([#&#8203;46931](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46931))
Add support for RoundRobin and LeastBackup partitioning strategies, as
well as custom partitioners
provided by RecordPartitionerExtension implementations. Users can
implement their own partitioning logic
and plug it into the kafka exporter via the RecordPartitionerExtension
interface.

- `exporter/prometheus`: Exemplar support for exponential histograms in
Prometheus exporter
([#&#8203;47159](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47159))

- `exporter/prometheus`: prevent panic on histogram with empty
BucketCounts.
([#&#8203;47351](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47351))
Guard BucketCounts access with a length check in convertDoubleHistogram
to avoid index-out-of-range panic when a histogram has explicit bounds
but no corresponding bucket counts.

- `exporter/signalfx`: Add `dimension_client::strip_k8s_label_prefix`
option to strip `k8s.<resource>.label.` prefix from dimension property
updates.
([#&#8203;47491](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47491))
The k8s cluster receiver now emits Kubernetes resource labels in entity
events with the
`k8s.<resource>.label.` prefix per OTel semantic conventions (e.g.
`k8s.pod.label.app`).
When `strip_k8s_label_prefix: true` (the default), the SignalFx exporter
strips this prefix
when forwarding labels as dimension properties, preserving the existing
SignalFx behavior (e.g. `app`).
Set `strip_k8s_label_prefix: false` to disable stripping and receive the
full prefixed keys.

- `exporter/sumologic`: Modify default retry settings to prevent
dropping data on transient backend unavailability
([#&#8203;47503](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47503))

- `extension/datadog`: Add `gateway_service` and `gateway_destination`
config fields to support gateway topology view in Fleet Automation.
([#&#8203;47471](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47471))
Gateway collectors set `gateway_service` to the k8s Service fronting
them.
Agent/daemonset collectors set `gateway_destination` to the k8s Service
they forward telemetry to.
Both fields are optional and omitted from the metadata payload when
empty.

- `extension/health_check`: Migrate
extension.healthcheck.useComponentStatus feature gate registration from
manual code to metadata.yaml for mdatagen code generation
([#&#8203;46116](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46116))

- `extension/sumologic`: Adding support to sumologic extension for auto
discovery of services in windows
([#&#8203;47349](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47349))

- `pkg/ottl`: Add Coalesce converter that returns the first non-nil
value from a list of arguments.
([#&#8203;46847](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46847))
The Coalesce converter accepts a list of values and returns the first
one that is not nil.
This simplifies common patterns where a canonical attribute must be
resolved from multiple possible sources.
Example: `set(attributes["user"], Coalesce([attributes["user.id"],
attributes["enduser.id"], "unknown"]))`

- `pkg/stanza`: Optimizing the performance of Windows Event log
unmarshalling when raw = true
([#&#8203;47164](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47164))

- `pkg/stanza`: Add new scrape model for Windows event logs using an
event-driven subscription instead of polling
([#&#8203;47091](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47091))

- `pkg/stanza`: Add `on_truncate` option to fileconsumer to control
behavior when a file's stored offset exceeds its current size.
([#&#8203;43693](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/43693))

- `processor/filter`: Add feature gate
`processor.filter.defaultErrorModeIgnore` to change default error\_mode
to ignore
([#&#8203;47232](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47232))

- `processor/interval`: Flush remaining buffered metrics on shutdown to
prevent data loss during restarts and rollouts.
([#&#8203;47238](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47238))
Previously, the interval processor would silently drop any metrics
accumulated
in its buffer when receiving a shutdown signal. Now it flushes the
buffer to
the next consumer before exiting, consistent with the batch processor
behavior.

- `processor/lookup`: Add DNS lookup source and LRU caching
([#&#8203;46114](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46114))
Adds a DNS source that performs reverse DNS lookups (PTR records) to
resolve IP addresses to hostnames.
Implements a full LRU cache with size-based eviction, TTL expiration,
and negative caching.
  The DNS source has caching enabled by default.

- `processor/spanpruning`: Add full implementation of the span pruning
processor.
([#&#8203;45654](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/45654))

- `processor/tail_sampling`: Add gated tail storage extension support to
tailsampling processor via new tail\_storage config
([#&#8203;45250](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/45250))
Introduces a new tail storage interface with in-memory default behavior
and allows extension-backed storage when
the processor.tailsamplingprocessor.tailstorageextension feature gate is
enabled.

- `processor/transform`: Add feature gate
`processor.transform.defaultErrorModeIgnore` to change default
error\_mode to ignore
([#&#8203;47231](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47231))

- `processor/transform`: Add support for semantic conventions 1.38.0,
1.39.0, and 1.40.0 in the `set_semconv_span_name` function.
([#&#8203;45911](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/45911))
The `set_semconv_span_name` function now recognizes semantic conventions
1.38.0, 1.39.0, and 1.40.0, allowing span names to be determined using
the latest rules. Support for the `rpc.system.name` attribute
(introduced in 1.39.0) has been added so span names can reflect the new
RPC system conventions. Backward compatibility is preserved: the
`rpc.system` attribute remains supported.

- `receiver/active_directory_ds`: Enables dynamic metric reaggregation
in the Active Directory Domain Services receiver. This does not break
existing configuration files.
([#&#8203;46346](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46346))

- `receiver/apachespark`: Enable the re-aggregation feature for the
apachespark receiver
([#&#8203;46349](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46349))

- `receiver/awss3`: add `tag_object_after_ingestion` flag to the s3
receiver so objects that have been processed can be identified
([#&#8203;46078](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46078))
They will be tagged with `otel-collector:status=ingested`. Operators can
use that tag to define bucket lifecycle policies.

- `receiver/awss3`: add zstd decompression to the s3 receiver
([#&#8203;46854](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46854))

- `receiver/cloudfoundry`: Migrate cloudfoundry.resourceAttributes.allow
feature gate registration from manual code to metadata.yaml for mdatagen
code generation
([#&#8203;46116](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46116))

- `receiver/elasticsearch`: Enable dynamic attribute metric with
attribute re-aggregation in configuration at runtime
([#&#8203;46353](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46353))

- `receiver/filestats`: Enable re-aggregation and set requirement levels
for attributes.
([#&#8203;46355](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46355))

- `receiver/googlecloudpubsub`: Add flow control configuration
([#&#8203;44804](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/44804))
Add flow control configuration, giving advanced users more control over
the parameters of the streaming
  pull control loop.

- `receiver/k8s_cluster`: Emit entity references as part of metrics
resources.
([#&#8203;41080](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/41080))

- `receiver/k8sobjects`: Add `kube_api_qps` and `kube_api_burst` config
options to control Kubernetes API request rate limits and prevent
client-side throttling when watching or polling many resources
([#&#8203;44484](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/44484))
The same fields are also available in `receiver/k8sevents` via the
shared `internal/k8sconfig` package.
Default values match the client-go defaults: `kube_api_qps=5`,
`kube_api_burst=10`.

- `receiver/receiver_creator`: add support for profiling signal for
receiver creator
([#&#8203;46930](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46930))

- `receiver/splunkenterprise`: Add custom search support to the Splunk
Enterprise receiver
([#&#8203;47124](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47124))

- `receiver/windows_event_log`: Add `discover_domain_controllers` config
flag to automatically discover and collect Security events from Active
Directory domain controllers based on feature gate
domainControllers.autodiscovery.
([#&#8203;44156](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/44156),
[#&#8203;44423](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/44423))
When `discover_domain_controllers` in config and
`domainControllers.autodiscovery` feature gate is set `true` , the
receiver queries LDAP Root DSE to
discover the root domain path, enumerates all domain controllers in the
Active Directory
  forest, and creates receiver for each domain controller.
Falls back to the currently joined DC if the root DN cannot be
determined.

##### 🧰 Bug fixes 🧰

- `exporter/awsemf`: Fix data races in getPusher and logPusher that
cause nil pointer panics and out-of-order log events
([#&#8203;47126](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47126))

- `exporter/awss3`: Use AWS SDK S3 types for StorageClass and ACL
validation instead of hardcoded lists
([#&#8203;46825](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46825))
The hardcoded list of valid S3 storage classes was missing GLACIER\_IR,
REDUCED\_REDUNDANCY, and EXPRESS\_ONEZONE.
Replaced both StorageClass and ACL hardcoded validation maps with values
from the AWS SDK s3types package
  to prevent this from going out of date again in the future.

- `exporter/datadog`: Fix use-after-free bug causing corrupted quantile
sketches when exporting ExponentialHistogram metrics with multiple
attribute sets
([#&#8203;47338](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47338))
When multiple ExponentialHistogram data points were converted to Datadog
sketches in a single
export call, the underlying sync.Pool backing array was shared across
conversions. A second
conversion would reuse and overwrite the first sketch's bin memory,
producing non-monotonic
  bin keys and inflated percentile values. This is fixed by upgrading
github.com/DataDog/datadog-agent/pkg/util/quantile to commit
[`bfa4eff`](https://github.com/open-telemetry/opentelemetry-collector-contrib/commit/bfa4eff6c991),
which deep-copies
  the bin slice before returning the sketch.

- `exporter/elasticsearch`: Fix malformed JSON creation for numbers in
exponential notation.
([#&#8203;47363](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47363))
When rendering numbers in exponential notation the exporter JSON
implementation always added a radix point (e.g. 1.0 not 1).
The implementation had a buffer corruption bug where it was overriding
part of the buffer leading to malformed and invalid JSON numbers being
created.

- `exporter/prometheus`: Fix Prometheus exporter default HTTP server
behavior where keep-alives and server timeouts were not using the
intended defaults.
([#&#8203;47173](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47173))
This fixes default behavior where keep\_alives\_enabled was effectively
false unless explicitly configured.

- `exporter/prometheus`: Fix unbounded memory growth when metrics are no
longer being scraped.
([#&#8203;41123](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/41123))
Expired metric families now get cleaned up even when no Prometheus
scraper is actively collecting,
  preventing memory from growing indefinitely.

- `extension/aws_logs_encoding`: Add `source_region` field (27th field)
to S3 server access log parser and skip unknown future fields
gracefully.
([#&#8203;47149](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47149))
AWS added a `source_region` field to the S3 server access log format.
The parser
previously returned an error ("values in log line exceed the number of
available fields")
  when it encountered log lines with more fields than defined. This fix:
- Adds `source_region` as field index 26 mapped to
`aws.s3.source_region`.
- Makes the parser skip any fields beyond the known schema instead of
failing,
providing forward compatibility with future AWS S3 access log additions.

- `pkg/stanza`: Fix severity parser to work with JSON parser with
`parse_ints: true`
([#&#8203;47209](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47209))

- `receiver/awss3`: Fix infinite loop and metric skew caused by SQS
failing to parse and delete "s3:TestEvent" messages
([#&#8203;47045](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47045))

- `receiver/vcenter`: Fixes a nil pointer dereference panic in
recordVMStats when scraping metrics from VMs with missing performance
counters
([#&#8203;46977](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46977))

<!-- previous-version -->

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

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

##### 🛑 Breaking changes 🛑

- `exporter/elasticsearch`: Remove `host.os.type` encoding in ECS mode
([#&#8203;46900](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46900))
Use
[processor/elasticapmprocessor](https://github.com/elastic/opentelemetry-collector-components/tree/main/processor/elasticapmprocessor)
v0.36.2 or later for `host.os.type` enrichment
- `receiver/prometheus`: Remove the deprecated
`report_extra_scrape_metrics` receiver configuration option and obsolete
extra scrape metric feature gates.
([#&#8203;44181](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/44181))
`report_extra_scrape_metrics` is no longer accepted in
`prometheusreceiver` configuration.
Control extra scrape metrics through the
PromConfig.ScrapeConfigs.ExtraScrapeMetrics setting instead.

##### 🚩 Deprecations 🚩

- `receiver/awsfirehose`: Deprecate built-in unmarshalers (cwlogs,
cwmetrics, otlp\_v1) in favor of encoding extensions.
([#&#8203;45830](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/45830))
Use the aws\_logs\_encoding extension (format: cloudwatch) instead of
cwlogs,
and the awscloudwatchmetricstreams\_encoding extension instead of
cwmetrics (format: json)
  or otlp\_v1 (format: opentelemetry1.0).

- `receiver/file_log`: Rename `filelog` receiver to `file_log` with
deprecated alias `filelog`
([#&#8203;45339](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/45339))

- `receiver/kafka`: Deprecate the built-in `azure_resource_logs`
encoding in favour of `azureencodingextension`.
([#&#8203;46267](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46267))
The built-in `azure_resource_logs` encoding does not support all
timestamp formats
emitted by Azure services (e.g. US-format timestamps from Azure
Functions).
Users should migrate to the
[`azureencodingextension`](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/extension/encoding/azureencodingextension),
which provides full control over time formats and is actively
maintained.

##### 💡 Enhancements 💡

- `cmd/opampsupervisor`: Add configuration validation before applying
remote config to prevent collector downtime
([#&#8203;41068](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/41068))
Validates collector configurations before applying them, preventing
downtime from invalid remote configs.
Disabled by default. Enable via `agent.validate_config: true`. May
produce false positives when resources
  like ports are temporarily unavailable during validation.

- `connector/datadog`: Document datadog connector is not supported in
aix environments
([#&#8203;47010](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47010))
Explicitly opt out of host metadata computation in datadog components to
support AIX compilation target.

- `connector/signal_to_metrics`: Add `keys_expression` support in
`include_resource_attributes` and `attributes` for dynamic attribute key
resolution at runtime
([#&#8203;46884](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46884))
The `keys_expression` field allows specifying an OTTL value expression
that resolves to a list
of attribute keys at runtime. This enables dynamic resource attribute
filtering based on runtime
data such as client metadata. Exactly one of `key` or `keys_expression`
must be set per entry.

- `connector/signal_to_metrics`: Reduce per-signal allocations in the
hot path by replacing attribute map allocation with a pooled hash-based
ID check, and caching filtered resource attributes per metric definition
within each resource batch.
([#&#8203;47197](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47197))

- `connector/signal_to_metrics`: Pre-compute prefixed collector key to
avoid a string allocation on every signal processed.
([#&#8203;47183](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47183))
Pre-computing the collector key avoids a string allocation on every
signal processed.

- `exporter/datadog`: Document datadog exporter is not supported in aix
environments
([#&#8203;47010](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47010))
Explicitly opt out of host metadata computation in datadog components to
support AIX compilation target.

- `exporter/elasticsearch`: Add `histogram:raw` mapping hint to bypass
midpoint approximation for histogram metrics
([#&#8203;47150](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47150))

- `exporter/elasticsearch`: Cache metric attribute set per bulk session
instead of recomputing it for every document
([#&#8203;47170](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47170))
`syncBulkIndexerSession.Add()` was calling
`getAttributesFromMetadataKeys` +
`attribute.NewSet` + `metric.WithAttributeSet` on every document in the
hot path. The attribute set is
derived from the request context metadata, which is constant for the
lifetime of a session, so it is
now computed once in `StartSession` and reused across all `Add()` calls
in that session.

- `exporter/elasticsearch`: populate \_doc\_count field in ECS mapping
mode
([#&#8203;46936](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46936))
\_doc\_count is a special metadata field in Elasticsearch used when a
document represents pre-aggregated data (like histograms or aggregate
metrics).
Currently, elasticsearchexporter only populates this field for otel
mapping mode (native otel field structure). This change
adds support for ECS mapping mode (native ECS field structure) so that
we have consistent behavior for both mapping modes.

- `exporter/elasticsearch`: Encode `require_data_stream` in
Elasticsearch bulk action metadata instead of the bulk request query
string.
([#&#8203;46970](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46970))
This preserves existing endpoint query parameters while moving
`require_data_stream`
to the per-document action line expected by newer bulk workflows.
Benchmarks show
  a stable \~27 bytes/item NDJSON payload overhead before compression.

- `exporter/elasticsearch`: Improve performance of Elasticsearch
exporter document serialisation
([#&#8203;47171](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47171))

- `exporter/elasticsearch`: Add metric for docs retried because of
request errors
([#&#8203;46215](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46215))

- `exporter/kafka`: Cache OTel metric attribute sets in OnBrokerE2E hook
to reduce per-export allocations
([#&#8203;47186](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47186))
`OnBrokerE2E` previously rebuilt `attribute.NewSet` +
`metric.WithAttributeSet` on every
call. The set of distinct (nodeID, host, outcome) combinations is
bounded by
2 × number-of-brokers, so the computed `MeasurementOption` is now cached
per key.

- `exporter/pulsar`: This component does not support aix/ppc64.
([#&#8203;47010](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47010))
  Make the exporter explicitly panic if used in aix/ppc64 environments.

- `extension/datadog`: Document datadog extension is not supported in
aix environments
([#&#8203;47010](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47010))
Explicitly opt out of host metadata computation in datadog components to
support AIX compilation target.

- `extension/db_storage`: Make dbstorage work in AIX environments
([#&#8203;47010](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47010))
sqlite support is offered via modernC, which doesn't support the AIX
ppc64 compilation target.
We carve out support for sqlite in AIX environments so contrib can
compile for this compilation target.

- `extension/health_check`: Add component event attributes to serialized
output.
([#&#8203;43606](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/43606))
When `http.status.include_attributes` is enabled in the healthcheckv2
extension (with `use_v2: true`),
users will see additional attributes in the status output. These
attributes provide more
context about component states, including details like error messages
and affected components.
  For example:
  ```json
  {
    "healthy": false,
    "status": "error",
    "attributes": {
      "error_msg": "not enough permissions to read cpu data",
      "scrapers": ["cpu", "memory", "network"]
    }
  }
  ```

- `extension/healthcheckv2`: Add component event attributes to
serialized output.
([#&#8203;43606](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/43606))
When `http.status.include_attributes` is enabled in the healthcheckv2
extension (with `use_v2: true`),
users will see additional attributes in the status output. These
attributes provide more
context about component states, including details like error messages
and affected components.
  For example:
  ```json
  {
    "healthy": false,
    "status": "error",
    "attributes": {
      "error_msg": "not enough permissions to read cpu data",
      "scrapers": ["cpu", "memory", "network"]
    }
  }
  ```

- `extension/sigv4auth`: Add support for External IDs when assuming
roles in cross-account authentication scenarios
([#&#8203;44930](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/44930))
Added external\_id field to the AssumeRole configuration, allowing users
to specify
an External ID when assuming roles for enhanced cross-account security.

- `internal/datadog`: Do not compute host metadata in AIX environments
([#&#8203;47010](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47010))
Explicitly opt out of host metadata computation in datadog components to
support AIX compilation target.

- `pkg/stanza`: Ensure router operator does not split batches of entries
([#&#8203;42393](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/42393))

- `pkg/stanza`: Parse all Windows Event XML fields into the log body,
including RenderingInfo (with Culture, Channel, Provider, Task, Opcode,
Keywords, Message), UserData, ProcessingErrorData, DebugData, and
BinaryEventData.
([#&#8203;46943](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46943))
Previously, RenderingInfo was only used to derive the top-level
level/task/opcode/keywords/message
fields. It is now also emitted as a top-level `rendering_info` key
containing all fields including
`culture`, `channel`, and `provider`. UserData (an alternative to
EventData used by some providers)
is now parsed into a `user_data` key. Rare schema elements
ProcessingErrorData, DebugData, and
  BinaryEventData are also captured when present.

- `processor/resourcedetection`: Added IBM Cloud VPC resource detector
to the Resource Detection Processor
([#&#8203;46874](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46874))

- `processor/resourcedetection`: Added IBM Cloud Classic resource
detector to the Resource Detection Processor
([#&#8203;46874](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46874))

- `processor/tail_sampling`: Add `sampling_strategy` config with
`trace-complete` and `span-ingest` modes for tail sampling decision
timing and evaluation behavior.
([#&#8203;46600](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46600))

- `receiver/awslambda`: Enrich context with AWS Lambda receiver metadata
for S3 logs
([#&#8203;47046](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47046))

- `receiver/azure_event_hub`: Add support for Azure Event Hubs
distributed processing. This allows the receiver to automatically
coordinate partition ownership and checkpointing across multiple
collector instances via Azure Blob Storage.
([#&#8203;46595](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46595))

- `receiver/docker_stats`: Add TLS configuration support for connecting
to the Docker daemon over HTTPS with client and server certificates.
([#&#8203;33557](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/33557))
A new optional `tls` configuration block is available in `docker_stats`
receiver config (and the
shared `internal/docker` package). When omitted the connection remains
insecure (plain HTTP or
Unix socket), preserving existing behavior. When provided it supports
the standard
`configtls.ClientConfig` fields: `ca_file`, `cert_file`, `key_file`,
`insecure_skip_verify`,
  `min_version`, and `max_version`.
A warning is now emitted when a plain `tcp://` or `http://` endpoint is
used without TLS,
reflecting Docker's deprecation of unauthenticated TCP connections since
Docker v26.0
(see
<https://docs.docker.com/engine/deprecated/#unauthenticated-tcp-connections>).

- `receiver/docker_stats`: Add "stream\_stats" config option to maintain
a persistent Docker stats stream per container instead of opening a new
connection on every scrape cycle.
([#&#8203;46493](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46493))
When `stream_stats: true` is set, each container maintains a persistent
open Docker stats
stream instead of opening and closing a new connection on every scrape
cycle. The scraper
  reads from the cached latest value, which reduces connection overhead.

- `receiver/expvar`: Enable the re-aggregation feature for the expvar
receiver
([#&#8203;45396](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/45396))

- `receiver/file_log`: Add `max_log_size_behavior` config option to
control oversized log entry behavior
([#&#8203;44371](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/44371))
The new `max_log_size_behavior` setting controls what happens when a log
entry exceeds `max_log_size`.
- `split` (default): Splits oversized log entries into multiple log
entries. This is the existing behavior.
- `truncate`: Truncates oversized log entries and drops the remainder,
emitting only a single truncated log entry.

- `receiver/hostmetrics`: Enable re-aggregation for system scraper
([#&#8203;46624](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46624))
  Enabled the reaggregation feature gate for the system scraper.

- `receiver/hostmetrics`: Enable re-aggregation for process scraper
([#&#8203;46623](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46623))
Enabled the reaggregation feature gate for the process scraper and set
all metric attributes (context\_switch\_type, direction,
paging\_fault\_type, state) with requirement\_level recommended.

- `receiver/mongodb`: Enable re-aggregation feature for mongodb receiver
metrics
([#&#8203;46366](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46366))

- `receiver/mongodb`: Add `scheme` configuration option to support
`mongodb+srv` connections
([#&#8203;36011](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/36011))
  The new `scheme` field allows connecting to MongoDB clusters using
  SRV DNS records (mongodb+srv protocol). Defaults to "mongodb" for
  backward compatibility.

- `receiver/mysql`: Add `mysql.query_plan.hash` attribute to top query
log records, enabling users to correlate top queries with their
corresponding execution plans.
([#&#8203;46626](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46626))

- `receiver/mysql`: Added `mysql.session.status` and `mysql.session.id`
attributes to query samples. `mysql.session.status` indicates the
session status (`waiting`, `running`, or `other`) at the time of the
sample. `mysql.session.id` provides the unique session identifier. Both
attributes provide additional context for understanding query
performance and behavior.
([#&#8203;135350](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/135350))

- `receiver/mysql`: Add and tune obfuscation of sensitive properties in
both V1 and V2 JSON query plans.
([#&#8203;46629](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46629),
[#&#8203;46587](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46587))
Configure and test obfuscation for V1 and V2 plans, including tests of
queries retrieved from the performance schema that are truncated and
cannot be obfuscated.
The importance of obfuscation can be very context dependent; sensitive
PII, banking, and authorization data may reside in the same database as
less sensitive data, and it can be vital to ensure that what is expected
to be obfuscated is always obfuscated. Significant additional testing
has been added around query plan obfuscation to ensure that this is
enforced and to provide assurance and reference to users about what
specifically is obfuscated and what is not.

- `receiver/mysql`: Propagates W3C TraceContext from MySQL session
variables to query sample log records. When a MySQL session sets
`@traceparent`, the receiver extracts the TraceID and SpanID and stamps
them onto the corresponding `db.server.query_sample` log record,
enabling correlation between application traces and query samples.
([#&#8203;46631](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46631))
Only samples from sessions where `@traceparent` is set will have
non-zero `traceId` and `spanId` fields on the log record.

- `receiver/prometheus`: Add support for reading instrumentation scope
attributes from `otel_scope_<attribute-name>` labels while
feature-gating deprecation of `otel_scope_info`.
([#&#8203;41502](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/41502))
Scope attributes are always extracted from `otel_scope_<attribute-name>`
labels on metrics.
The `receiver.prometheusreceiver.IgnoreScopeInfoMetric` feature gate
(alpha, disabled by default)
controls only whether the legacy `otel_scope_info` metric is ignored for
scope attribute extraction.
When the gate is disabled, both mechanisms coexist to support migration.
See the specification change for motivation:
[open-telemetry/opentelemetry-specification#4505](https://github.com/open-telemetry/opentelemetry-specification/pull/4505)

- `receiver/pulsar`: This component does not support aix/ppc64.
([#&#8203;47010](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47010))
  Make the receiver explicitly panic if used in aix/ppc64 environments.

- `receiver/skywalking`: Add feature gate
`translator.skywalking.useStableSemconv` to update semantic conventions
from v1.18.0 to v1.38.0
([#&#8203;44796](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/44796))
A feature gate `translator.skywalking.useStableSemconv` has been added
to control the migration.
The gate is disabled by default (Alpha stage), so existing behavior is
preserved.

- `receiver/sqlquery`: Add clickhouse support to sqlquery
([#&#8203;47116](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47116))

- `receiver/sqlquery`: Add `row_condition` to metric configuration for
filtering result rows by column value
([#&#8203;45862](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/45862))
Enables extracting individual metrics from pivot-style result sets where
each row
represents a different metric (e.g. pgbouncer's `SHOW LISTS` command).
When
`row_condition` is configured on a metric, only rows where the specified
column
equals the specified value are used; all other rows are silently
skipped.

- `receiver/sqlserver`: Enable dynamic metric reaggregation in the SQL
Server receiver.
([#&#8203;46379](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46379))

- `receiver/yang_grpc`: Support collecting any metric by browsing the
whole metrics tree
([#&#8203;47054](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47054))

##### 🧰 Bug fixes 🧰

- `exporter/kafka`: Fixes the validation for `topic_from_metadata_key`
to use partition keys.
([#&#8203;46994](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46994))

- `exporter/kafka`: Fix topic routing for multi-resource batches when
`topic_from_attribute` is set without resource-level partitioning
([#&#8203;46872](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46872))
  Previously, when a batch contained multiple resources with different
  topic attribute values, all data was silently sent to the topic of the
first resource. Each resource is now correctly routed to its own topic.

- `exporter/splunk_hec`: Fix timestamp precision in Splunk HEC exporter
to preserve microseconds instead of truncating to milliseconds.
([#&#8203;47175](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47175))
Timestamps were rounded to milliseconds before sending to Splunk HEC.
The rounding has been removed, giving microsecond precision in the HEC
`time` field.

- `extension/bearertokenauth`: Redact bearer token from authentication
error messages to prevent credential exposure in logs.
([#&#8203;46200](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46200))
Previously, when a client presented an invalid bearer token, the full
token value was
included in the error message returned by the Authenticate method. This
error could be
propagated to log output, exposing sensitive credentials. The error
message now omits
  the token value entirely.

- `internal/aws`: Respect NO\_PROXY/no\_proxy environment variables when
using env-based proxy configuration in awsutil
([#&#8203;46892](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46892))
When no explicit proxy\_address was configured, the HTTP client manually
read HTTPS\_PROXY
and used http.ProxyURL which ignores NO\_PROXY. Now delegates to
http.ProxyFromEnvironment
  which correctly handles all proxy environment variables.

- `processor/deltatorate`: Append "/s" to the unit of output datapoints
to reflect the per-second rate.
([#&#8203;46841](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46841))

- `processor/filter`: Fix validation of include and exclude severity
configurations so they run independently of LogConditions.
([#&#8203;46883](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46883))

- `receiver/datadog`: Propagate Datadog trace sampling priority to all
spans translated from a trace chunk.
([#&#8203;45402](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/45402))

- `receiver/file_log`: Fix data corruption after file compression
([#&#8203;46105](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46105))
After a log file is compressed (e.g. test.log → test.log.gz), the
receiver configured with `compression: auto` will now correctly
decompress the content and continue reading from where the plaintext
file left off.

- `receiver/file_log`: Fixes bug where File Log receiver did not read
the last line of gzip compressed files.
([#&#8203;45572](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/45572))

- `receiver/hostmetrics`: Align HugePages metric instrument types with
the semantic conventions by emitting page\_size, reserved, and surplus
as non-monotonic sums instead of gauges.
([#&#8203;42650](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/42650))

- `receiver/hostmetrics`: Handle nil PageFaultsStat in process scraper
to prevent panic on zombie processes.
([#&#8203;47095](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47095))

- `receiver/journald`: Fix emitting of historical entries on startup
([#&#8203;46556](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46556))
When start\_at is "end" (the default), pass --lines=0 to journalctl to
suppress
  the 10 historical entries it emits by default in follow mode.

- `receiver/k8s_events`: Exclude DELETED watch events to prevent
duplicate event ingestion.
([#&#8203;47035](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47035))

- `receiver/mysql`: Remove deprecated `information_schema.processlist`
JOIN from query samples template; use `thread.processlist_host` instead.
([#&#8203;47041](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47041))

- `receiver/oracledb`: Fix oracledbreceiver aborting entire scrape when
a SQL query text fails to obfuscate (e.g. due to Oracle truncating a
CLOB mid-string-literal). The affected entry is now skipped with a
warning log and the rest of the scrape continues normally.
([#&#8203;47151](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47151))

- `receiver/otelarrow`: Remove assumed positions of otel arrow root
payload types
([#&#8203;46878](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46878))

- `receiver/otelarrow`: Fix OTLP fallback handlers returning
codes.Unknown instead of codes.Unavailable for pipeline errors, causing
upstream exporters to permanently drop data instead of retrying.
([#&#8203;46182](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46182))

- `receiver/pprof`: Fixes pprofreceiver file\_scrapper appending
resource profiles instead of merging them.
([#&#8203;46991](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46991))

- `receiver/prometheus_remote_write`: Count target\_info samples in PRW
response stats
([#&#8203;47108](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47108))

<!-- previous-version -->

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

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

##### 🛑 Breaking changes 🛑

- `all`: Removes the k8slog receiver after being unmaintained for 3
months
([#&#8203;46544](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46544))

- `all`: Remove deprecated SAPM exporter
([#&#8203;46555](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46555))

- `all`: Remove the datadogsemantics processor.
([#&#8203;46893](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46893))
If you need help, please contact Datadog support:
<https://www.datadoghq.com/support>.

- `exporter/google_cloud_storage`: `reuse_if_exists` behavior changed:
now checks bucket existence instead of attempting creation
([#&#8203;45971](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/45971))
Previously, `reuse_if_exists=true` would attempt bucket creation and
fall back to reusing on conflict.
Now, `reuse_if_exists=true` checks if bucket exists (via
storage.buckets.get) and uses it, failing if it doesn't exist.
Set to true when the service account lacks project-level bucket creation
permissions but has bucket-level permissions.
`reuse_if_exists=false` still attempts to create the bucket and fails if
it already exists.

- `exporter/kafka`: Remove deprecated top-level `topic` and `encoding`
configuration fields
([#&#8203;46916](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46916))
The top-level `topic` and `encoding` fields were deprecated in v0.124.0.
  Use the per-signal fields instead: `logs::topic`, `metrics::topic`,
  `traces::topic`, `profiles::topic`, and the corresponding `encoding`
  fields under each signal section.

- `exporter/kafka`: Remove kafka-local batching partitioner wiring and
require explicit `sending_queue::batch::partition::metadata_keys`
configuration as a superset of `include_metadata_keys` when batching is
enabled.
([#&#8203;46757](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46757))

- `pkg/ottl`: `truncate_all` function now supports UTF-8 safe truncation
([#&#8203;36713](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/36713))
The default `truncate_all` behavior has changed. Truncation now respects
UTF-8 character boundaries by default (new optional parameter
`utf8_safe`, default: `true`), so results stay valid UTF-8 and may be
slightly shorter than the limit.
To keep the previous byte-level truncation behavior (e.g. for non-UTF-8
data or to avoid any behavior change), set `utf8_safe` to `false` in all
`truncate_all` usages.

- `receiver/awsecscontainermetrics`: Add ephemeral storage metrics and
fix unit strings from Megabytes to MiB
([#&#8203;46414](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46414))
Adds two new task-level gauge metrics:
`ecs.task.ephemeral_storage.utilized` and
`ecs.task.ephemeral_storage.reserved` (in MiB).
These metrics are available on AWS Fargate Linux platform version 1.4.0+
and represent the shared ephemeral storage for the entire task.

**Breaking change:** The unit string for `ecs.task.memory.utilized`,
`ecs.task.memory.reserved`,
`container.memory.utilized`, and `container.memory.reserved` has been
corrected from `"Megabytes"` to `"MiB"`.
The underlying values were already in MiB (computed via division by
1024\*1024), but the unit label was incorrect.
Users relying on the exact unit string (e.g. in metric filters or
dashboards) will need to update accordingly.

- `receiver/mysql`: Set the default collection of query\_sample to false
([#&#8203;46902](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46902))

- `receiver/postgresql`: Disable default collection of top\_query and
query\_sample events.
([#&#8203;46843](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46843))
This change is breaking because it disables the default collection of
top\_query and query\_sample events. These events will need to be
enabled manually if desired.

- `receiver/redfish`: `system.host_name` and `base_url` resource
attribute has been changed to `host.name` and `url.full` respectively.

([#&#8203;46236](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46236))

- `receiver/windowseventlog`: Change event\_data from an array of
single-key maps to a flat map by default, making fields directly
accessible via OTTL. The previous format is available by setting
`event_data_format: array`.
([#&#8203;42565](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/42565),
[#&#8203;32952](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/32952))
Named <Data> elements become direct keys (e.g.,
body\["event\_data"]\["ProcessId"]).
  Anonymous <Data> elements use numbered keys: param1, param2, etc.
To preserve the previous array format, set event\_data\_format: array in
the receiver configuration.

##### 🚩 Deprecations 🚩

- `exporter/azure_blob`: Introduce new snake case compliant name
`azure_blob`
([#&#8203;46722](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46722))
- `exporter/google_cloud_storage`: Introduce new snake case compliant
name `google_cloud_storage`
([#&#8203;46733](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46733))
- `extension/aws_logs_encoding`: Introduce new snake case compliant name
`aws_logs_encoding`
([#&#8203;46776](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46776))
- `extension/azure_auth`: Introduce new snake case compliant name
`azure_auth`
([#&#8203;46775](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46775))
- `extension/cgroup_runtime`: Introduce new snake case compliant name
`cgroup_runtime`
([#&#8203;46773](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46773))
- `extension/google_cloud_logentry_encoding`: Introduce new snake case
compliant name `google_cloud_logentry_encoding`
([#&#8203;46778](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46778))
- `processor/metric_start_time`: Introduce new snake case compliant name
`metric_start_time`
([#&#8203;46777](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46777))
- `receiver/azure_blob`: Introduce new snake case compliant name
`azure_blob`
([#&#8203;46721](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46721))
- `receiver/azure_monitor`: Introduce new snake case compliant name
`azure_monitor`
([#&#8203;46730](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46730))
- `receiver/cisco_os`: Introduce new snake case compliant name
`cisco_os`
([#&#8203;46948](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46948))
- `receiver/macos_unified_logging`: Introduce new snake case compliant
name `macos_unified_logging`
([#&#8203;46729](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46729))
- `receiver/prometheus_remote_write`: Introduce new snake case compliant
name `prometheus_remote_write`
([#&#8203;46726](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46726))
- `receiver/yang_grpc`: Introduce new snake case compliant name
`yang_grpc`
([#&#8203;46723](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46723))

##### 🚀 New components 🚀

- `receiver/azure_functions`: Introduce new component to receive logs
from Azure Functions
([#&#8203;43507](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/43507))
This change includes only overall structure, readme and configuration
for the new component.

##### 💡 Enhance

</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-contrib).

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

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

No open projects

Development

Successfully merging this pull request may close these issues.

[Prometheus and OpenMetrics] Handle scheme URL and scope attributes as identifying

9 participants