Skip to content

prw2: Implement 2.0-rc.4 spec changes; Rename to Start Timestamp#17411

Merged
bwplotka merged 1 commit intomainfrom
prw2st
Nov 17, 2025
Merged

prw2: Implement 2.0-rc.4 spec changes; Rename to Start Timestamp#17411
bwplotka merged 1 commit intomainfrom
prw2st

Conversation

@bwplotka
Copy link
Member

@bwplotka bwplotka commented Oct 28, 2025

Relates to
#16944 (comment)

Implements the latest spec (breaking) update to match the 2.0-rc.4 remote write.

Previous discussions for the same change, but without rename: #17036

Devsummit consensus on naming.

Does this PR introduce a user-facing change?

[CHANGE] Remote-write (breaking receiving 2.0 change): Update the experimental Remote Write 2.0 flow the 2.0-rc.4 spec; notably "created timestamp" (CT) is now called "start timestamp" (ST) and is moved from TimeSeries message to Sample message. 

@bwplotka bwplotka force-pushed the prw2st branch 2 times, most recently from 9262d5a to 0865fa1 Compare October 28, 2025 12:39
bwplotka added a commit to prometheus/docs that referenced this pull request Oct 28, 2025
Given the recent movement for Prometheus native support of ST
([PROM-60](prometheus/proposals#60)) and plans
for delta temporality
([PROM-48](prometheus/proposals#48)) it might be
beneficial to make (hopefully) last change to Remote Write 2.0 before
stabilizing, so:

* Raname Created Timestamp to Start Timestamp
* Move CT/ST from TimeSeries to Sample and Histogram messages.
* Clarified optionality (0 value meaning unset)

See implementation change that will follow:
prometheus/prometheus#17411. Notice that only
receiver part was implemented for CT/ST. Given no sending part was done
we expect this feature (ST/CT) not being used, thus breakage impact is
minimal. This has been confirmed with early adopters like Mimir
(Grafana), Chronosphere, Thanos, Cortex and Google.

See previous discussions and 3 expilcit approvals:
prometheus/prometheus#17036

Additionally:
* I updated link to proto
* Updated links to new compliance tests
* Update native histogram spec link

Signed-off-by: bwplotka <bwplotka@gmail.com>
@bwplotka bwplotka marked this pull request as ready for review October 28, 2025 13:12
@bwplotka
Copy link
Member Author

Rdy to go, lint error is expected we break on purpose.

@krajorama krajorama self-requested a review November 4, 2025 12:10
Copy link
Member

@krajorama krajorama left a comment

Choose a reason for hiding this comment

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

I think the doc for --enable-feature=created-timestamp-zero-ingestion should be updated, since that's user facing to spread the info. The flag itself can stay as we'll just remove it in favor of some config option I expect later.

There's also many more places where the CT is used, but I guess we'll tackle those over time.

@ArthurSens
Copy link
Member

cc @perebaj, there's no action needed for you (unless you also want to review the PR 😛)

just wanted to make sure you're aware because there will be a small change in the remote-write receiver

@perebaj
Copy link
Contributor

perebaj commented Nov 4, 2025

cc @perebaj, there's no action needed for you (unless you also want to review the PR 😛)

just wanted to make sure you're aware because there will be a small change in the remote-write receiver

Nice, do you think that we should create an issue on OTEL to track this change?

bwplotka added a commit to prometheus/docs that referenced this pull request Nov 4, 2025
…ST (Start Timestamp) (#2762)

* prw2(breaking): Move 2.0 CT to Sample; Rename to ST (Start Timestamp)

Given the recent movement for Prometheus native support of ST
([PROM-60](prometheus/proposals#60)) and plans
for delta temporality
([PROM-48](prometheus/proposals#48)) it might be
beneficial to make (hopefully) last change to Remote Write 2.0 before
stabilizing, so:

* Raname Created Timestamp to Start Timestamp
* Move CT/ST from TimeSeries to Sample and Histogram messages.
* Clarified optionality (0 value meaning unset)

See implementation change that will follow:
prometheus/prometheus#17411. Notice that only
receiver part was implemented for CT/ST. Given no sending part was done
we expect this feature (ST/CT) not being used, thus breakage impact is
minimal. This has been confirmed with early adopters like Mimir
(Grafana), Chronosphere, Thanos, Cortex and Google.

See previous discussions and 3 expilcit approvals:
prometheus/prometheus#17036

Additionally:
* I updated link to proto
* Updated links to new compliance tests
* Update native histogram spec link

Signed-off-by: bwplotka <bwplotka@gmail.com>

* Update docs/specs/prw/remote_write_spec_2_0.md

Co-authored-by: George Krajcsovits <krajorama@users.noreply.github.com>
Signed-off-by: Bartlomiej Plotka <bwplotka@gmail.com>

* Update docs/specs/prw/remote_write_spec_2_0.md

Signed-off-by: Bartlomiej Plotka <bwplotka@gmail.com>

---------

Signed-off-by: bwplotka <bwplotka@gmail.com>
Signed-off-by: Bartlomiej Plotka <bwplotka@gmail.com>
Co-authored-by: George Krajcsovits <krajorama@users.noreply.github.com>
Comment on lines +81 to +83
// This field is reserved for backward compatibility with the deprecated fields;
// previously present in the experimental remote write period.
reserved 6;
Copy link
Member

Choose a reason for hiding this comment

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

the buf linter is still unhappy here for some reason?

Copy link
Member Author

Choose a reason for hiding this comment

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

Yea, I think it just does not support this

Copy link
Member Author

Choose a reason for hiding this comment

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

I started drafting issue on buf action, but it looks it's strict to the point of JSON and coding API compatibility (https://github.com/bufbuild/buf-breaking-action). Also this action is deprecated, there's something newer.

It's breaking coding API (by design), so I'd say error is expected here.

Copy link
Member

Choose a reason for hiding this comment

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

What's the newer action? If it also does not support field removal but via reserved field we should consider opening a PR for that upstream.

Copy link
Member Author

Choose a reason for hiding this comment

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

Again, it's not a bug in their eyes because they consider a coding API change, a breaking change.

We could create an issue for a mode that only cares about network API for sure 👍🏽

@bwplotka
Copy link
Member Author

bwplotka commented Nov 12, 2025

Ok, most of the reviewers press me to rename all instances of CT to start time in this PR.

I can't do this in one commit guys (RW2 update and rename). It's just against all best practices (imagine reverts later). But I can do 2 commits for it. Will do this week (:

bwplotka added a commit that referenced this pull request Nov 13, 2025
Partially fixes #17416 by
renaming all CT* names to ST* in the whole codebase except RW2 (this is
done in separate
[PR](#17411)) and
PrometheusProto exposition proto.

```
CreatedTimestamp -> StartTimestamp
CreatedTimeStamp -> StartTimestamp
created_timestamp -> start_timestamp
CT -> ST
ct -> st

```

Signed-off-by: bwplotka <bwplotka@gmail.com>
bwplotka added a commit that referenced this pull request Nov 13, 2025
Partially fixes #17416 by
renaming all CT* names to ST* in the whole codebase except RW2 (this is
done in separate
[PR](#17411)) and
PrometheusProto exposition proto.

```
CreatedTimestamp -> StartTimestamp
CreatedTimeStamp -> StartTimestamp
created_timestamp -> start_timestamp
CT -> ST
ct -> st

```

Signed-off-by: bwplotka <bwplotka@gmail.com>
bwplotka added a commit that referenced this pull request Nov 13, 2025
Partially fixes #17416 by
renaming all CT* names to ST* in the whole codebase except RW2 (this is
done in separate
[PR](#17411)) and
PrometheusProto exposition proto.

```
CreatedTimestamp -> StartTimestamp
CreatedTimeStamp -> StartTimestamp
created_timestamp -> start_timestamp
CT -> ST
ct -> st

```

Signed-off-by: bwplotka <bwplotka@gmail.com>
bwplotka added a commit that referenced this pull request Nov 13, 2025
Partially fixes #17416 by
renaming all CT* names to ST* in the whole codebase except RW2 (this is
done in separate
[PR](#17411)) and
PrometheusProto exposition proto.

```
CreatedTimestamp -> StartTimestamp
CreatedTimeStamp -> StartTimestamp
created_timestamp -> start_timestamp
CT -> ST
ct -> st

```

Signed-off-by: bwplotka <bwplotka@gmail.com>
@bwplotka
Copy link
Member Author

Let's do a full rename and THEN change PRW2.

Full rename (except protos) #17523

bwplotka added a commit that referenced this pull request Nov 13, 2025
Partially fixes #17416 by
renaming all CT* names to ST* in the whole codebase except RW2 (this is
done in separate
[PR](#17411)) and
PrometheusProto exposition proto.

```
CreatedTimestamp -> StartTimestamp
CreatedTimeStamp -> StartTimestamp
created_timestamp -> start_timestamp
CT -> ST
ct -> st

```

Signed-off-by: bwplotka <bwplotka@gmail.com>
bwplotka added a commit that referenced this pull request Nov 13, 2025
Partially fixes #17416 by
renaming all CT* names to ST* in the whole codebase except RW2 (this is
done in separate
[PR](#17411)) and
PrometheusProto exposition proto.

```
CreatedTimestamp -> StartTimestamp
CreatedTimeStamp -> StartTimestamp
created_timestamp -> start_timestamp
CT -> ST
ct -> st

```

Signed-off-by: bwplotka <bwplotka@gmail.com>
matt-gp pushed a commit to matt-gp/prometheus that referenced this pull request Nov 22, 2025
…timestamp) (prometheus#17411)

Relates to
prometheus#16944 (comment)

Signed-off-by: bwplotka <bwplotka@gmail.com>
Signed-off-by: matt-gp <small_minority@hotmail.com>
matt-gp pushed a commit to matt-gp/prometheus that referenced this pull request Nov 22, 2025
…timestamp) (prometheus#17411)

Relates to
prometheus#16944 (comment)

Signed-off-by: bwplotka <bwplotka@gmail.com>
Signed-off-by: matt-gp <small_minority@hotmail.com>
matt-gp pushed a commit to matt-gp/prometheus that referenced this pull request Nov 22, 2025
…timestamp) (prometheus#17411)

Relates to
prometheus#16944 (comment)

Signed-off-by: bwplotka <bwplotka@gmail.com>
Signed-off-by: matt-gp <small_minority@hotmail.com>
matt-gp pushed a commit to matt-gp/prometheus that referenced this pull request Nov 22, 2025
…timestamp) (prometheus#17411)

Relates to
prometheus#16944 (comment)

Signed-off-by: bwplotka <bwplotka@gmail.com>
Signed-off-by: matt-gp <small_minority@hotmail.com>
matt-gp pushed a commit to matt-gp/prometheus that referenced this pull request Nov 25, 2025
…timestamp) (prometheus#17411)

Relates to
prometheus#16944 (comment)

Signed-off-by: bwplotka <bwplotka@gmail.com>
Signed-off-by: matt-gp <small_minority@hotmail.com>
matt-gp pushed a commit to matt-gp/prometheus that referenced this pull request Nov 25, 2025
…timestamp) (prometheus#17411)

Relates to
prometheus#16944 (comment)

Signed-off-by: bwplotka <bwplotka@gmail.com>
Signed-off-by: matt-gp <small_minority@hotmail.com>
matt-gp pushed a commit to matt-gp/prometheus that referenced this pull request Nov 25, 2025
…timestamp) (prometheus#17411)

Relates to
prometheus#16944 (comment)

Signed-off-by: bwplotka <bwplotka@gmail.com>
Signed-off-by: matt-gp <small_minority@hotmail.com>
songy23 pushed a commit to open-telemetry/opentelemetry-collector-contrib that referenced this pull request Dec 12, 2025
## Summary

This PR upgrades the `github.com/prometheus/prometheus` dependency from
v0.307.3 to v0.308.0.

## Changes Made

#### Fixed `RemoteWriteProtoMsg` unrecognized

In prometheus/prometheus v0.308.0, the remote write protocol message
types were moved from `github.com/prometheus/prometheus/config` to
`github.com/prometheus/client_golang/exp/api/remote` as part of
[prometheus/prometheus#17197](prometheus/prometheus#17197).

#### Fixed `CreatedTimestamp` → `StartTimestamp`

In
[prometheus/prometheus#17411](prometheus/prometheus#17411),
the Remote Write 2.0 spec was updated to 2.0-rc.4. The
`CreatedTimestamp` field was renamed to `StartTimestamp` and moved from
`TimeSeries` to individual `Sample` and `Histogram` messages.

#### Fixed not enough arguments in`api_v1.NewAPI` 

The `api_v1.NewAPI` function signature changed due to
[prometheus/prometheus#17470](prometheus/prometheus#17470)
- Added `appendMetadata bool` parameter for remote write metadata
handling. Added the new parameter `appendMetadata = false` -
prometheusreceiver scrapes targets, doesn't receive remote write
requests

## Remaining Issues

### `EnableNativeHistogramsIngestion` removed from `scrape.Options`

There's one change in this upgrade that I'd love to get the community's
input on before finalizing.

In
[prometheus/prometheus#17315](prometheus/prometheus#17315),
Prometheus removed the `EnableNativeHistogramsIngestion` field from
`scrape.Options`. Native histogram ingestion is now controlled through
the Prometheus scrape config option `scrape_native_histograms` rather
than programmatically.

This creates an interesting situation for us. Currently, we have the
feature gate `receiver.prometheusreceiver.EnableNativeHistograms` that
controls whether native histograms are converted to OTel exponential
histograms. But with this Prometheus change, the *ingestion* of native
histograms during scraping is now a separate concern controlled by
Prometheus config.

I see two paths forward here. We could automatically inject
`scrape_native_histograms: true` into the scrape config whenever our
feature gate is enabled, preserving the current behavior where enabling
the feature gate is all users need to do. Alternatively, we could simply
remove the line and require users to configure
`scrape_native_histograms: true` in their Prometheus scrape config
themselves, which is more explicit but adds an extra configuration step.

What do you think? I'm also wondering if this constitutes a breaking
change that should be called out in the changelog. Would appreciate any
thoughts!

---------

Signed-off-by: Arthur Silva Sens <arthursens2005@gmail.com>
matt-gp pushed a commit to matt-gp/prometheus that referenced this pull request Dec 19, 2025
…timestamp) (prometheus#17411)

Relates to
prometheus#16944 (comment)

Signed-off-by: bwplotka <bwplotka@gmail.com>
Signed-off-by: matt-gp <small_minority@hotmail.com>
matt-gp pushed a commit to matt-gp/prometheus that referenced this pull request Dec 19, 2025
…timestamp) (prometheus#17411)

Relates to
prometheus#16944 (comment)

Signed-off-by: bwplotka <bwplotka@gmail.com>
Signed-off-by: matt-gp <small_minority@hotmail.com>
matt-gp pushed a commit to matt-gp/prometheus that referenced this pull request Dec 19, 2025
…timestamp) (prometheus#17411)

Relates to
prometheus#16944 (comment)

Signed-off-by: bwplotka <bwplotka@gmail.com>
Signed-off-by: matt-gp <small_minority@hotmail.com>
matt-gp pushed a commit to matt-gp/prometheus that referenced this pull request Dec 19, 2025
…timestamp) (prometheus#17411)

Relates to
prometheus#16944 (comment)

Signed-off-by: bwplotka <bwplotka@gmail.com>
Signed-off-by: matt-gp <small_minority@hotmail.com>
codeboten pushed a commit to open-telemetry/opentelemetry-collector-contrib that referenced this pull request Dec 23, 2025
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/internal/coreinternal](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib)
| `v0.141.0` -> `v0.142.0` |
![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fopen-telemetry%2fopentelemetry-collector-contrib%2finternal%2fcoreinternal/v0.142.0?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fopen-telemetry%2fopentelemetry-collector-contrib%2finternal%2fcoreinternal/v0.141.0/v0.142.0?slim=true)
|
|
[github.com/open-telemetry/opentelemetry-collector-contrib/internal/splunk](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib)
| `v0.141.0` -> `v0.142.0` |
![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fopen-telemetry%2fopentelemetry-collector-contrib%2finternal%2fsplunk/v0.142.0?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fopen-telemetry%2fopentelemetry-collector-contrib%2finternal%2fsplunk/v0.141.0/v0.142.0?slim=true)
|

---

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

---

### Release Notes

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

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

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

##### 🛑 Breaking changes 🛑

- `all`: It's recommended to change the field type in your component
configuration to be
`configoptional.Optional[exporterhelper.QueueBatchConfig]` to keep the
`enabled` subfield. Use
configoptional.Some(exporterhelper.NewDefaultQueueConfig()) to enable by
default. Use
configoptional.Default(exporterhelper.NewDefaultQueueConfig()) to
disable by default.
([#&#8203;44320](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44320))

- `exporter/datadog`: Update the Datadog exporter to support the
Orchestrator Explorer by accepting receiver/k8sobjects logs and sending
Kubernetes data to the Datadog endpoint.
([#&#8203;44523](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44523))
The Cluster name field in Orchestrator Explorer Configuration has been
removed. Use the k8s.cluster.name attribute instead.

- `exporter/prometheusremotewrite`: Updated to Remote Write 2.0 spec
rc.4, requiring Prometheus 3.8.0 or later as the receiving endpoint.
([#&#8203;44861](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44861))
The upstream Prometheus library updated the Remote Write 2.0 protocol
from rc.3 to rc.4 in

[prometheus/prometheus#17411](https://redirect.github.com/prometheus/prometheus/issues/17411).
This renamed `CreatedTimestamp` to `StartTimestamp` and moved it
from the `TimeSeries` message to individual `Sample` and `Histogram`
messages. This is a
wire-protocol incompatibility, so if you are exporting to a Prometheus
server, you must upgrade
  it to version 3.8.0 or later to receive data from this exporter.

- `extension/googlecloudlogentry_encoding`: Parse External Application
Load Balancer logs into log record attributes instead of placing it in
the body as is.
([#&#8203;44438](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44438))

- `pkg/stanza`: Allow `max_batch_size` of 0 for unlimited batching in
`recombine` operator
([#&#8203;43982](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/43982))
The recombine operator now supports setting `max_batch_size: 0` to
disable batch size limits.
This allows unlimited batching, letting entries be combined based only
on `max_log_size` and matching conditions.
If you have `max_batch_size: 0` in your config and want to keep the
behavior unchanged, change the configuration to `max_batch_size: 1`.

- `processor/cumulativetodelta`: Change default `max_staleness` from 0
(infinite) to 1 hour
([#&#8203;44427](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44427))
The processor now defaults to a `max_staleness` of 1 hour instead of 0
(infinite retention).
This prevents unbounded memory growth in long-running collector
instances, especially when tracking metrics with high cardinality or
frequently changing attribute values.
To restore the previous behavior of infinite retention, explicitly set
`max_staleness: 0` in your configuration.

- `processor/resourcedetection`: Promote
`processor.resourcedetection.propagateerrors` feature gate to beta
([#&#8203;44609](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44609))

- `processor/resourcedetection`: Remove deprecated `attributes`
configuration option
([#&#8203;44610](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44610))

- `receiver/awss3`: Remove the `s3_partition` config option in favor of
`s3_partition_format` and `s3_partition_timezone` options. This aligns
the S3 receiver more closely with the S3 Exporter. Also add the ability
to include or exclude the telemetry type from the file prefix using the
`file_prefix_include_telemetry_type` option.
([#&#8203;43720](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/43720))

- `receiver/docker_stats`: Upgrades default Docker API version to 1.44
to be compatible with recent Docker Engine versions.
([#&#8203;44279](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44279))
Users requiring an older Docker API version can set the `api_version` in
the docker stats receiver config. The minimum supported API level is not
changed, only default.

- `receiver/filelog`: Move `filelog.decompressFingerprint` to stable
stage
([#&#8203;44570](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44570))

- `receiver/prometheus`: Promote the
receiver.prometheusreceiver.RemoveStartTimeAdjustment feature gate to
stable and remove in-receiver metric start time adjustment in favor of
the metricstarttime processor, including disabling the created-metric
feature gate.
([#&#8203;44180](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44180))
Previously, users could disable the RemoveStartTimeAdjustment feature
gate to temporarily keep the legacy start time adjustment behavior in
the Prometheus receiver.
With this promotion to stable and bounded registration, that gate can no
longer be disabled; the receiver will no longer set StartTime on metrics
based on process\_start\_time\_seconds, and users should migrate to the
metricstarttime processor for equivalent functionality.
This change also disables the
receiver.prometheusreceiver.UseCreatedMetric feature gate, which
previously used the `<metric>_created` series to derive start timestamps
for counters, summaries, and histograms when scraping non OpenMetrics
protocols.
However, this does not mean that the `_created` series is always
ignored: when using the OpenMetrics 1.0 protocol, Prometheus itself
continues to interpret the `_created` series as the start timestamp, so
only the receiver-side handling for other scrape protocols has been
removed.

- `receiver/prometheus`: Native histogram scraping and ingestion is now
controlled by the scrape configuration option
`scrape_native_histograms`.
([#&#8203;44861](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44861))
The feature gate `receiver.prometheusreceiver.EnableNativeHistograms` is
now stable and enabled by default.
Native histograms scraped from Prometheus will automatically be
converted to OpenTelemetry exponential histograms.

To enable scraping of native histograms, you must configure
`scrape_native_histograms: true` in your Prometheus
scrape configuration (either globally or per-job). Additionally, the
protobuf scrape protocol must be enabled
  by setting `scrape_protocols` to include `PrometheusProto`.

- `receiver/prometheusremotewrite`: Updated to Remote Write 2.0 spec
rc.4, requiring Prometheus 3.8.0 or later
([#&#8203;44861](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44861))
The upstream Prometheus library updated the Remote Write 2.0 protocol
from rc.3 to rc.4 in

[prometheus/prometheus#17411](https://redirect.github.com/prometheus/prometheus/issues/17411).
This renamed `CreatedTimestamp` to `StartTimestamp` and moved it
from the `TimeSeries` message to individual `Sample` and `Histogram`
messages. This is a
wire-protocol incompatibility, so Prometheus versions 3.7.x and earlier
will no longer work
correctly with this receiver. Please upgrade to Prometheus 3.8.0 or
later.

##### 🚩 Deprecations 🚩

- `processor/k8sattributes`: Removes stable
k8sattr.fieldExtractConfigRegex.disallow feature gate
([#&#8203;44694](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44694))

- `receiver/kafka`: Deprecate `default_fetch_size` parameter for
franz-go client
([#&#8203;43104](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/43104))
The `default_fetch_size` parameter is now deprecated for the franz-go
Kafka client and will only be used with the legacy Sarama client.
  Users should configure `max_fetch_size` instead when using franz-go.
  This deprecation is marked as of v0.142.0.

- `receiver/kafka`: Support configuring a list of topics and
exclude\_topics; deprecate topic and exclude\_topic
([#&#8203;44477](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44477))

- `receiver/prometheus`: Deprecate `use_start_time_metric` and
`start_time_metric_regex` config in favor of the processor
`metricstarttime`
([#&#8203;44180](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44180))

##### 🚀 New components 🚀

- `receiver/yanggrpc`: Implement the YANG/gRPC receiver
([#&#8203;43840](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/43840))

##### 💡 Enhancements 💡

- `exporter/elasticsearch`: add dynamic data stream routing for
connectors
([#&#8203;44525](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44525))

- `exporter/kafka`: Adds server.address attribute to all Kafka exporter
metrics.
([#&#8203;44649](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44649))

- `exporter/prometheusremotewrite`: Add option to remove `service.name`,
`service.instance.id`, `service.namespace` ResourceAttribute from
exported metrics
([#&#8203;44567](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44567))

- `exporter/signalfx`: Support setting default properties for dimension
updates to be set lazily as part of configuration
([#&#8203;44891](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44891))

- `extension/azure_encoding`: Implement general Azure Resource Log
parsing functionality
([#&#8203;41725](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/41725))

- `extension/datadog`: Datadog Extension users may view and manage OTel
Collectors in Fleet Automation.
([#&#8203;44666](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44666))
Interested users should read [the post on the Datadog Monitor
blog](https://www.datadoghq.com/blog/manage-opentelemetry-collectors-with-datadog-fleet-automation/)
and fill out the preview intake form listed there.

- `extension/datadog`: Adds deployment\_type configuration option to the
Datadog Extension.
([#&#8203;44430](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44430))
Users may specify the deployment type of the collector in Datadog
Extension configuration to view in Datadog app.
If the collector is deployed as a gateway (i.e. receiving pipeline
telemetry from multiple hosts/sources),
  user should specify "gateway" as the deployment type.
If the collector is deployed as a daemonset/agent, user should specify
"daemonset" as the deployment type.
  The default setting is "unknown" if not set.

- `extension/datadog`: Adds standard (non-billed) liveness metric
`otel.datadog_extension.running` to ensure host data is shown in Datadog
app.
([#&#8203;44285](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44285))

- `extension/googlecloudlogentry_encoding`: Add support for GCP VPC Flow
Log fields for MIG (Managed Instance Group) and Google Service logs.
([#&#8203;44220](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44220))
  Adds support for the following GCP VPC Flow Log fields:
- Add support for
gcp.vpc.flow.{source,destination}.google\_service.{type,name,connectivity}
- Add support for
gcp.vpc.flow.{source,destination}.instance.managed\_instance\_group.{name,region,zone}

- `extension/health_check`: Added
extension.healthcheck.useComponentStatus feature gate to enable v2
component status reporting in healthcheckextension while maintaining
backward compatibility by default.
([#&#8203;42256](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/42256))

- `pkg/ottl`: Accept string trace/span/profile IDs for `TraceID()`,
`SpanID()`, and `ProfileID()` in OTTL.
([#&#8203;43429](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/43429))
This change allows for a more straightforward use of string values to
set trace, span, and profile IDs in OTTL.

- `pkg/stanza`: New featuregate `filelog.windows.caseInsensitive`
introduced. It will make glob matching is case-insensitive on Windows.
([#&#8203;40685](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/40685))
Previously, any `include` pattern that included some manner of wildcard
(`*` or `**`) would
be case-sensitive on Windows, but Windows filepaths are by default
case-insensitive. This meant
that in a directory with the files `a.log` and `b.LOG`, the pattern
`*.log` would previously only
match `a.log`. With the `filelog.windows.caseInsensitive` featuregate
enabled, it will match both `a.log`
and `b.LOG` when on Windows. The behaviour is the same as always on
other operating systems, as all other
currently supported platforms for the Collector have case-sensitive
filesystems.

- `pkg/translator/azurelogs`: Added support for Activity Logs
Recommendation category
([#&#8203;43220](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/43220))

- `processor/k8sattributes`: Updates semconv version to v1.37.0
([#&#8203;44696](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44696))

- `processor/resourcedetection`: Add support for dynamic refresh
resource attributes with refresh\_interval parameter
([#&#8203;42663](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/42663))

- `processor/resourcedetection`: Update semconv dependency to 1.37.0
which updates the schema url in the data, but no other impact is
expected.
([#&#8203;44726](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44726))

- `processor/transform`: New Transform Processor function
`set_semconv_span_name()` to overwrite the span name with the semantic
conventions for HTTP, RPC, messaging, and database spans.
([#&#8203;43124](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/43124))
  In other cases, the original `span.name` is unchanged.
  The primary use of `set_semconv_span_name()` is alongside the
[Span Metrics
Connector](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/connector/spanmetricsconnector)
to address high-cardinality issues in span metrics when `span.name` does
not comply with the OTel requirement
  that span names be low cardinality.

- `receiver/azuremonitor`: Scrape storage account sub types
([#&#8203;37220](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/37220))

- `receiver/datadog`: Improve the compliance with OTel Semantic
Conventions for RPC spans in the Datadog receiver.
([#&#8203;44671](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44671))
Compliance improvements on spans received via the Datadog receiver when
applicable:
  - Set span name according to RPC conventions.
  - Set `rpc.method` and `rpc.service` attributes.

- `receiver/datadog`: Bump OTel Semantic Conventions from v1.30.0 to
v1.37.0 in the Datadog receiver.
([#&#8203;44671](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44671))
Changes in OTel Semantic Conventions v1.37.0 affecting the Datadog
receiver:
- The Datadog tag `runtime` is now mapped to the OTel attribute
`container.runtime.name` instead of `container.runtime`.

- `receiver/datadog`: Improve the compliance with OTel Semantic
Conventions for AWS SDK spans in the Datadog receiver.
([#&#8203;44723](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44723))
Compliance improvements on spans received via the Datadog receiver when
applicable:
  - Set span name according to AWS SDK conventions.
  - Set `rpc.system`, `rpc.method` and `rpc.service` attributes.

- `receiver/datadog`: Add
`receiver.datadogreceiver.EnableMultiTagParsing` feature gate
([#&#8203;44747](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44747))
The feature flag changes the logic that converts Datadog tags to
OpenTelemetry attributes.
When the flag is enabled, data points that have multiple tags starting
with the same `key:` prefix
will be turned into an attribute slice (instead of a string) containing
all the suffix values.

- `receiver/datadog`: Improve the compliance with OTel Semantic
Conventions for HTTP spans in the Datadog receiver.
([#&#8203;44722](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44722))
Compliance improvements on spans received via the Datadog receiver when
applicable:
Set span name according to HTTP conventions for `web.request` and
`http.request` spans.

- `receiver/github`: Add concurrency limiting to reduce likelihood of
hitting secondary rate limits
([#&#8203;43388](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/43388))
Adds `concurrency_limit` configuration parameter (default: 50) to limit
concurrent repository processing goroutines. This reduces the likelihood
of
getting 502/504 errors when scraping organizations with >100
repositories.

- `receiver/googlecloudpubsub`: Exponential backoff streaming restarts
([#&#8203;44741](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44741))

- `receiver/kafka`: Make `session_timeout`, `heartbeat_interval`,
`max_partition_fetch_size`, and `max_fetch_wait` unconditional in
franz-go consumer
([#&#8203;44839](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44839))

- `receiver/kafka`: Validate that `exclude_topics` entries in
kafkareceiver config are non-empty.
([#&#8203;44920](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44920))

- `receiver/oracledb`: Added independent collection interval config for
Oracle top query metrics collection
([#&#8203;44607](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44607))

- `receiver/prometheusremotewrite`: Map.PutStr causes excessive memory
allocations due to repeated slice expansions
([#&#8203;44612](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44612))

- `receiver/splunk_hec`: Support parsing JSON array payloads in Splunk
HEC receiver
([#&#8203;43941](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/43941))

- `receiver/sshcheck`: Promote sshcheck receiver to beta stability
([#&#8203;41573](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/41573))

- `receiver/yanggrpc`: Promote to alpha stability
([#&#8203;44783](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44783))

##### 🧰 Bug fixes 🧰

- `exporter/elasticsearch`: Fix hostname mapping in Elasticsearch
exporter
([#&#8203;44874](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44874))
- The exporter now supports to map an otel field to an ecs field only if
the ecs field is not already present. This is applied to `host.hostname`
mapping.

- `processor/cumulativetodelta`: Check whether bucket bounds are the
same when verifying whether histograms are comparable
([#&#8203;44793](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44793))

- `processor/cumulativetodelta`: Fix logic handling ZeroThreshold
increases for exponential histograms
([#&#8203;44793](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44793))

- `processor/filter`: Fix context initialization for metric/datapoint
context
([#&#8203;44813](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44813))

- `processor/k8sattributes`: Fix
`k8sattr.labelsAnnotationsSingular.allow` feature gate to affect config
default tag names in addition to runtime extraction
([#&#8203;39774](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/39774))

- `processor/tail_sampling`: Fix a memory leak introduced in 0.141.0 of
the tail sampling processor when not blocking on overflow.
([#&#8203;44884](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44884))

- `receiver/datadog`: The `db.instance` tag of Datadog database client
spans should be mapped to the OTel attribute `db.namespace`, not to
`db.collection.name`.
([#&#8203;44702](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44702))
Compliance improvements on spans received via the Datadog receiver when
applicable:
- The `db.instance` tag is now mapped to the OTel attribute
`db.namespace` instead of `db.collection.name`.
- The `db.sql.table` tag is mapped to the OTel attribute
`db.collection.name`.
- The `db.statement` tag is mapped to the OTel attribute
`db.query.text`.

- `receiver/datadog`: Fix Datadog trace span counting so
otelcol\_receiver\_accepted\_spans is not under-reported
([#&#8203;44865](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44865))
Previously only the last payload's spans were counted, so the
otelcol\_receiver\_accepted\_spans metric could be lower than
otelcol\_exporter\_sent\_spans in pipelines where they should match.

- `receiver/github`: Adds corrections to span kind for GitHub events
when they are tasks.
([#&#8203;44667](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44667))

- `receiver/googlecloudpubsub`: Acknowledge messages at restart
([#&#8203;44706](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44706))
Rewrote the control flow loop so the acknowledgment of messages is more
reliable. At stream restart, the messages
ackIds are resent immediately without an explicit acknowledgment.
Outstanding ackIds are only cleared when the
  acknowledgment is sent successfully.

- `receiver/googlecloudspanner`: Fixed goroutine leaks in ttlcache
lifecycle management and applied modernize linter fixes across multiple
receivers.
([#&#8203;44779](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44779))
- Simplified cache lifecycle management by removing unnecessary
WaitGroup complexity
- Added goleak ignores for ttlcache goroutines that don't stop
immediately after Stop()

- `receiver/kafka`: Use `max_fetch_size` instead of `default_fetch_size`
in franz-go client
([#&#8203;43104](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/43104))
The franz-go Kafka consumer was incorrectly using `default_fetch_size`
(a Sarama-specific setting) instead of `max_fetch_size` when configuring
`kgo.FetchMaxBytes`.
This fix ensures the correct parameter is used and adds validation to
prevent `max_fetch_size` from being less than `min_fetch_size`.
The default value for `max_fetch_size` has been changed from 0
(unlimited) to
[`1048576`](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/commit/1048576)
(1 MiB) to maintain backward compatibility with the previous (incorrect)
behavior.

- `receiver/prometheus`: Fix HTTP response body leak in target allocator
when fetching scrape configs fails
([#&#8203;44921](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44921))
The getScrapeConfigsResponse function did not close resp.Body on error
paths.
  If io.ReadAll or yaml.Unmarshal failed, the response body would leak,
  potentially causing HTTP connection exhaustion.

- `receiver/prometheus`: Fixes yaml marshaling of
prometheus/common/config.Secret types
([#&#8203;44445](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44445))

<!-- previous-version -->

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "on tuesday" (UTC), Automerge - At any
time (no schedule defined).

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

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

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

---

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

---

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

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

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Yang Song <songy23@users.noreply.github.com>
songy23 pushed a commit to open-telemetry/opentelemetry-collector-contrib that referenced this pull request Jan 13, 2026
> **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/pkg/pdatatest](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib)
| `v0.0.0-00010101000000-000000000000` → `v0.143.0` |
![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fopen-telemetry%2fopentelemetry-collector-contrib%2fpkg%2fpdatatest/v0.143.0?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fopen-telemetry%2fopentelemetry-collector-contrib%2fpkg%2fpdatatest/v0.0.0-00010101000000-000000000000/v0.143.0?slim=true)
|
|
[github.com/open-telemetry/opentelemetry-collector-contrib/pkg/xk8stest](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib)
| `v0.0.0-00010101000000-000000000000` → `v0.143.0` |
![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fopen-telemetry%2fopentelemetry-collector-contrib%2fpkg%2fxk8stest/v0.143.0?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fopen-telemetry%2fopentelemetry-collector-contrib%2fpkg%2fxk8stest/v0.0.0-00010101000000-000000000000/v0.143.0?slim=true)
|

---

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

---

### Release Notes

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

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

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

##### 🛑 Breaking changes 🛑

- `connector/servicegraph`: remove deprecated warning log about metrics
exporter logical
([#&#8203;45177](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/45177))

- `extension/googlecloudlogentry_encoding`: Parse Cloud DNS Query logs
into log record attributes instead of placing it in the body as is.
([#&#8203;44561](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44561))

- `processor/tail_sampling`: Add support for caching the policy name
involved in a sampling decision.
([#&#8203;45040](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/45040))
This change allows the `tailsampling.policy` attribute to be set on the
spans in a trace when a sampling decision is cached.

- `receiver/prometheus`: Remove deprecated `use_start_time_metric` and
`start_time_metric_regex` configuration options.
([#&#8203;44180](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44180))
The `use_start_time_metric` and `start_time_metric_regex` configuration
options have been removed after being deprecated in v0.142.0.
Users who have these options set in their configuration will experience
collector startup failures after upgrading.
To migrate, remove these configuration options and use the
`metricstarttime` processor instead for equivalent functionality.

- `receiver/systemd`: Rename `systemd.unit.cpu.time` metric to
`systemd.service.cpu.time`
([#&#8203;44916](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44916))

##### 🚀 New components 🚀

- `cmd/schemagen`: Introduce script that generates configuration schemas
for collector components based on go structs.
([#&#8203;42214](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/42214))
The `schemagen` tool generates schemas for OpenTelemetry Collector
components configuration
by analyzing Go struct definitions. This is preliminary work to support
automatic generation
  of documentation and validation for component configurations.

##### 💡 Enhancements 💡

- `exporter/azureblob`: Add `time_parser_ranges` option to allow
selective time parsing of blob name substrings
([#&#8203;44650](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44650))
The new `time_parser_ranges` configuration allows specifying index
ranges (e.g., `["0-10", "15-25"]`) to control which parts of the blob
name are time-formatted.

- `exporter/coralogix`: Exposed a new field to set
`grpc-accept-encoding`. `gzip` will be used by default.
([#&#8203;45191](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/45191))

- `exporter/coralogix`: Improve log messages when a partial success
happens for traces.
([#&#8203;44926](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44926))
The exporter now provides additional context based on the type of
partial success | returned by the backend. When the backend indicates
issues with the sent data, the error | message is analyzed to identify
and display examples of the problematic data.

- `exporter/elasticsearch`: Add support for extra query parameters to
the outgoing bulk request
([#&#8203;44480](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44480))

- `exporter/kafka`: Make `max_message_bytes` and `flush_max_messages`
unconditional in franz-go producer. Changed `flush_max_messages` default
from 0 to 10000 to match franz-go default.
([#&#8203;44840](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44840))

- `extension/awslogs_encoding`: Enhance VPC flow logs encoding extension
with CloudWatch logs support
([#&#8203;44710](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44710))

- `extension/azure_encoding`: Add processing for AppService, CDN,
FrontDoor and Recommendation logs records
([#&#8203;41725](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/41725))

- `extension/googlecloudlogentry_encoding`: Add support for Passthrough
External and Internal Network Load Balancer logs
([#&#8203;44524](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44524))
Add support for Passthrough External and Internal Network Load Balancer
logs to the Google Cloud log entry encoding extension.
This includes adding support for the new
`gcp.load_balancing.passthrough_nlb` attributes including connection
details,
  bytes/packets sent and received, and RTT measurements.

- `pkg/ottl`: Add `Bool` function for converting values to boolean
([#&#8203;44770](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44770))

- `processor/geoip`: Bump oschwald/geoip2 to v2
([#&#8203;44687](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44687))

- `receiver/awscloudwatch`: Add support for filtering log groups by
account ID.
([#&#8203;38391](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/38391))

- `receiver/awscontainerinsightreceiver`: Component type name renamed
from awscontainerinsightreceiver to awscontainerinsight, controlled by
feature gate receiver.awscontainerinsightreceiver.useNewTypeName.
([#&#8203;44052](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44052))
When the feature gate is enabled, the receiver uses the new type name
`awscontainerinsight` instead of `awscontainerinsightreceiver`.
To enable the new type name, use:
`--feature-gates=+receiver.awscontainerinsightreceiver.useNewTypeName`.

- `receiver/awslambda`: Add support for AWS Lambda receiver to trigger
by CloudWatch logs subscription filters for Lambda
([#&#8203;43504](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/43504))

- `receiver/awslambda`: Add S3 failure replay support to AWS Lambda
receiver
([#&#8203;43504](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/43504))

- `receiver/filelog`: gzip files are auto detected based on their header
([#&#8203;39682](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/39682))

- `receiver/github`: Add `merged_pr_lookback_days` configuration to
limit historical PR queries and reduce API usage
([#&#8203;43388](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/43388))
The `merged_pr_lookback_days` configuration option limits the timeframe
for
which merged pull requests are queried. Set to 0 to fetch all merged
PRs.
  Open PRs are always fetched regardless of this setting.

- `receiver/oracledb`: Add stored procedure information to logs for top
queries and query samples.
([#&#8203;44764](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44764))
The `db.server.top_query` event now includes `oracledb.procedure_id`,
`oracledb.procedure_name`, and `oracledb.procedure_type` attributes.
The `db.server.query_sample` event now includes `oracledb.procedure_id`,
`oracledb.procedure_name`, and `oracledb.procedure_type` attributes.

- `receiver/postgresql`: Added `service.instance.id` resource attribute
for metrics and logs
([#&#8203;43907](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/43907))
  `service.instance.id` is enabled by default.

- `receiver/postgresql`: Add trace propagation support
([#&#8203;44868](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44868))
When `postgresql.application_name` contains a valid W3C `traceparent`,
emitted `db.server.query_sample` logs include `trace_id` and `span_id`
for correlation.

- `receiver/prometheus`: Add
`receiver.prometheusreceiver.RemoveReportExtraScrapeMetricsConfig`
feature gate to disable the `report_extra_scrape_metrics` config option.
([#&#8203;44181](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44181))
When enabled, the `report_extra_scrape_metrics` configuration option is
ignored, and extra scrape metrics are
controlled solely by the
`receiver.prometheusreceiver.EnableReportExtraScrapeMetrics` feature
gate.
This mimics Prometheus behavior where extra scrape metrics are
controlled by a feature flag.

- `receiver/systemd`: Add metric for number of times a service has
restarted.
([#&#8203;45071](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/45071))

- `receiver/windowseventlog`: Improved performance of the Windows Event
Log Receiver
([#&#8203;43195](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/43195))
Previously, the Windows Event Log Receiver could only process events up
to 100 messages per second with default settings.
This was because the receiver would read at most `max_reads` messages
within each configured `poll_interval`, even if
  additional events were already available.

This restriction has been removed. The `poll_interval` parameter behaves
as described in the documentation:
The `poll_interval` parameter now only takes effect after all current
events have been read.

For users who prefer the previous behavior, a new configuration option,
`max_events_per_poll`, has been introduced.

- `receiver/windowseventlog`: Add parsing for Version and Correlation
event fields.
([#&#8203;45018](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/45018))

##### 🧰 Bug fixes 🧰

- `connector/count`: Basic config should emit default metrics
([#&#8203;41769](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/41769))

- `exporter/elasticsearch`: Deduplicate attribute keys from
non-compliant SDKs in otel mapping mode
([#&#8203;39304](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/39304))
The serializer in otel mapping mode now explicitly deduplicates
attribute keys when writing to Elasticsearch,
keeping only the first occurrence. This prevents invalid JSON from being
produced when
  non-compliant SDKs send duplicate keys.

- `exporter/kafka`: Wrap non-retriable errors from franzgo with
consumererror::permanent
([#&#8203;44918](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44918))

- `exporter/loadbalancing`: Fix k8s resolver parsing so loadbalancing
exporter works with service FQDNs
([#&#8203;44472](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44472))

- `pkg/translator/azurelogs`: Fix missing data when ingesting Azure logs
without properties field.
([#&#8203;44222](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44222))

- `receiver/awss3`: Fix data loss when SQS messages contain multiple S3
object notifications and some fail to process
([#&#8203;45153](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/45153))
The SQS notification reader was unconditionally deleting messages after
processing,
even when some S3 object retrievals or callback processing failed. This
caused data
loss when a message contained multiple S3 notification records and any
of them failed.
Messages are now only deleted when all records are successfully
processed, allowing
  failed records to be retried after the visibility timeout.

- `receiver/azureeventhub`: Make storage of new azeventhub library
backward compatible and fix checkpoint starting at earliest when storage
is enabled
([#&#8203;44461](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44461))

- `receiver/fluentforward`: Ensure all established connections are
properly closed on shutdown in the fluentforward receiver. The shutdown
process now reliably closes all active connections.
([#&#8203;44433](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44433))
- Fixes shutdown behavior so that all existing connections are closed
cleanly.
  - Adds tests to verify proper connection closure.

- `receiver/kafka`: Fix deprecated field migration logic for metrics,
traces, and profiles topic configuration
([#&#8203;45215](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/45215))
Fixed bug where deprecated `topic` and `exclude_topic` fields for
metrics, traces, and profiles
were incorrectly checking logs configuration instead of their respective
signal type's configuration.
This prevented proper migration from deprecated fields unless
logs.topics was empty.
Also fixed validation error message typo for traces.exclude\_topic and
corrected profiles validation
  to check ExcludeTopic fields instead of Topic fields.

- `receiver/sqlserver`: Collect query metrics for long running queries
([#&#8203;44984](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44984))

- `receiver/tcpcheck`: Fix the unit of the `tcpcheck.error` metric from
`error` to `errors`
([#&#8203;45092](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/45092))

<!-- previous-version -->

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

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

##### 🛑 Breaking changes 🛑

- `all`: It's recommended to change the field type in your component
configuration to be
`configoptional.Optional[exporterhelper.QueueBatchConfig]` to keep the
`enabled` subfield. Use
configoptional.Some(exporterhelper.NewDefaultQueueConfig()) to enable by
default. Use
configoptional.Default(exporterhelper.NewDefaultQueueConfig()) to
disable by default.
([#&#8203;44320](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44320))

- `exporter/datadog`: Update the Datadog exporter to support the
Orchestrator Explorer by accepting receiver/k8sobjects logs and sending
Kubernetes data to the Datadog endpoint.
([#&#8203;44523](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44523))
The Cluster name field in Orchestrator Explorer Configuration has been
removed. Use the k8s.cluster.name attribute instead.

- `exporter/prometheusremotewrite`: Updated to Remote Write 2.0 spec
rc.4, requiring Prometheus 3.8.0 or later as the receiving endpoint.
([#&#8203;44861](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44861))
The upstream Prometheus library updated the Remote Write 2.0 protocol
from rc.3 to rc.4 in

[prometheus/prometheus#17411](https://redirect.github.com/prometheus/prometheus/issues/17411).
This renamed `CreatedTimestamp` to `StartTimestamp` and moved it
from the `TimeSeries` message to individual `Sample` and `Histogram`
messages. This is a
wire-protocol incompatibility, so if you are exporting to a Prometheus
server, you must upgrade
  it to version 3.8.0 or later to receive data from this exporter.

- `extension/googlecloudlogentry_encoding`: Parse External Application
Load Balancer logs into log record attributes instead of placing it in
the body as is.
([#&#8203;44438](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44438))

- `pkg/stanza`: Allow `max_batch_size` of 0 for unlimited batching in
`recombine` operator
([#&#8203;43982](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/43982))
The recombine operator now supports setting `max_batch_size: 0` to
disable batch size limits.
This allows unlimited batching, letting entries be combined based only
on `max_log_size` and matching conditions.
If you have `max_batch_size: 0` in your config and want to keep the
behavior unchanged, change the configuration to `max_batch_size: 1`.

- `processor/cumulativetodelta`: Change default `max_staleness` from 0
(infinite) to 1 hour
([#&#8203;44427](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44427))
The processor now defaults to a `max_staleness` of 1 hour instead of 0
(infinite retention).
This prevents unbounded memory growth in long-running collector
instances, especially when tracking metrics with high cardinality or
frequently changing attribute values.
To restore the previous behavior of infinite retention, explicitly set
`max_staleness: 0` in your configuration.

- `processor/resourcedetection`: Promote
`processor.resourcedetection.propagateerrors` feature gate to beta
([#&#8203;44609](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44609))

- `processor/resourcedetection`: Remove deprecated `attributes`
configuration option
([#&#8203;44610](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44610))

- `receiver/awss3`: Remove the `s3_partition` config option in favor of
`s3_partition_format` and `s3_partition_timezone` options. This aligns
the S3 receiver more closely with the S3 Exporter. Also add the ability
to include or exclude the telemetry type from the file prefix using the
`file_prefix_include_telemetry_type` option.
([#&#8203;43720](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/43720))

- `receiver/docker_stats`: Upgrades default Docker API version to 1.44
to be compatible with recent Docker Engine versions.
([#&#8203;44279](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44279))
Users requiring an older Docker API version can set the `api_version` in
the docker stats receiver config. The minimum supported API level is not
changed, only default.

- `receiver/filelog`: Move `filelog.decompressFingerprint` to stable
stage
([#&#8203;44570](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44570))

- `receiver/prometheus`: Promote the
receiver.prometheusreceiver.RemoveStartTimeAdjustment feature gate to
stable and remove in-receiver metric start time adjustment in favor of
the metricstarttime processor, including disabling the created-metric
feature gate.
([#&#8203;44180](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44180))
Previously, users could disable the RemoveStartTimeAdjustment feature
gate to temporarily keep the legacy start time adjustment behavior in
the Prometheus receiver.
With this promotion to stable and bounded registration, that gate can no
longer be disabled; the receiver will no longer set StartTime on metrics
based on process\_start\_time\_seconds, and users should migrate to the
metricstarttime processor for equivalent functionality.
This change also disables the
receiver.prometheusreceiver.UseCreatedMetric feature gate, which
previously used the `<metric>_created` series to derive start timestamps
for counters, summaries, and histograms when scraping non OpenMetrics
protocols.
However, this does not mean that the `_created` series is always
ignored: when using the OpenMetrics 1.0 protocol, Prometheus itself
continues to interpret the `_created` series as the start timestamp, so
only the receiver-side handling for other scrape protocols has been
removed.

- `receiver/prometheus`: Native histogram scraping and ingestion is now
controlled by the scrape configuration option
`scrape_native_histograms`.
([#&#8203;44861](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44861))
The feature gate `receiver.prometheusreceiver.EnableNativeHistograms` is
now stable and enabled by default.
Native histograms scraped from Prometheus will automatically be
converted to OpenTelemetry exponential histograms.

To enable scraping of native histograms, you must configure
`scrape_native_histograms: true` in your Prometheus
scrape configuration (either globally or per-job). Additionally, the
protobuf scrape protocol must be enabled
  by setting `scrape_protocols` to include `PrometheusProto`.

- `receiver/prometheusremotewrite`: Updated to Remote Write 2.0 spec
rc.4, requiring Prometheus 3.8.0 or later
([#&#8203;44861](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44861))
The upstream Prometheus library updated the Remote Write 2.0 protocol
from rc.3 to rc.4 in

[prometheus/prometheus#17411](https://redirect.github.com/prometheus/prometheus/issues/17411).
This renamed `CreatedTimestamp` to `StartTimestamp` and moved it
from the `TimeSeries` message to individual `Sample` and `Histogram`
messages. This is a
wire-protocol incompatibility, so Prometheus versions 3.7.x and earlier
will no longer work
correctly with this receiver. Please upgrade to Prometheus 3.8.0 or
later.

##### 🚩 Deprecations 🚩

- `processor/k8sattributes`: Removes stable
k8sattr.fieldExtractConfigRegex.disallow feature gate
([#&#8203;44694](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44694))

- `receiver/kafka`: Deprecate `default_fetch_size` parameter for
franz-go client
([#&#8203;43104](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/43104))
The `default_fetch_size` parameter is now deprecated for the franz-go
Kafka client and will only be used with the legacy Sarama client.
  Users should configure `max_fetch_size` instead when using franz-go.
  This deprecation is marked as of v0.142.0.

- `receiver/kafka`: Support configuring a list of topics and
exclude\_topics; deprecate topic and exclude\_topic
([#&#8203;44477](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44477))

- `receiver/prometheus`: Deprecate `use_start_time_metric` and
`start_time_metric_regex` config in favor of the processor
`metricstarttime`
([#&#8203;44180](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44180))

##### 🚀 New components 🚀

- `receiver/yanggrpc`: Implement the YANG/gRPC receiver
([#&#8203;43840](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/43840))

##### 💡 Enhancements 💡

- `exporter/elasticsearch`: add dynamic data stream routing for
connectors
([#&#8203;44525](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44525))

- `exporter/kafka`: Adds server.address attribute to all Kafka exporter
metrics.
([#&#8203;44649](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44649))

- `exporter/prometheusremotewrite`: Add option to remove `service.name`,
`service.instance.id`, `service.namespace` ResourceAttribute from
exported metrics
([#&#8203;44567](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44567))

- `exporter/signalfx`: Support setting default properties for dimension
updates to be set lazily as part of configuration
([#&#8203;44891](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44891))

- `extension/azure_encoding`: Implement general Azure Resource Log
parsing functionality
([#&#8203;41725](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/41725))

- `extension/datadog`: Datadog Extension users may view and manage OTel
Collectors in Fleet Automation.
([#&#8203;44666](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44666))
Interested users should read [the post on the Datadog Monitor
blog](https://www.datadoghq.com/blog/manage-opentelemetry-collectors-with-datadog-fleet-automation/)
and fill out the preview intake form listed there.

- `extension/datadog`: Adds deployment\_type configuration option to the
Datadog Extension.
([#&#8203;44430](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44430))
Users may specify the deployment type of the collector in Datadog
Extension configuration to view in Datadog app.
If the collector is deployed as a gateway (i.e. receiving pipeline
telemetry from multiple hosts/sources),
  user should specify "gateway" as the deployment type.
If the collector is deployed as a daemonset/agent, user should specify
"daemonset" as the deployment type.
  The default setting is "unknown" if not set.

- `extension/datadog`: Adds standard (non-billed) liveness metric
`otel.datadog_extension.running` to ensure host data is shown in Datadog
app.
([#&#8203;44285](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44285))

- `extension/googlecloudlogentry_encoding`: Add support for GCP VPC Flow
Log fields for MIG (Managed Instance Group) and Google Service logs.
([#&#8203;44220](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44220))
  Adds support for the following GCP VPC Flow Log fields:
- Add support for
gcp.vpc.flow.{source,destination}.google\_service.{type,name,connectivity}
- Add support for
gcp.vpc.flow.{source,destination}.instance.managed\_instance\_group.{name,region,zone}

- `extension/health_check`: Added
extension.healthcheck.useComponentStatus feature gate to enable v2
component status reporting in healthcheckextension while maintaining
backward compatibility by default.
([#&#8203;42256](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/42256))

- `pkg/ottl`: Accept string trace/span/profile IDs for `TraceID()`,
`SpanID()`, and `ProfileID()` in OTTL.
([#&#8203;43429](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/43429))
This change allows for a more straightforward use of string values to
set trace, span, and profile IDs in OTTL.

- `pkg/stanza`: New featuregate `filelog.windows.caseInsensitive`
introduced. It will make glob matching is case-insensitive on Windows.
([#&#8203;40685](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/40685))
Previously, any `include` pattern that included some manner of wildcard
(`*` or `**`) would
be case-sensitive on Windows, but Windows filepaths are by default
case-insensitive. This meant
that in a directory with the files `a.log` and `b.LOG`, the pattern
`*.log` would previously only
match `a.log`. With the `filelog.windows.caseInsensitive` featuregate
enabled, it will match both `a.log`
and `b.LOG` when on Windows. The behaviour is the same as always on
other operating systems, as all other
currently supported platforms for the Collector have case-sensitive
filesystems.

- `pkg/translator/azurelogs`: Added support for Activity Logs
Recommendation category
([#&#8203;43220](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/43220))

- `processor/k8sattributes`: Updates semconv version to v1.37.0
([#&#8203;44696](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44696))

- `processor/resourcedetection`: Add support for dynamic refresh
resource attributes with refresh\_interval parameter
([#&#8203;42663](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/42663))

- `processor/resourcedetection`: Update semconv dependency to 1.37.0
which updates the schema url in the data, but no other impact is
expected.
([#&#8203;44726](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44726))

- `processor/transform`: New Transform Processor function
`set_semconv_span_name()` to overwrite the span name with the semantic
conventions for HTTP, RPC, messaging, and database spans.
([#&#8203;43124](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/43124))
  In other cases, the original `span.name` is unchanged.
  The primary use of `set_semconv_span_name()` is alongside the
[Span Metrics
Connector](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/connector/spanmetricsconnector)
to address high-cardinality issues in span metrics when `span.name` does
not comply with the OTel requirement
  that span names be low cardinality.

- `receiver/azuremonitor`: Scrape storage account sub types
([#&#8203;37220](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/37220))

- `receiver/datadog`: Improve the compliance with OTel Semantic
Conventions for RPC spans in the Datadog receiver.
([#&#8203;44671](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44671))
Compliance improvements on spans received via the Datadog receiver when
applicable:
  - Set span name according to RPC conventions.
  - Set `rpc.method` and `rpc.service` attributes.

- `receiver/datadog`: Bump OTel Semantic Conventions from v1.30.0 to
v1.37.0 in the Datadog receiver.
([#&#8203;44671](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44671))
Changes in OTel Semantic Conventions v1.37.0 affecting the Datadog
receiver:
- The Datadog tag `runtime` is now mapped to the OTel attribute
`container.runtime.name` instead of `container.runtime`.

- `receiver/datadog`: Improve the compliance with OTel Semantic
Conventions for AWS SDK spans in the Datadog receiver.
([#&#8203;44723](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44723))
Compliance improvements on spans received via the Datadog receiver when
applicable:
  - Set span name according to AWS SDK conventions.
  - Set `rpc.system`, `rpc.method` and `rpc.service` attributes.

- `receiver/datadog`: Add
`receiver.datadogreceiver.EnableMultiTagParsing` feature gate
([#&#8203;44747](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44747))
The feature flag changes the logic that converts Datadog tags to
OpenTelemetry attributes.
When the flag is enabled, data points that have multiple tags starting
with the same `key:` prefix
will be turned into an attribute slice (instead of a string) containing
all the suffix values.

- `receiver/datadog`: Improve the compliance with OTel Semantic
Conventions for HTTP spans in the Datadog receiver.
([#&#8203;44722](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44722))
Compliance improvements on spans received via the Datadog receiver when
applicable:
Set span name according to HTTP conventions for `web.request` and
`http.request` spans.

- `receiver/github`: Add concurrency limiting to reduce likelihood of
hitting secondary rate limits
([#&#8203;43388](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/43388))
Adds `concurrency_limit` configuration parameter (default: 50) to limit
concurrent repository processing goroutines. This reduces the likelihood
of
getting 502/504 errors when scraping organizations with >100
repositories.

- `receiver/googlecloudpubsub`: Exponential backoff streaming restarts
([#&#8203;44741](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44741))

- `receiver/kafka`: Make `session_timeout`, `heartbeat_interval`,
`max_partition_fetch_size`, and `max_fetch_wait` unconditional in
franz-go consumer
([#&#8203;44839](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44839))

- `receiver/kafka`: Validate that `exclude_topics` entries in
kafkareceiver config are non-empty.
([#&#8203;44920](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44920))

- `receiver/oracledb`: Added independent collection interval config for
Oracle top query metrics collection
([#&#8203;44607](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44607))

- `receiver/prometheusremotewrite`: Map.PutStr causes excessive memory
allocations due to repeated slice expansions
([#&#8203;44612](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44612))

- `receiver/splunk_hec`: Support parsing JSON array payloads in Splunk
HEC receiver
([#&#8203;43941](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/43941))

- `receiver/sshcheck`: Promote sshcheck receiver to beta stability
([#&#8203;41573](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/41573))

- `receiver/yanggrpc`: Promote to alpha stability
([#&#8203;44783](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44783))

##### 🧰 Bug fixes 🧰

- `exporter/elasticsearch`: Fix hostname mapping in Elasticsearch
exporter
([#&#8203;44874](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44874))
- The exporter now supports to map an otel field to an ecs field only if
the ecs field is not already present. This is applied to `host.hostname`
mapping.

- `processor/cumulativetodelta`: Check whether bucket bounds are the
same when verifying whether histograms are comparable
([#&#8203;44793](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44793))

- `processor/cumulativetodelta`: Fix logic handling ZeroThreshold
increases for exponential histograms
([#&#8203;44793](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44793))

- `processor/filter`: Fix context initialization for metric/datapoint
context
([#&#8203;44813](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44813))

- `processor/k8sattributes`: Fix
`k8sattr.labelsAnnotationsSingular.allow` feature gate to affect config
default tag names in addition to runtime extraction
([#&#8203;39774](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/39774))

- `processor/tail_sampling`: Fix a memory leak introduced in 0.141.0 of
the tail sampling processor when not blocking on overflow.
([#&#8203;44884](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44884))

- `receiver/datadog`: The `db.instance` tag of Datadog database client
spans should be mapped to the OTel attribute `db.namespace`, not to
`db.collection.name`.
([#&#8203;44702](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44702))
Compliance improvements on spans received via the Datadog receiver when
applicable:
- The `db.instance` tag is now mapped to the OTel attribute
`db.namespace` instead of `db.collection.name`.
- The `db.sql.table` tag is mapped to the OTel attribute
`db.collection.name`.
- The `db.statement` tag is mapped to the OTel attribute
`db.query.text`.

- `receiver/datadog`: Fix Datadog trace span counting so
otelcol\_receiver\_accepted\_spans is not under-reported
([#&#8203;44865](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44865))
Previously only the last payload's spans were counted, so the
otelcol\_receiver\_accepted\_spans metric could be lower than
otelcol\_exporter\_sent\_spans in pipelines where they should match.

- `receiver/github`: Adds corrections to span kind for GitHub events
when they are tasks.
([#&#8203;44667](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44667))

- `receiver/googlecloudpubsub`: Acknowledge messages at restart
([#&#8203;44706](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44706))
Rewrote the control flow loop so the acknowledgment of messages is more
reliable. At stream restart, the messages
ackIds are resent immediately without an explicit acknowledgment.
Outstanding ackIds are only cleared when the
  acknowledgment is sent successfully.

- `receiver/googlecloudspanner`: Fixed goroutine leaks in ttlcache
lifecycle management and applied modernize linter fixes across multiple
receivers.
([#&#8203;44779](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44779))
- Simplified cache lifecycle management by removing unnecessary
WaitGroup complexity
- Added goleak ignores for ttlcache goroutines that don't stop
immediately after Stop()

- `receiver/kafka`: Use `max_fetch_size` instead of `default_fetch_size`
in franz-go client
([#&#8203;43104](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/43104))
The franz-go Kafka consumer was incorrectly using `default_fetch_size`
(a Sarama-specific setting) instead of `max_fetch_size` when configuring
`kgo.FetchMaxBytes`.
This fix ensures the correct parameter is used and adds validation to
prevent `max_fetch_size` from being less than `min_fetch_size`.
The default value for `max_fetch_size` has been changed from 0
(unlimited) to
[`1048576`](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/commit/1048576)
(1 MiB) to maintain backward compatibility with the previous (incorrect)
behavior.

- `receiver/prometheus`: Fix HTTP response body leak in target allocator
when fetching scrape configs fails
([#&#8203;44921](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44921))
The getScrapeConfigsResponse function did not close resp.Body on error
paths.
  If io.ReadAll or yaml.Unmarshal failed, the response body would leak,
  potentially causing HTTP connection exhaustion.

- `receiver/prometheus`: Fixes yaml marshaling of
prometheus/common/config.Secret types
([#&#8203;44445](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44445))

<!-- previous-version -->

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

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

##### 🛑 Breaking changes 🛑

- `all`: fix pprofile DurationNano to be a TypeUint64
([#&#8203;44397](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44397))

- `cmd/otelcontribcol`: Removing unmaintained component
`exporter/carbon`
([#&#8203;38913](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/38913))

- `connector/spanmetrics`: Add a feature gate to use the latest semantic
conventions for the status code attribute on generated metrics. | This
feature gate will replace the `status.code` attribute on the generated
RED metrics with `otel.status_code`. | It will also replace the values
`STATUS_CODE_ERROR` and `STATUS_CODE_OK` with `ERROR` and `OK` to align
with the latest conventions.
([#&#8203;42103](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/42103))
This change is made to align with [the latest semantic
conventions](https://opentelemetry.io/docs/specs/semconv/registry/attributes/otel/#otel-status-code).
| The feature gate is disabled by default, but can be enabled with
`--feature-gates spanmetrics.statusCodeConvention.useOtelPrefix` | or
explicitly disabled with `--feature-gates
-spanmetrics.statusCodeConvention.useOtelPrefix`.

- `exporter/clickhouse`: Add EventName column to logs table
([#&#8203;42584](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/42584))
This column is optional for existing deployments. See project README for
notes on how to upgrade your logs table.

- `exporter/clickhouse`: Add columns for tracking JSON paths in logs +
traces
([#&#8203;43109](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/43109))
The JSON columns now include a helper column for keeping track of what
keys are inside of the JSON object.
This change also introduces schema detection logic to reduce breaking
changes whenever a column is added.
Existing users can enable these features by manually adding all the new
columns to their table.

- `exporter/kafka`: `exporter.kafkaexporter.UseFranzGo` feature gate
moved to Stable and is now always enabled
([#&#8203;44565](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44565))
The franz-go client is now the default and only Kafka client library for
the Kafka exporter.
The feature gate `exporter.kafkaexporter.UseFranzGo` has been promoted
to Stable status and cannot be disabled.
Users can no longer opt out of using the franz-go client in favor of the
legacy Sarama client.
The Sarama client and the feature gate will be removed completely after
v0.143.0.

- `extension/docker_observer`: Upgrading Docker API version default from
1.24 to 1.44
([#&#8203;44279](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44279))

- `pkg/ottl`: Type of field profile.duration changes from time.Time to
int64.
([#&#8203;44397](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44397))

- `receiver/azureeventhub`: Promote Feature Gate
`receiver.azureeventhubreceiver.UseAzeventhubs` to Beta
([#&#8203;44335](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44335))

- `receiver/k8slog`: Update k8slogreceiver code-owners status and mark
as unmaintained
([#&#8203;44078](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44078))

- `receiver/kafka`: Remove deprecated topic and encoding
([#&#8203;44568](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44568))

- `receiver/kafka`: `receiver.kafkareceiver.UseFranzGo` feature gate
moved to Stable and is now always enabled
([#&#8203;44564](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44564))
The franz-go client is now the default and only Kafka client library for
the Kafka receiver.
The feature gate `receiver.kafkareceiver.UseFranzGo` has been promoted
to Stable status and cannot be disabled.
Users can no longer opt out of using the franz-go client in favor of the
legacy Sarama client.
The Sarama code and the feature gate will be removed completely after
v0.143.0.

##### 🚩 Deprecations 🚩

- `receiver/prometheus`: Add feature gate for extra scrape metrics in
Prometheus receiver
([#&#8203;44181](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44181))
deprecation of extra scrape metrics in Prometheus receiver will be
removed eventually.

##### 🚀 New components 🚀

- `connector/metricsaslogs`: Add connector to convert metrics to logs
([#&#8203;40938](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/40938))
- `extension/azure_encoding`: \[extension/azure\_encoding] Introduce new
component
([#&#8203;41725](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/41725))
This change includes only overall structure, readme and configuration
for a new component
- `receiver/awslambda`: Implementation of the AWS Lambda Receiver.
([#&#8203;43504](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/43504))
- `receiver/macosunifiedlogging`: Add a new receiver for macOS Unified
Logging.
([#&#8203;44089](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44089))
- `receiver/macosunifiedlogging`: Implementation of the macOS Unified
Logging Receiver.
([#&#8203;44089](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44089))

##### 💡 Enhancements 💡

- `connector/count`: Support all attribute types in the count connector
([#&#8203;43768](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/43768))

- `connector/routing`: Avoid extra copy of all data during routing
([#&#8203;44387](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44387))

- `exporter/awss3`: Support compression with ZSTD
([#&#8203;44542](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44542))

- `exporter/azuremonitor`: Add additional mapping of standard OTel
properties to builtin Application Insights properties
([#&#8203;40598](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/40598))

- `exporter/cassandra`: `cassandraexporter`: Upgrade cassandra library
version
([#&#8203;43691](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/43691))
  Upgrade cassandra library version.

- `exporter/elasticsearch`: Updates the ecs mode span encode to include
the `span.kind` attribute
([#&#8203;44139](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44139))

- `exporter/elasticsearch`: add missing fields to struct so that they
are populated in the respective elasticsearch index
([#&#8203;44234](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44234))

- `exporter/file`: Add create\_directory and directory\_permissions
options; exporter can automatically create parent directories (also
honored by group\_by) with configurable permissions.
([#&#8203;44280](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44280))
- New config: `create_directory` (bool) and `directory_permissions`
(octal string, e.g. "0755").
- When enabled, the exporter creates the parent directory of `path` on
start.
- `group_by` uses the configured permissions when creating per-attribute
directories.

- `exporter/googlecloudpubsub`: Update to cloud.google.com/go/pubsub/v2.
([#&#8203;44465](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44465))

- `exporter/googlecloudpubsub`: Add encoding extension support
([#&#8203;42270](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/42270),
[#&#8203;41834](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/41834))
Add encoding extension support for the payload on Pub/Sub. As having
custom extensions means the Pub/Sub attributes
cannot be auto discovered additional functionality has been added to set
the message attributes.

- `exporter/prometheus`: Add without\_scope\_info to omit otel scope
info from prometheus exporter metrics
([#&#8203;43613](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/43613))

- `exporter/prometheus`: Add support to exponential histograms
([#&#8203;33703](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/33703))

- `exporter/signalfx`: Makes sending tags from SignalFx Exporter
configurable
([#&#8203;43799](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/43799))
New optional configuration flag `drop_tags` has been added to SignalFx
Exporter to allow users to disable tag metadata sending.
This feature has been introduced due to a common issue among Splunk
Observability customers when they're receiving more tags
  than allowed limit.

- `extension/awslogs_encoding`: Add more fields to AWS NLB logs at ELB
extension
([#&#8203;43757](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/43757))

- `extension/googlecloudlogentry_encoding`: Add support for Proxy
Network Load Balancer logs
([#&#8203;44099](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44099))
Add support for Proxy Network Load Balancer logs to the Google Cloud log
entry encoding extension.
This includes adding support for the new `gcp.load_balancing.proxy_nlb`
attributes.
See the
[README](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/extension/encoding/googlecloudlogentryencodingextension/README.md#proxy-network-load-balancer-logs)
for more details.

- `extension/headers_setter`: Add support for chaining with other auth
extensions via `additional_auth` configuration parameter. This allows
combining multiple authentication methods, such as OAuth2 for bearer
token authentication and custom headers for additional metadata.
([#&#8203;43797](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/43797))
The `additional_auth` parameter enables the `headers_setter` extension
to work in conjunction
with other authentication extensions like `oauth2client`. The additional
auth extension is called
first to apply its authentication, then headers\_setter adds its
configured headers on top.

- `extension/observer`: Add container name, container ID, and container
image to port endpoint
([#&#8203;41309](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/41309))

- `pkg/ottl`: Add `ParseSeverity` function to define mappings for log
severity levels.
([#&#8203;35778](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/35778))

- `pkg/ottl`: Introduce `CommunityID` function to generate network hash
(20-byte SHA1 digest) flow from the given source and destination {IP,
port}, optionally protocol and seed values.
([#&#8203;34062](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/34062))

- `pkg/ottl`: Expand usage of literal into typed getters and avoid
unnecessary work
([#&#8203;44201](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44201))

- `pkg/ottl`: SliceToMap: add support to convert slices with non-map
elements to maps
([#&#8203;43099](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/43099))

- `processor/cumulativetodelta`: Add support for exponential histograms
([#&#8203;44106](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44106))

- `processor/resourcedetection`: Use `osProfile.computerName` for
setting `host.name` in Azure resource detection processor
([#&#8203;43959](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/43959))

- `processor/resourcedetectionprocessor/oraclecloud`: Oracle Cloud (OCI)
resource detection processor now differentiates between running
off-platform (expected not to work), and encountering an error when
running on-platform (expected to work)
([#&#8203;42794](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/42794))
- Collectors not running on Oracle Cloud return an empty resource and no
error, since we don't expect this case to work.
- If the Oracle Cloud platform is detected but metadata fetch fails, the
error is now logged and signaled to the processor, since we do expect
this case to work.

- `processor/tail_sampling`: Add bytes\_limiting policy type, sample
based on the rate of bytes per second using a token bucket algorithm.
([#&#8203;42509](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/42509))

- `processor/tail_sampling`: Adaptive expected\_new\_traces\_per\_sec to
improve performance lower bound
([#&#8203;43561](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/43561))

- `receiver/googlecloudpubsub`: Update to cloud.google.com/go/pubsub/v2.
([#&#8203;44466](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44466))

- `receiver/googlecloudpubsub`: Adjusts the subscription regex to
accommodate new project naming used for Google Trusted Partner Clouds.
([#&#8203;43988](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/43988))

- `receiver/googlecloudpubsubpush`: Add telemetry metrics to the
component.
([#&#8203;44422](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44422))

- `receiver/googlecloudpubsubpush`: Add implementation to
googlecloudpubsubpush receiver.
([#&#8203;44101](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44101))

- `receiver/k8s_events`: Allow more event types like Error and Critical
which are typically used by applications when creating events.
([#&#8203;43401](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/43401))
k8seventsreceiver allows event types Error and Critical in addition to
the current Normal and Warning event types.

- `receiver/kafka`: Add support for exclude topics when consuming topics
with a regex pattern
([#&#8203;43782](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/43782))

- `receiver/prometheus`: Support JWT Profile for Authorization Grant
(RFC 7523 3.1)
([#&#8203;44381](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44381))

- `receiver/redis`: Add support for redis.mode and redis.sentinel.\*
metrics
([#&#8203;42365](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/42365))

- `receiver/systemd`: Promote systemd receiver to alpha
([#&#8203;33532](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/33532))

- `receiver/systemd`: Scrape unit CPU time
([#&#8203;44646](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44646))

##### 🧰 Bug fixes 🧰

- `cmd/opampsupervisor`: Fix supervisor passthrough logs overflow by
using bufio.Reader instead of bufio.Scanner
([#&#8203;44127](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44127))

- `cmd/opampsupervisor`: Fix data race in `remoteConfig` field by using
atomic pointer for thread-safe concurrent access
([#&#8203;44173](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44173))

- `connector/routing`: Fix routing to default route when error occurs
([#&#8203;44386](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44386))
Before we used to send everything (even records match without error) to
the default pipeline, |
after this change only entries that return error will be "ignored" and
if no other rule in the |
  table picks them will be sent to the default rule.

- `exporter/clickhouse`: Fix TLS configuration being ignored when only
ca\_file is provided and no cert/key files are set.
([#&#8203;43911](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/43911))
This change ensures server-side TLS validation works correctly even
without client certificates.

- `exporter/elasticsearch`: Fix CloudID parsing to correctly handle
Elastic Cloud IDs when sent with multiple dollar sign separators
([#&#8203;44306](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44306))
The CloudID decoder was incorrectly using `strings.Cut()` which only
splits on the first delimiter,
causing malformed URLs when the decoded CloudID contained multiple `$`
separators. Changed to use
`strings.Split()` to match the reference implementation from
go-elasticsearch library.

- `extension/awslogs_encoding`: address the SIGSEGV occurring when
processing control\_message messages.
([#&#8203;44231](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44231))

- `extension/awslogs_encoding`: Fix ALB log `request_line` parsing for
valid formats and avoid errors
([#&#8203;44233](https://redirect.github.com/open-telemetry/opentelemetry-collector-contrib/issues/44233))

- `pkg/ottl`: Fixed OTTL grammar to treat the string literal "nil

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "on tuesday" (UTC), Automerge - At any
time (no schedule defined).

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

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

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

---

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

---

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

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

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
charleskorn pushed a commit to charleskorn/prometheus that referenced this pull request Jan 15, 2026
* promql: fix histogram_fraction issue when lower falls within the first bucket (prometheus#17424)

Signed-off-by: Mohammad Alavi <m.alavi1986@gmail.com>

* prepare release 3.8.0-rc.0

Signed-off-by: Jan Fajerski <jfajersk@redhat.com>

* test: skip TestRemoteWrite_ReshardingWithoutDeadlock temporarily as flaky (prometheus#17534) (prometheus#17543)

(cherry picked from commit 35c3232)

Signed-off-by: machine424 <ayoubmrini424@gmail.com>
Signed-off-by: Jan Fajerski <jfajersk@redhat.com>
Co-authored-by: Ayoub Mrini <ayoubmrini424@gmail.com>

* chore(deps): bump prometheus/promci from 0.4.7 to 0.5.0

Signed-off-by: Jan Fajerski <jfajersk@redhat.com>

* chore(deps): bump prometheus/promci from 0.5.0 to 0.5.1

Signed-off-by: Jan Fajerski <jfajersk@redhat.com>

* chore(deps): bump prometheus/promci from 0.5.1 to 0.5.2

Signed-off-by: Jan Fajerski <jfajersk@redhat.com>

* chore(deps): bump prometheus/promci from 0.5.2 to 0.5.3

Signed-off-by: Jan Fajerski <jfajersk@redhat.com>

* prw2: Move Remote Write 2.0 CT to be per Sample; Rename to ST (start timestamp) (prometheus#17411)

Relates to
prometheus#16944 (comment)

Signed-off-by: bwplotka <bwplotka@gmail.com>
(cherry picked from commit cefefc6)

* chore: prepare 3.8.0-rc.1 entry

Signed-off-by: bwplotka <bwplotka@gmail.com>

* [chore]: bump common dep to support RFC7523 3.1

Signed-off-by: Jorge Turrado <jorge.turrado@mail.schwarz>

* Update Prometheus Agent doc (prometheus#17591)

* Add a nav title to fix docs website generator.
* Make it more clear that "Prometheus Agent" is a mode, not a seaparate
  service.
* Add to index.
* Cleanup some wording.
* Add a downsides section.

Signed-off-by: SuperQ <superq@gmail.com>
(cherry picked from commit d0d2699)

* chore(deps): bump github.com/prometheus/common from 0.67.3 to 0.67.4 (prometheus#17594)

Signed-off-by: Jan Fajerski <jfajersk@redhat.com>

* prepare release v3.8.0-rc.1

Signed-off-by: Jan Fajerski <jfajersk@redhat.com>

* prepare release v3.8.0

Signed-off-by: Jan Fajerski <jfajersk@redhat.com>

* chore: Fix function name typo in createBatchSpan comment

Signed-off-by: zjumathcode <pai314159@2980.com>

* feat: Add flag that blocks lvl 1 compactions until upload is confirmed in an external JSON file (prometheus#17435)

* Delay compactions until Thanos uploads all blocks

Using Thanos sidecar with Prometheus requires us to disable TSDB compactions on Prometheus side by setting --storage.tsdb.min-block-duration and --storage.tsdb.max-block-duration to the same value. See https://thanos.io/tip/components/sidecar.md. The main problem this avoids is that Prometheus might compact given block before Thanos uploads it, creating a gap in Thanos metrics. Thanos does not upload compacted blocks because that would upload the same sample multiple times. You can tell Thanos to upload compacted blocks but that is aimed at one time migrations. This patch creates a bridge between Thanos and Prometheus by allowing Prometheus to read the shipper file Thanos creates, where it tracks which blocks were already uploaded, and using that data delays compaction of blocks until they are marked as uploaded by Thanos. Thanks to this both services can coordinate with each other (in a way) and we can stop disabling compaction on Prometheus side when Thanos uploads are enabled.

The reason to have this is that disabling compactions have very dramatic performance cost. Since most time series exist for longer than a single block duration (2h by default) large chunks of block index will reference the same series, so 10 * 2h blocks will each have an index that is usually fairly big and is almost the same for all 10 blocks. Compaction de-duplicates the index so merging 10 blocks together would leave us with a single index that is around the same size as each of these 10 2h blocks would have (plus some extra for series that only exists in some blocks, but not all). Every range query that iterates over all 10 blocks would then have to read each index and so we're doing 10x more work then if we had a single compacted block.

Signed-off-by: Lukasz Mierzwa <l.mierzwa@gmail.com>

* Rename structs and functions to make this more generic

Signed-off-by: Lukasz Mierzwa <l.mierzwa@gmail.com>

* Address review comments

Signed-off-by: Lukasz Mierzwa <l.mierzwa@gmail.com>

* Cache UploadMeta for 1 minute

Signed-off-by: Lukasz Mierzwa <l.mierzwa@gmail.com>

---------

Signed-off-by: Lukasz Mierzwa <l.mierzwa@gmail.com>

* RW2: Allow custom scope in azuread (prometheus#17483)

Signed-off-by: Ben Edmunds <sammybenblue2@gmail.com>

* docs: Describe how time() is set to start at 0 in unit tests

The return value of functions relating to the current time, e.g. time(),
is set by promtool to start at timestamp 0 at the start of a test's
evaluation.

This has the very nice consequence that tests can run reliably without
depending on when they are run.

It does, however, mean that tests will give out results that can be
unexpected by users.

If this behaviour is documented, then users will be empowered to write
tests for their rules that use time-dependent functions.

(Closes: prometheus/docs#1464)

Signed-off-by: Gabriel Filion <lelutin@torproject.org>

* refactor(tsdb): use one test newTestDB constructor (prometheus#17638)

For tests only, we had various ways of opening DB. Reduced to one
instead of:

* Open
* newTestDB
* newTestDBOpts
* openTestDB

This so prometheus#17629 is smaller
and bit easier. Also for test maintainability and consistency.

Signed-off-by: bwplotka <bwplotka@gmail.com>

* Add start_timestamp field for unit tests.

This commit adds support for configuring a custom start timestamp
for Prometheus unit tests, allowing tests to use realistic timestamps
instead of starting at Unix epoch 0.

Signed-off-by: Julien Pivotto <291750+roidelapluie@users.noreply.github.com>

* Fix serialization for empty `ignoring()` in combination with `group_x()`

Currently both the backend and frontend printers/formatters/serializers
incorrectly transform the following expression:

```
up * ignoring() group_left(__name__) node_boot_time_seconds
```

...into:

```
up * node_boot_time_seconds
```

...which yields a different result (including the metric name in the result
vs. no metric name).

We need to keep empty `ignoring()` modifiers if there is a grouping modifier
present.

Signed-off-by: Julius Volz <julius.volz@gmail.com>

* Simplify StartTime assignment in unit test setup.

Remove redundant IsZero check since promqltest.LazyLoader already
handles zero StartTime by defaulting to Unix epoch.

Signed-off-by: Julien Pivotto <291750+roidelapluie@users.noreply.github.com>

* Update golangci-lint and add modernize check (prometheus#17640)

* add modernize check

Signed-off-by: dongjiang1989 <dongjiang1989@126.com>

* fix golangci lint

Signed-off-by: dongjiang1989 <dongjiang1989@126.com>

---------

Signed-off-by: dongjiang1989 <dongjiang1989@126.com>

* fix lint

---------

Signed-off-by: Mohammad Alavi <m.alavi1986@gmail.com>
Signed-off-by: Jan Fajerski <jfajersk@redhat.com>
Signed-off-by: machine424 <ayoubmrini424@gmail.com>
Signed-off-by: bwplotka <bwplotka@gmail.com>
Signed-off-by: Jorge Turrado <jorge.turrado@mail.schwarz>
Signed-off-by: SuperQ <superq@gmail.com>
Signed-off-by: zjumathcode <pai314159@2980.com>
Signed-off-by: Lukasz Mierzwa <l.mierzwa@gmail.com>
Signed-off-by: Ben Edmunds <sammybenblue2@gmail.com>
Signed-off-by: Gabriel Filion <lelutin@torproject.org>
Signed-off-by: Julien Pivotto <291750+roidelapluie@users.noreply.github.com>
Signed-off-by: Julius Volz <julius.volz@gmail.com>
Signed-off-by: dongjiang1989 <dongjiang1989@126.com>
Co-authored-by: Mohammad Alavi <m.alavi1986@gmail.com>
Co-authored-by: Jan Fajerski <jfajersk@redhat.com>
Co-authored-by: Jan Fajerski <jan--f@users.noreply.github.com>
Co-authored-by: Ayoub Mrini <ayoubmrini424@gmail.com>
Co-authored-by: Bartlomiej Plotka <bwplotka@gmail.com>
Co-authored-by: Jorge Turrado <jorge.turrado@mail.schwarz>
Co-authored-by: Ben Kochie <superq@gmail.com>
Co-authored-by: zjumathcode <pai314159@2980.com>
Co-authored-by: Łukasz Mierzwa <l.mierzwa@gmail.com>
Co-authored-by: Ben Edmunds <Tigger2014@users.noreply.github.com>
Co-authored-by: Julien <291750+roidelapluie@users.noreply.github.com>
Co-authored-by: Gabriel Filion <lelutin@torproject.org>
Co-authored-by: Julius Volz <julius.volz@gmail.com>
Co-authored-by: dongjiang <dongjiang1989@126.com>
Co-authored-by: Jeanette Tan <jeanette.tan@grafana.com>
matt-gp pushed a commit to matt-gp/prometheus that referenced this pull request Jan 22, 2026
…timestamp) (prometheus#17411)

Relates to
prometheus#16944 (comment)

Signed-off-by: bwplotka <bwplotka@gmail.com>
Signed-off-by: matt-gp <small_minority@hotmail.com>
matt-gp pushed a commit to matt-gp/prometheus that referenced this pull request Jan 22, 2026
…timestamp) (prometheus#17411)

Relates to
prometheus#16944 (comment)

Signed-off-by: bwplotka <bwplotka@gmail.com>
Signed-off-by: matt-gp <small_minority@hotmail.com>
matt-gp pushed a commit to matt-gp/prometheus that referenced this pull request Jan 22, 2026
…timestamp) (prometheus#17411)

Relates to
prometheus#16944 (comment)

Signed-off-by: bwplotka <bwplotka@gmail.com>
Signed-off-by: matt-gp <small_minority@hotmail.com>
matt-gp pushed a commit to matt-gp/prometheus that referenced this pull request Jan 22, 2026
…timestamp) (prometheus#17411)

Relates to
prometheus#16944 (comment)

Signed-off-by: bwplotka <bwplotka@gmail.com>
Signed-off-by: matt-gp <small_minority@hotmail.com>
matt-gp pushed a commit to matt-gp/prometheus that referenced this pull request Jan 22, 2026
…timestamp) (prometheus#17411)

Relates to
prometheus#16944 (comment)

Signed-off-by: bwplotka <bwplotka@gmail.com>
Signed-off-by: matt-gp <small_minority@hotmail.com>
matt-gp pushed a commit to matt-gp/prometheus that referenced this pull request Jan 22, 2026
…timestamp) (prometheus#17411)

Relates to
prometheus#16944 (comment)

Signed-off-by: bwplotka <bwplotka@gmail.com>
Signed-off-by: matt-gp <small_minority@hotmail.com>
matt-gp pushed a commit to matt-gp/prometheus that referenced this pull request Jan 28, 2026
…timestamp) (prometheus#17411)

Relates to
prometheus#16944 (comment)

Signed-off-by: bwplotka <bwplotka@gmail.com>
Signed-off-by: matt-gp <small_minority@hotmail.com>
SuperQ pushed a commit that referenced this pull request Feb 5, 2026
…timestamp) (#17411) (#17600)

Relates to
#16944 (comment)

Signed-off-by: bwplotka <bwplotka@gmail.com>
Signed-off-by: matt-gp <small_minority@hotmail.com>
Co-authored-by: Bartlomiej Plotka <bwplotka@gmail.com>
wbollock pushed a commit to wbollock/prometheus that referenced this pull request Feb 6, 2026
…timestamp) (prometheus#17411) (prometheus#17600)

Relates to
prometheus#16944 (comment)

Signed-off-by: bwplotka <bwplotka@gmail.com>
Signed-off-by: matt-gp <small_minority@hotmail.com>
Co-authored-by: Bartlomiej Plotka <bwplotka@gmail.com>
Signed-off-by: Will Bollock <wbollock@linode.com>
wbollock pushed a commit to wbollock/prometheus that referenced this pull request Feb 6, 2026
…timestamp) (prometheus#17411) (prometheus#17600)

Relates to
prometheus#16944 (comment)

Signed-off-by: bwplotka <bwplotka@gmail.com>
Signed-off-by: matt-gp <small_minority@hotmail.com>
Co-authored-by: Bartlomiej Plotka <bwplotka@gmail.com>
wbollock pushed a commit to wbollock/prometheus that referenced this pull request Feb 6, 2026
…timestamp) (prometheus#17411) (prometheus#17600)

Relates to
prometheus#16944 (comment)

Signed-off-by: bwplotka <bwplotka@gmail.com>
Signed-off-by: matt-gp <small_minority@hotmail.com>
Co-authored-by: Bartlomiej Plotka <bwplotka@gmail.com>
wbollock pushed a commit to wbollock/prometheus that referenced this pull request Feb 6, 2026
…timestamp) (prometheus#17411) (prometheus#17600)

Relates to
prometheus#16944 (comment)

Signed-off-by: bwplotka <bwplotka@gmail.com>
Signed-off-by: matt-gp <small_minority@hotmail.com>
Co-authored-by: Bartlomiej Plotka <bwplotka@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants