Enable go 1.27 support - #52
Conversation
|
Thanks! Did you verify that the aliased structures in the runtime are unchanged (at least the prefix that we're using)? |
|
Claude checked: ⏺ Verified — and I ran it, not just read it. Source check (github.com/golang/go @ tag go1.27.0) internal/abi.Type — field-for-field identical to swiss's rtType: Size_, PtrBytes uintptr; Hash uint32; TFlag, Align_, FieldAlign_, Kind_ uint8; Equal func; GCData internal/abi.MapType (src/internal/abi/map.go) — the aliased prefix is unchanged: type MapType struct { Everything past Hasher was reworked in 1.27 for the mapsplitgroup experiment, but that's all beyond the prefix swiss reads. Note internal/abi/map_swiss.go and the runtime.eface — still {_type *_type; data unsafe.Pointer}. runtime.fastrand64 — still exists as a push-linknamed compat shim (src/runtime/rand.go:341, //go:linkname legacy_fastrand64 runtime.fastrand64), so swiss's pull Empirical check Pulled the real go1.27.0 toolchain from the module proxy and ran swiss against it with -tags untested_go_version:
Conclusion Safe to widen the build tag to (go1.20 && !go1.28) || untested_go_version. This was tested on darwin/arm64 only, but since the struct definitions are textually |
…s Go 1.27 support (#50383) #### Description Pins the govulncheck job's toolchain to `oldstable`. Go 1.27.0 released and `stable` now resolves to it, but `github.com/cockroachdb/swiss` (an indirect dependency of `extension/tailstorage/pebbletailstorageextension` via pebble) does not build with Go 1.27, so the `govulncheck (extension)` shard fails on every PR. govulncheck sweeps all modules regardless of ci-scope, which is why every PR is hit. A comment marks the pin as temporary, to revert once swiss supports Go 1.27 (upstream fix is open at cockroachdb/swiss#52) and the dependency is bumped. #### Link to tracking issue Closes #50382 #### Testing - CI on this PR, the govulncheck shards should pass again under oldstable (1.26), which was green until yesterday #### Documentation Not applicable, CI-only change. #### Authorship - [x] I, a human, wrote this pull request description myself.
|
Hi, thanks for taking a look. Yes, I can confirm that the runtime aliases all still match:
|
There was a problem hiding this comment.
Could you update these matrices to use only 1.24+? Older macos CI builds fail. Also, add fail-fast so all jobs run even if some fail. Here's a diff:
--- a/.github/workflows/ci.yaml
+++ b/.github/workflows/ci.yaml
@@ -10,14 +10,12 @@ on:
jobs:
test:
strategy:
+ fail-fast: false
matrix:
os:
- ubuntu-latest
- macos-latest
go:
- - '1.21'
- - '1.22'
- - '1.23'
- '1.24'
- '1.25'
- '>=1.26.0-rc.1'
@@ -36,6 +34,7 @@ jobs:
linux-noswissmap:
strategy:
+ fail-fast: false
matrix:
go:
- '1.24'
@@ -54,6 +53,7 @@ jobs:
linux-race:
runs-on: ubuntu-latest
strategy:
+ fail-fast: false
matrix:
go:
- '1.24'
@@ -73,6 +73,7 @@ jobs:
linux-32bit:
runs-on: ubuntu-latest
strategy:
+ fail-fast: false
matrix:
go:
- '1.24'
@@ -91,6 +92,7 @@ jobs:
linux-qemu-s390x:
runs-on: ubuntu-latest
strategy:
+ fail-fast: false
matrix:
go:
- '1.24.4'There was a problem hiding this comment.
Done. Thank you!
* [chore][processor/resourcedetection] Add missing E2E tests for azure container apps detector (#50288)
<!--Ex. Fixing a bug - Describe the bug and how this fixes the issue.
Ex. Adding a feature - Explain what this achieves.-->
#### Description
Add missing E2E tests for the Azure Container Apps detector.
<!--Authorship attestation. See AGENTS.md for details. AI agents must
not check this box on behalf
of the user; the human author must check it themselves before the PR is
ready for review.-->
#### Authorship
- [X] I, a human, wrote this pull request description myself.
<!--Please delete paragraphs that you did not use before submitting.-->
Signed-off-by: Paulo Dias <paulodias.gm@gmail.com>
* [pkg/stanza/fileconsumer] Skip files unchanged by path+mtime since the previous poll (#48039)
#### Description
~~Adds the opt-in `filelog.skipUnchangedPathByMtime` feature gate
(alpha).~~ This PR now adds a new boolean config option
`skip_unmodified_files`, defaulting to off. When set to `true`, files
whose stat mtime matches the `LastObservedMtime` of an already-tracked
reader (in `previousPollFiles` or any `knownFiles` generation) are
skipped entirely for the current poll: no open, no fingerprint, no read.
The matched metadata is promoted into the freshest `knownFiles`
generation so it ages on the same schedule as if it had been processed.
This was originally feature gated. However, after discussion with
stakeholders it was decided to implement it as an opt-in configuration
option instead.
#### Motivation
Quoting @braydonk on #47444 (the discussion that spawned #47861):
> Something that could work would be not to change the fingerprint
identities,
> but instead to maintain a light cache of the paths we saw last poll
and their
> mtimes at that poll, then next poll paths are compared to the cache of
mtimes
> by path that we saw last poll.
For deployments with many matching files (e.g. per-host syslog outputs
where
most files are idle most of the time), every poll currently re-opens
every
file just to recompute its fingerprint and conclude "no new data." This
wastes
IO at scale. The skip path turns those checks into a single `stat` per
file.
#### Design notes
- **Reader-lifetime metadata, not a parallel cache.** `LastObservedPath`
and
`LastObservedMtime` live on `reader.Metadata`, so the mtime tracking
ages on
the same lifecycle as the reader itself (knownFiles generations +
archive).
An earlier draft used a per-poll cache; that was rejected because a
cache
that expires before the reader does would cause re-reads.
- **`os.Stat`, not `os.Lstat`.** Symlinks resolve to the same target
file
`os.Open` would otherwise read; an in-code comment documents this.
- **Internal archive intentionally not consulted.** The fileconsumer's
internal `archive` package (the persistent metadata store for readers
that
have aged out of the active `knownFiles` window — unrelated to
file-format
archives like gzip) is queried by fingerprint, not path. Path+mtime
lookup
there would conflate path-based identity with fingerprint-based
resume-identity: an archived pre-rotation file and a current
post-rotation
file at the same path could share an mtime, and treating them as
identical
would silently skip new content. Path+mtime skip is therefore scoped to
the
active generation window only.
#### Link to tracking issue
Refs #47861
#### Testing
- Unit tests in `internal/tracker/tracker_test.go` cover the helper
`TryReuseByPathMtime` across 6 scenarios: hit in `previousPollFiles`,
hit
in earlier `knownFiles` generations, mtime mismatch, path mismatch, no
candidates, and empty path.
- End-to-end `TestSkipUnmodifiedFiles` in `file_test.go`: sets
`skip_unmodified_files: true`, creates files, polls once, then verifies
subsequent polls do not re-read files whose mtimes haven't changed.
- `gofmt`, `golangci-lint`, and full `pkg/stanza/fileconsumer/...` suite
all
clean.
#### Note on chloggen component
The actual path is `pkg/stanza/fileconsumer`, but that value is not in
the
chloggen validator's allowed list at `.chloggen/config.yaml`. The
closest
valid entry is `pkg/fileconsumer`, which appears to be a misnamed alias
for
the actual path. Using that to satisfy the validator. Sister PR #47445
makes
the same choice based on @paulojmdias's review feedback there.
Co-authored-by: Vihas Makwana <121151420+VihasMakwana@users.noreply.github.com>
* [processor/dynamic_sampling] require scoped selectors for fingerprint attributes (#50352)
#### Description
Requires `fingerprint_attributes` entries to be scoped attribute
selectors, so each entry says where its value is read from.
Before:
```yaml
fingerprint_attributes: ["service.name", "http.route"]
```
After:
```yaml
fingerprint_attributes:
- resource.attributes["service.name"]
- span.attributes["http.route"]
```
| Scope | Reads from |
| --- | --- |
| `resource.` | each resource's attributes |
| `scope.` | each instrumentation scope's attributes |
| `span.` | every span's attributes |
| `root.` | the spans matching the configured `root_span_condition` |
| `any.` | the union of resource, instrumentation scope, and span
attributes |
The `resource.`/`scope.`/`span.` prefixes match OTTL's span-context path
names, so conditions and fingerprint entries share one spelling. Entries
are selectors, not OTTL expressions - fingerprints are built from the
whole trace while OTTL evaluates one span at a time, which is why
`root.` and `any.` can exist here but not in OTTL.
Each selector collects every distinct value it matches, so there's no
first-match or precedence order to remember. Bare names are rejected
with an error that shows the scoped form. I went with rejection rather
than a default scope. A span default would silently turn resource
attributes like `service.name` into `<missing>` keys, and an `any.`
default quietly opts users into scanning every span. If the requirement
turns out to be annoying we can relax it later without breaking anyone,
but whatever default we pick now gets frozen at alpha.
#### Link to tracking issue
Refs #49311
#### Testing
- Selector parser table, per-scope extraction tests (root-matcher
behaviour, any-scope union), and an end-to-end processor test for the
root-selector wiring.
- Per-scope benchmarks across trace sizes with a span-miss variant.
`resource.`/`scope.` are flat (~47ns). The walking scopes on a
10,000-span trace cost 25-32us per entry when lookups miss or skip and
~155us when the key hits every span. There are no allocations on the
extraction path, and the root matcher (which reuses the `IsRootSpan()`
fast path) is only built for rules with `root.` entries.
- `TestReadmeConfigExamples` plus the full module suite with `-race`,
lint, chloggen validate.
#### Documentation
- The README's Fingerprints section now documents the selector grammar,
the scope table, union semantics, and extraction cost, with all examples
updated. It also recommends qualifying every OTTL path so conditions and
selectors read the same, and corrects a wrong claim that OTTL requires
qualification (unqualified paths are valid and resolve to the span
context). Breaking changelog entry included, with bare-name migration
guidance.
#### Authorship
- [x] I, a human, wrote this pull request description myself.
* [chore][exporter/opensearchexporter] Add kylehounslow as codeowner (#50117)
#### Description
Adds @kylehounslow as an active code owner of the OpenSearch exporter.
He is an OpenTelemetry org member, has contributed to the component
(#49362), and has been actively reviewing OpenSearch exporter PRs. The
component's metadata.yaml already has `seeking_new: true`. Kyle's
contributions are as follows:
Reviewed PRs:
https://github.com/open-telemetry/opentelemetry-collector-contrib/pulls?q=is%3Apr+reviewed-by%3A%40kylehounslow+label%3Aexporter%2Fopensearch
Authored PRs:
https://github.com/open-telemetry/opentelemetry-collector-contrib/pulls?q=is%3Apr++label%3Aexporter%2Fopensearch+author%3Akylehounslow+
#### Link to tracking issue
<!-- none, or add an issue link if you have one -->
None
#### Testing
No functional changes; code-owner metadata only.
#### Documentation
Updated the generated CODEOWNERS entry and the component README header.
#### Authorship
- [x] I, a human, wrote this pull request description myself.
Signed-off-by: Shenoy Pratik Gurudatt <sgguruda@amazon.com>
* [chore] address zizmor permission warnings (#50374)
In most cases, explicitly setting persist-credentials is the right thing
to do. In some cases, those creds are needed to push git changes.
#### Authorship
- [x] I, a human, wrote this pull request description myself.
Signed-off-by: Alex Boten <223565+codeboten@users.noreply.github.com>
* [chore] address zizmor template-injection warnings (#50373)
Apply zizmor recommendations to various workflows.
#### Authorship
- [x] I, a human, wrote this pull request description myself.
Signed-off-by: Alex Boten <223565+codeboten@users.noreply.github.com>
* [chore][ci] pin govulncheck to oldstable while cockroachdb/swiss lacks Go 1.27 support (#50383)
#### Description
Pins the govulncheck job's toolchain to `oldstable`. Go 1.27.0 released
and `stable` now resolves to it, but `github.com/cockroachdb/swiss` (an
indirect dependency of
`extension/tailstorage/pebbletailstorageextension` via pebble) does not
build with Go 1.27, so the `govulncheck (extension)` shard fails on
every PR. govulncheck sweeps all modules regardless of ci-scope, which
is why every PR is hit.
A comment marks the pin as temporary, to revert once swiss supports Go
1.27 (upstream fix is open at cockroachdb/swiss#52) and the dependency
is bumped.
#### Link to tracking issue
Closes #50382
#### Testing
- CI on this PR, the govulncheck shards should pass again under
oldstable (1.26), which was green until yesterday
#### Documentation
Not applicable, CI-only change.
#### Authorship
- [x] I, a human, wrote this pull request description myself.
* [chore][internal/filter] migrate feature gates to metadata.yaml (#50152)
#### Description
the change moves the three internal/filter feature-gate registrations
into metadata.yaml, uses generated metadata variables, preserves the
exported metric gate, and removes the linter exclusion
#### Link to tracking issue
https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46116
#### Testing
go test ./... in internal/filter, go test ./... in
processor/filterprocessor, scoped golangci-lint, and deterministic
mdatagen regeneration.
#### Documentation
the implementation generates internal/filter/documentation.md with the
three feature gates
#### Authorship
- I, a human, wrote this pull request description myself.
---------
Co-authored-by: Antoine Toulme <antoine@toulme.name>
Co-authored-by: Tyler Helmuth <12352919+TylerHelmuth@users.noreply.github.com>
Co-authored-by: Yang Song <songy23@users.noreply.github.com>
Copilot-Session: 354ef758-3175-495c-85f3-96ac4492d9c6
Copilot-Session: 1997e118-fd19-4b82-8f36-d06de2a45ff4
Copilot-Session: 3987a673-9e20-4ac7-bea5-1ce96f4e276a
* chore: fix esexporter EOF error due to premature context canceled (#50388)
<!--Ex. Fixing a bug - Describe the bug and how this fixes the issue.
Ex. Adding a feature - Explain what this achieves.-->
#### Description
PR
https://github.com/open-telemetry/opentelemetry-collector-contrib/pull/50329/changes
introduced a bug causing premature cancelation of the context (before
the body is read). This is because the `RoundTripper` returns after
headers are returned and that causes the `timeoutInterceptor` to cancel
the context leading to EOF errors when the body is actually read.
<!-- Issue number (e.g. #1234) or full URL to issue, if applicable. -->
#### Link to tracking issue
Fixes
https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/50316
<!--Describe what testing was performed and which tests were added.-->
#### Testing
Unit tests added
<!--Describe the documentation added.-->
#### Documentation
N/A. Also, since the previous fix was incomplete and not yet released, I
have added this PR number to the previous changelog instead of creating
a new one.
<!--Authorship attestation. See AGENTS.md for details. AI agents must
not check this box on behalf
of the user; the human author must check it themselves before the PR is
ready for review.-->
#### Authorship
- [x] I, a human, wrote this pull request description myself.
<!--Please delete paragraphs that you did not use before submitting.-->
---------
Co-authored-by: Andrzej Stencel <andrzej.stencel@elastic.co>
* [chore] adding ignore for zizmor warns (#50375)
These workflows are intentionally using pull_request_target.
#### Authorship
- [x] I, a human, wrote this pull request description myself.
Signed-off-by: Alex Boten <223565+codeboten@users.noreply.github.com>
* [processor/dynamic_sampling] add record_fingerprint attribute recording (#50353)
#### Description
Adds `record_fingerprint` (default `none`), which stamps the matched
rule's fingerprint on every span of a kept trace under
`otelcol.processor.dynamic_sampling.fingerprint`, the same pattern as
the rule-name attribute. Late-arriving spans get the same value via the
decision cache, so a trace's spans never disagree.
```yaml
dynamic_sampling:
record_fingerprint: hash # none (default) | value | hash
```
`value` records the raw fingerprint. `hash` records the first 8 bytes of
its SHA-256 as 16 hex characters, so the size is fixed and the same key
always produces the same token across instances and restarts. A span's
token can be verified by recomputing from the raw fingerprint, `echo -n
'<fingerprint>' | sha256sum | cut -c1-16`. The goal is obfuscation and
size control, not privacy. No unsalted hash protects guessable values
from enumeration, and the docs say so. I picked SHA-256 over a faster
non-cryptographic hash because the cost lands once per decision and it
holds up for high-entropy values.
Rules whose sampler has no `fingerprint_attributes` (`always_sample`,
`probabilistic`) never produce the attribute, nor do
probabilistic-eviction decisions.
Also adds a `fingerprint_duration` histogram (microseconds,
rule-labelled, recorded once per decision around the extraction) so an
expensive fingerprint, eg a wide `any.` scope on large traces, is
attributable at runtime. The metric description is explicit that it's a
relative signal, absolute values depend on host and load.
Was stacked on #50352 (scoped selectors), which has merged, so the diff
is now scoped to this change.
#### Link to tracking issue
Refs #49311
#### Testing
- Tests per mode (off by default, raw value, deterministic hash matching
the documented recompute recipe), late-span consistency, and the
no-fingerprint sampler case.
- Decide-path benchmarks across modes. Enabling costs one attribute
write per span (~20-30% on decide, +1 alloc/span). Value and hash are
indistinguishable, the SHA runs once per decision.
- A metric test pins the histogram's rule attribute; full module suite
with `-race`, lint, generate, chloggen validate.
#### Documentation
- README metrics table row for the new histogram, an output-attributes
table row, plus a "Recording the fingerprint" section with the recompute
recipe, the enumeration caveat, and the decision-cache size note for
value mode. Changelog entry (enhancement) included.
#### Authorship
- [x] I, a human, wrote this pull request description myself.
---------
Co-authored-by: Sean Marciniak <30928402+MovieStoreGuy@users.noreply.github.com>
* [receiver/windowsperfcounters] Rename windowsperfcounters to windows_perf_counters with deprecated alias windowsperfcounters (#50342)
#### Description
* Renames the `windowsperfcounters` recevier to `windows_perf_counters`
to standardize to lower_snake_case
* Updates config names in reports and .github to reflect new name
#### Link to tracking issue
https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/45339
#### Testing
* Updates `testdata/config.yaml` to use new name
* Creates new `testdata/config_deprecated.yaml`
* Duplicates the original `TestLoadConfig` into
`TestLoadDeprecatedConfig`, testing against new deprecated config file
* `make test` and `make lint`
#### Documentation
README.md and example config updated with new name
#### Authorship
- [x] I, a human, wrote this pull request description myself.
* [exporter/elasticsearchexporter] Sanitize elasticsearch.index attribute in dynamic router (#49227)
## Description
This PR resolves an input validation vulnerability in the Elasticsearch
Exporter. Previously, the `elasticsearch.index` attribute was retrieved
dynamically from telemetry record/scope/resource attributes and returned
directly without validation, whereas sibling attributes
`data_stream.dataset` and `data_stream.namespace` were properly
sanitized.
This fix applies the `sanitizeDataStreamField()` validation to the
retrieved `elasticsearch.index` attribute before routing documents to
it. Disallowed characters are replaced with underscores, and the name is
lowercased and truncated to standard length limits.
Fixes #49219
## Testing
Added unit tests in `data_stream_router_test.go` to verify correct
sanitization behavior (replacing invalid runes like `/` and `:` with
`_`, converting to lowercase, etc.). Ran all exporter module tests:
```bash
go test -v ./...
---------
Signed-off-by: vishal <httpsvishal07@gmail.com>
* [receiver/statsd] Change the default for is_monotonic_counter to true (#50275)
<!--Ex. Fixing a bug - Describe the bug and how this fixes the issue.
Ex. Adding a feature - Explain what this achieves.-->
#### Description
Change the default value of `is_monotonic_counter` to true. The
behavioral change is hidden behind feature gate
<!-- Issue number (e.g. #1234) or full URL to issue, if applicable. -->
#### Link to tracking issue
Fixes
https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/14956
<!--Authorship attestation. See AGENTS.md for details. AI agents must
not check this box on behalf
of the user; the human author must check it themselves before the PR is
ready for review.-->
#### Authorship
- [x] I, a human, wrote this pull request description myself.
<!--Please delete paragraphs that you did not use before submitting.-->
---------
Signed-off-by: odubajDT <ondrej.dubaj@dynatrace.com>
* [receiver][hostmetricsreceiver] Adopt Process RC in Process scraper (#49987)
<!--Ex. Fixing a bug - Describe the bug and how this fixes the issue.
Ex. Adding a feature - Explain what this achieves.-->
#### Description
The Process namespace in semantic conventions has moved to RC and work
has been done in mdatagen to support versioned metrics. This PR updates
the process scraper metrics to migrate to the latest Process semconv
using versioned metrics. This allows a migration path to be specified.
The process scraper metadata was updated to adopt the Process semconv
RC. Any metric that has been marked as RC in semantic conventions has
been set to `beta`, this was decided in the Systems SIG on July 23rd
2026.
This work uses versioned metrics to migrate legacy metrics to the latest
semantic conventions. Mdatagen in collector-core was updated to support
this with the following work:
- https://github.com/open-telemetry/opentelemetry-collector/pull/15309
- https://github.com/open-telemetry/opentelemetry-collector/pull/15596
- https://github.com/open-telemetry/opentelemetry-collector/pull/15649
- https://github.com/open-telemetry/opentelemetry-collector/pull/15651
This work follows the RFC on doubling writing, see RFC
[here](https://github.com/open-telemetry/opentelemetry-collector/blob/main/docs/rfcs/semconv-feature-gates.md#handling-conflicts-during-double-publishing).
We follow these rules:
> Different attributes: If a metric name stays the same but an attribute
is renamed, emit a single metric with both the v0 and v1 attributes
present. For instance, if process.cpu.time uses process.owner in v0 and
process.owner.name in v1, emit one metric with both attributes.
> Different metric type: If a metric name stays the same but the type
changes (e.g., Gauge to UpDownCounter), emit a single metric with the v1
type, effectively prioritizing the new convention. For instance, if
system.memory.usage changes from Gauge to UpDownCounter, emit it as an
UpDownCounter.
We also auto enable v1 metrics when the feature gate for v1 emission is
turned on, this is done so the user doesn't have to update the config
with the v1 metric.
Code was generated after updating the Process scraper metadata file with
`make generate`.
<!-- Issue number (e.g. #1234) or full URL to issue, if applicable. -->
#### Link to tracking issue
Fixes #49708
<!--Describe what testing was performed and which tests were added.-->
#### Testing
Generate tests have been created from running `make generate`. This
provides tests for versioned metrics. Also a manual test was updated to
support the semconv version `v1.43.0`
<!--Describe the documentation added.-->
#### Documentation
Documentation was updated for the process scraper via `make generate`.
<!--Authorship attestation. See AGENTS.md for details. AI agents must
not check this box on behalf
of the user; the human author must check it themselves before the PR is
ready for review.-->
#### Authorship
- [x] I, a human, wrote this pull request description myself.
<!--Please delete paragraphs that you did not use before submitting.-->
* [receiver/azure_functions] Support metrics for Event Hub trigger (continuation) (#49851)
<!--Ex. Fixing a bug - Describe the bug and how this fixes the issue.
Ex. Adding a feature - Explain what this achieves.-->
#### Description
adds support for receiving metrics from Azure Functions triggered by
Event Hub
<!-- Issue number (e.g. #1234) or full URL to issue, if applicable. -->
#### Link to tracking issue
- Part 3 of
https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/43507
- Continuation of #48105
<!--Describe what testing was performed and which tests were added.-->
#### Testing
Corresponding Unit Test were added.
<!--Describe the documentation added.-->
#### Documentation
Readme was adjusted to reflect PR changes
---------
Signed-off-by: Tetiana Kravchenko <tetiana.kravchenko@elastic.co>
Co-authored-by: Tetiana Kravchenko <tetiana.kravchenko@elastic.co>
* [chore][receiver/hostmetricsreceiver] Fix darwin/freebsd/aix build (#50397)
#### Description
Fixes merge conflicts from
https://github.com/open-telemetry/opentelemetry-collector-contrib/pull/49987
#### Authorship
- [x] I, a human, wrote this pull request description myself.
* [extension/opampextension] deduplicate health events before sending to OpAMP server (#50207)
<!--Ex. Fixing a bug - Describe the bug and how this fixes the issue.
Ex. Adding a feature - Explain what this achieves.-->
#### Description
Currently, the extension subscribes to component health events using
`status.Verbose`. Because `statusAggregatorEventLoop` processes every
event from `statusChan` without state diffing, this results in
continuous, identical `StatusOK` health reports being transmitted over
the wire to the OpAMP server, causing unnecessary load and network
traffic.
This PR introduces a local deduplication check inside
`statusAggregatorEventLoop` to ensure `setHealth` is only executed when
there is an actual change in the state or error message.
<!-- Issue number (e.g. #1234) or full URL to issue, if applicable. -->
#### Link to tracking issue
Fixes #50197
<!--Describe what testing was performed and which tests were added.-->
#### Testing
Ran `maketest`, `makegotest`, and the changes were tested with `go test
./extension/opampextension`. Additionally the a test case was added to
test whether a duplicate case will be filtered or not.
<!--Describe the documentation added.-->
#### Documentation
<!--Authorship attestation. See AGENTS.md for details. AI agents must
not check this box on behalf
of the user; the human author must check it themselves before the PR is
ready for review.-->
#### Authorship
- [X] I, a human, wrote this pull request description myself.
<!--Please delete paragraphs that you did not use before submitting.-->
* [extension/opamp] Avoid host ID lookup when building os.description (#50081)
#### Description
<!-- Issue number (e.g. #1234) or full URL to issue, if applicable. -->
#### Link to tracking issue
Fixes #46965 by using `gopsutil PlatformInformation` so OpAMP can start
on Windows containers where `MachineGuid` is unavailable.
#### Testing
* new unit test `TestGetOSDescription`
* additionally done E2E test on Windows+Docker environment using this
setup:
https://github.com/coralogix/telemetry-shippers/tree/master/otel-ecs-ec2-windows
#### Authorship
- [x] I, a human, wrote this pull request description myself.
<!--Please delete paragraphs that you did not use before submitting.-->
---------
Co-authored-by: Israel Blancas <iblancasa@gmail.com>
* [chore] [processor/dynamicsampling] Document throughput goal is enforced per-instance (#50280)
#### Description
This PR adds an IMPORTANT callout to both the `ema_throughput` and
`windowed_throughput` reference sections stating that the goal applies
per instance. Also, adds an explicit paragraph under **Deployment
considerations** contrasting the throughput samplers (per-instance goal)
with the percentage-based samplers (which compose across instances).
#### Link to tracking issue
Fixes #50278
#### Testing
N/A
#### Documentation
Done.
#### Authorship
- [x] I, a human, wrote this pull request description myself.
Signed-off-by: singhvibhanshu <find.vibhanshu@gmail.com>
* [chore] [pkg/stanza] Use math/rand/v2.ChaCha8.Read in fingerprint test (#50408)
#### Description
This PR replaces the hand-rolled random buffer fill in
`TestStartsWith_FromFile` with a single `ChaCha8.Read` call. The
original loop over `binary.BigEndian.PutUint32` existed only because
`ChaCha8.Read` was not available before go1.23, and since `pkg/stanza`
now requires go1.25 that workaround is no longer needed. This simplifies
the test helper and, as a side benefit, drops the previous constraint
that the buffer length be a multiple of 4.
#### Authorship
- [x] I, a human, wrote this pull request description myself.
Signed-off-by: singhvibhanshu <find.vibhanshu@gmail.com>
* [chore]: Promote braydonk to maintainer (#50393)
@braydonk has been in the Collector SIG for a long time helping mature
several components, especially the hostmetricsreceiver. He has
consistently shown great judgement, commitment to the SIG, and great
communication skills.
- PRs reviewed:
https://github.com/open-telemetry/opentelemetry-collector-contrib/pulls?q=is%3Apr+reviewed-by%3Abraydonk+
- PRs authored:
https://github.com/open-telemetry/opentelemetry-collector-contrib/pulls?q=is%3Apr+author%3Abraydonk+
- Issues commented:
https://github.com/open-telemetry/opentelemetry-collector-contrib/issues?q=is%3Aissue%20commenter%3Abraydonk
- Issues opened:
https://github.com/open-telemetry/opentelemetry-collector-contrib/issues?q=is%3Aissue%20author%3Abraydonk
- Commits:
https://github.com/open-telemetry/opentelemetry-collector-contrib/commits?since=2021-05-31&until=now&author=braydonk
For these reasons we'd like to promote @braydonk to Maintainer.
<!--Authorship attestation. See AGENTS.md for details. AI agents must
not check this box on behalf
of the user; the human author must check it themselves before the PR is
ready for review.-->
#### Authorship
- [x] I, a human, wrote this pull request description myself.
<!--Please delete paragraphs that you did not use before submitting.-->
* [chore] [exporter/faro] Document X-Faro-Session-Id propagation via headers_setter (#50364)
<!--Ex. Fixing a bug - Describe the bug and how this fixes the issue.
Ex. Adding a feature - Explain what this achieves.-->
#### Description
This PR adds documentation explaining how to propagate the session id
onto exported telemetry when using Grafana Cloud's Faro collector, which
rejects requests that lack an X-Faro-Session-Id header. It documents the
approach of forwarding the session id from the incoming request onto the
outgoing export by using the headers_setter extension with from_context,
combined with include_metadata on the receiver, following the Grafana
Cloud "Process Faro telemetry" example.
<!-- Issue number (e.g. #1234) or full URL to issue, if applicable. -->
#### Link to tracking issue
Fixes #50361
<!--Describe what testing was performed and which tests were added.-->
#### Testing
N/A
<!--Describe the documentation added.-->
#### Documentation
Tuned.
<!--Authorship attestation. See AGENTS.md for details. AI agents must
not check this box on behalf
of the user; the human author must check it themselves before the PR is
ready for review.-->
#### Authorship
- [x] I, a human, wrote this pull request description myself.
<!--Please delete paragraphs that you did not use before submitting.-->
---------
Signed-off-by: singhvibhanshu <find.vibhanshu@gmail.com>
* [chore][ci] Add missing 'other' group to govulncheck matrix (#50422)
<!--Ex. Fixing a bug - Describe the bug and how this fixes the issue.
Ex. Adding a feature - Explain what this achieves.-->
#### Description
Add missing `other` group to `govulncheck` CI.
I'll look into other PR a way to automatically use all the groups to
avoid this happening again in the future.
<!--Authorship attestation. See AGENTS.md for details. AI agents must
not check this box on behalf
of the user; the human author must check it themselves before the PR is
ready for review.-->
#### Authorship
- [X] I, a human, wrote this pull request description myself.
<!--Please delete paragraphs that you did not use before submitting.-->
Signed-off-by: Paulo Dias <paulodias.gm@gmail.com>
* [chore][ci] Fix discussion-needed label mapping in add-labels.sh (#50426)
<!--Ex. Fixing a bug - Describe the bug and how this fixes the issue.
Ex. Adding a feature - Explain what this achieves.-->
#### Description
Looking into
[CONTRIBUTING.md](https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/CONTRIBUTING.md#adding-labels-via-comments)
and into the available labels, the right label is `discussion needed`
and the label in the comment should be `discussion-needed` as it is
documented.
<!--Authorship attestation. See AGENTS.md for details. AI agents must
not check this box on behalf
of the user; the human author must check it themselves before the PR is
ready for review.-->
#### Authorship
- [X] I, a human, wrote this pull request description myself.
<!--Please delete paragraphs that you did not use before submitting.-->
Signed-off-by: Paulo Dias <paulodias.gm@gmail.com>
* [chore][ci] Check sudo integration test results in integration-tests gate (#50423)
<!--Ex. Fixing a bug - Describe the bug and how this fixes the issue.
Ex. Adding a feature - Explain what this achieves.-->
#### Description
Currently, only the `integration-tests-matrix` is validated. This PR
also adds the `integration-sudo-tests-matrix` for interpreting the
result.
<!--Authorship attestation. See AGENTS.md for details. AI agents must
not check this box on behalf
of the user; the human author must check it themselves before the PR is
ready for review.-->
#### Authorship
- [X] I, a human, wrote this pull request description myself.
<!--Please delete paragraphs that you did not use before submitting.-->
Signed-off-by: Paulo Dias <paulodias.gm@gmail.com>
* [pkg/ottl]: update grammar docs (#50398)
#### Description
Did a review of the OTTL grammar docs and adding missing items.
#### Link to tracking issue
- related to
https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/50217
<!--Authorship attestation. See AGENTS.md for details. AI agents must
not check this box on behalf
of the user; the human author must check it themselves before the PR is
ready for review.-->
#### Authorship
- [x] I, a human, wrote this pull request description myself.
<!--Please delete paragraphs that you did not use before submitting.-->
---------
Co-authored-by: Edmo Vamerlatti Costa <11836452+edmocosta@users.noreply.github.com>
* [chore][ci] Add concurrency groups to e2e and scoped-test workflows (#50428)
<!--Ex. Fixing a bug - Describe the bug and how this fixes the issue.
Ex. Adding a feature - Explain what this achieves.-->
#### Description
Add missing `concurrency` groups to e2e and scoped tests workflows, as
we have on other test workflows.
Configuration copied from other workflows (including the comment).
I have deep-dived into issues and git history, and I have not seen any
reason not to have it on those files.
<!--Authorship attestation. See AGENTS.md for details. AI agents must
not check this box on behalf
of the user; the human author must check it themselves before the PR is
ready for review.-->
#### Authorship
- [X] I, a human, wrote this pull request description myself.
<!--Please delete paragraphs that you did not use before submitting.-->
Signed-off-by: Paulo Dias <paulodias.gm@gmail.com>
* [chore] zizmor fix (#50439)
Another zizmor fix, ran zizmor --fix to address another warning
#### Authorship
- [x] I, a human, wrote this pull request description myself.
Signed-off-by: Alex Boten <223565+codeboten@users.noreply.github.com>
* [chore] set permissions on workflows (#50441)
This addresses more zizmor warnings.
#### Authorship
- [x] I, a human, wrote this pull request description myself.
Signed-off-by: Alex Boten <223565+codeboten@users.noreply.github.com>
* [chore] remove unnecessary step (#50440)
This step is unnecessary in the tidy-dependencies as credentials are
persisted at the checkout step. The workflow in core does the same.
#### Authorship
- [x] I, a human, wrote this pull request description myself.
Signed-off-by: Alex Boten <223565+codeboten@users.noreply.github.com>
* [receiver/simpleprometheus] remove examples package (#50443)
#### Description
The Dockerfile in the examples directory has not been updated for some
time. If there is value in the examples, it needs to be kept up to date,
I'm proposing to remove it.
NOTE: happy to add a changelog if deemed necessary
<!--Authorship attestation. See AGENTS.md for details. AI agents must
not check this box on behalf
of the user; the human author must check it themselves before the PR is
ready for review.-->
#### Authorship
- [x] I, a human, wrote this pull request description myself.
Signed-off-by: Alex Boten <223565+codeboten@users.noreply.github.com>
* [chore] Regenerate `tidylist.txt` to fix go-mod-hygiene on main (#50447)
#### Description
This PR fixes failing go-mod-hygiene check on main. Caused by -
https://github.com/open-telemetry/opentelemetry-collector-contrib/pull/50443
#### Authorship
- [x] I, a human, wrote this pull request description myself.
Signed-off-by: singhvibhanshu <find.vibhanshu@gmail.com>
* [chore] [receiver/simpleprometheus] Remove temporary HTTP client overrides from tests (#49676)
#### Description
Removes the temporary HTTP client default overrides from the
`simpleprometheusreceiver` test fixture.
These overrides were added during the migration to
`confighttp.NewDefaultClientConfig()` to preserve the previous
zero-value
behavior. The component has now been reviewed and can use the defaults
provided
by the constructor.
This change only affects test code. The resulting Prometheus
configuration and
production behavior remain unchanged.
#### Link to tracking issue
Related to #49316
#### Testing
- Ran `TestGetPrometheusConfig/Test_with_job_name`
- Ran `make test`
- Ran `make lint`
- Ran `git diff --check`
No new test was added because this change updates an existing test
fixture, and
the existing test verifies that the resulting Prometheus configuration
remains
unchanged.
#### Documentation
No documentation changes are required because this change only updates a
test
fixture.
#### Authorship
- [X] I, a human, wrote this pull request description myself.
* [receiver/icmp_check] rename to `icmp_check` with deprecated alias `icmpcheckreceiver` (#50400)
#### Description
Rename `icmpcheckreceiver` to `icmp_check` to match the snake_case
naming convention. Keep `icmpcheckreceiver` as a deprecated alias for
backward compatibility.
#### Link to tracking issue
Part of #45339
#### Testing
* `go build ./...` passes
* `go test ./...` passes
* Verified successful run using the name `icmp_check`
* Verified successful run using the name `icmpcheckreceiver`
* Verified log warning when using deprecated name in config
#### Authorship
- [x] I, a human, wrote this pull request description myself.
* [receiver/systemd] Add basic memory metrics (#50209)
<!--Ex. Fixing a bug - Describe the bug and how this fixes the issue.
Ex. Adding a feature - Explain what this achieves.-->
#### Description
This adds new `systemd.service.memory.usage` and
`systemd.service.memory.peak` metrics, tracking the current and peak
memory usage of a service.
<!-- Issue number (e.g. #1234) or full URL to issue, if applicable. -->
#### Link to tracking issue
#50035. I'm not marking this as *fixes*, as the issue mentions several
additional features where the design is a little less clear.
<!--Describe what testing was performed and which tests were added.-->
#### Testing
- Updated the systemd cgroup unit tests to capture these metrics.
- Manually tested the collector and confirmed the correct results were
produced.
<!--Describe the documentation added.-->
#### Documentation
`metadata.yaml` has been updated, and the `documentation.md` file
regenerated.
<!--Authorship attestation. See AGENTS.md for details. AI agents must
not check this box on behalf
of the user; the human author must check it themselves before the PR is
ready for review.-->
#### Authorship
- [x] I, a human, wrote this pull request description myself.
<!--Please delete paragraphs that you did not use before submitting.-->
* [chore][ci] Wait for pending runs in /workflow-approve instead of giving up (#50453)
<!--Ex. Fixing a bug - Describe the bug and how this fixes the issue.
Ex. Adding a feature - Explain what this achieves.-->
#### Description
Runs can't become queryable as `action_required` the instant they are
created, so a comment posted right after a push can find nothing and
give up. This change adds a delay of up to 60s in the loop while waiting
for runs to approve.
<!--Authorship attestation. See AGENTS.md for details. AI agents must
not check this box on behalf
of the user; the human author must check it themselves before the PR is
ready for review.-->
#### Authorship
- [X] I, a human, wrote this pull request description myself.
<!--Please delete paragraphs that you did not use before submitting.-->
Signed-off-by: Paulo Dias <paulodias.gm@gmail.com>
* [pkg/ottl]: add warning about yaml limitaiton and map literals (#50427)
<!--Ex. Fixing a bug - Describe the bug and how this fixes the issue.
Ex. Adding a feature - Explain what this achieves.-->
#### Description
Update the grammar docs to explain yaml limitation with OTTL syntax.
<!-- Issue number (e.g. #1234) or full URL to issue, if applicable. -->
#### Link to tracking issue
- closes
https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/50425
<!--Authorship attestation. See AGENTS.md for details. AI agents must
not check this box on behalf
of the user; the human author must check it themselves before the PR is
ready for review.-->
#### Authorship
- [x] I, a human, wrote this pull request description myself.
<!--Please delete paragraphs that you did not use before submitting.-->
* [chore][extension/datadog] Fix flaky test (#50461)
<!--Ex. Fixing a bug - Describe the bug and how this fixes the issue.
Ex. Adding a feature - Explain what this achieves.-->
#### Description
Uses helper to fix flaky test
<!-- Issue number (e.g. #1234) or full URL to issue, if applicable. -->
#### Link to tracking issue
Fixes #48155
<!--Authorship attestation. See AGENTS.md for details. AI agents must
not check this box on behalf
of the user; the human author must check it themselves before the PR is
ready for review.-->
#### Authorship
- [x] I, a human, wrote this pull request description myself.
<!--Please delete paragraphs that you did not use before submitting.-->
* [chore] Move skipping validation to a central .mdatagen.yaml (#50284)
<!--Ex. Fixing a bug - Describe the bug and how this fixes the issue.
Ex. Adding a feature - Explain what this achieves.-->
#### Description
Follows open-telemetry/opentelemetry-collector/pull/15682, adopts
centralized mdatagen file.
<!--Authorship attestation. See AGENTS.md for details. AI agents must
not check this box on behalf
of the user; the human author must check it themselves before the PR is
ready for review.-->
#### Authorship
- [x] I, a human, wrote this pull request description myself.
<!--Please delete paragraphs that you did not use before submitting.-->
* Lock file maintenance (#50459)
This PR contains the following updates:
| Update | Change |
|---|---|
| lockFileMaintenance | All locks refreshed |
---
> [!WARNING]
> Some dependencies could not be looked up. Check the [Dependency
Dashboard](../issues/20907) for more information.
🔧 This Pull Request updates lock files to use the latest dependency
versions.
---
### Configuration
📅 **Schedule**: (UTC)
- Branch creation
- Between 12:00 AM and 03:59 AM, only on Monday (`* 0-3 * * 1`)
- Automerge
- At any time (no schedule defined)
🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.
♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.
👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config
help](https://redirect.github.com/renovatebot/renovate/discussions) if
that's undesired.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-telemetry/opentelemetry-collector-contrib).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4zOS4wIiwidXBkYXRlZEluVmVyIjoiNDQuMzkuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIiwicmVub3ZhdGVib3QiXX0=-->
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
* [pkg/ottl]: Remove the deprecated profile functions (#50399)
#### Description
Removes deprecated functions from ottlprofile and ottlprofilesample.
Rename the `NewTransformContextPtr` to `NewTransformContext`.
<!--Authorship attestation. See AGENTS.md for details. AI agents must
not check this box on behalf
of the user; the human author must check it themselves before the PR is
ready for review.-->
#### Authorship
- [x] I, a human, wrote this pull request description myself.
<!--Please delete paragraphs that you did not use before submitting.-->
* Add spanpruningprocessor to build config (#50310)
<!--Ex. Fixing a bug - Describe the bug and how this fixes the issue.
Ex. Adding a feature - Explain what this achieves.-->
#### Description
Add the span pruning processor which so far wasn't bundled in contrib
releases:
https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/processor/spanpruningprocessor
<!-- Issue number (e.g. #1234) or full URL to issue, if applicable. -->
#### Link to tracking issue
Fixes
https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/49327
<!--Describe the documentation added.-->
#### Documentation
N/A existing component
<!--Authorship attestation. See AGENTS.md for details. AI agents must
not check this box on behalf
of the user; the human author must check it themselves before the PR is
ready for review.-->
#### Authorship
- [x] I, a human, wrote this pull request description myself.
<!--Please delete paragraphs that you did not use before submitting.-->
* [chore] GOMEMLIMIT tweak on linting job (#50462)
<!--Ex. Fixing a bug - Describe the bug and how this fixes the issue.
Ex. Adding a feature - Explain what this achieves.-->
#### Description
Adds `GOMEMLIMIT` and `GOGC` on linting jobs to reduce use of memory and
avoid them OOMing.
Follows approach used in #28682
<!--Authorship attestation. See AGENTS.md for details. AI agents must
not check this box on behalf
of the user; the human author must check it themselves before the PR is
ready for review.-->
#### Authorship
- [x] I, a human, wrote this pull request description myself.
<!--Please delete paragraphs that you did not use before submitting.-->
* [receiver/cloudflare] Bound decompressed size of gzip request bodies (#49948)
#### Description
`handleRequest` wraps the request body in `http.MaxBytesReader`, which
bounds the **compressed** bytes. The gzip branch then reads the
**decompressed** stream with `io.ReadAll` and no limit of its own:
```go
req.Body = http.MaxBytesReader(rw, req.Body, l.cfg.MaxRequestBodySize)
...
reader, err := gzip.NewReader(req.Body)
payload, err = io.ReadAll(reader) // decompressed size unbounded
```
So a request whose compressed body sits comfortably under
`max_request_body_size` can still expand without bound while being
buffered in memory.
This bounds the decompressed stream with the same setting and rejects a
request whose decompressed body exceeds it, returning 422 to match how
the uncompressed path already behaves when it trips `MaxBytesReader`.
When `max_request_body_size` is 0 (documented as "no limit") the
behaviour is unchanged.
**Note on scope:** #49232 describes both the plain and gzip paths as
unbounded. The plain path is already bounded by the `MaxBytesReader`
call and is covered by `TestMaxRequestBodySize`, so only the
decompression half remained. This PR fixes that half.
#### Link to tracking issue
Fixes #49232
#### Testing
Added `TestMaxRequestBodySizeGzip`, which posts highly compressible gzip
payloads and asserts the compressed body is under the limit so the test
genuinely exercises decompression rather than the compressed-byte guard.
Against the previous behaviour the over-limit case is accepted:
```
--- FAIL: TestMaxRequestBodySizeGzip/decompressed_exceeds_limit
Error: Not equal:
expected: 422
actual : 200
```
The full `receiver/cloudflarereceiver` package passes with the fix, and
`gofmt` is clean.
#### Documentation
No user-facing configuration change — `max_request_body_size` now covers
the decompressed size as well, which is described in the changelog
entry.
Disclosure: this change was prepared with the assistance of an AI coding
agent. The analysis, fix, and test were verified against the source and
the existing test suite before submitting.
Signed-off-by: Srikar Chittemsetty <srikarchittemsetty@gmail.com>
* [chore] [exporter/loadbalancingexporter] Migrate k8sResolver ListWatch to context-aware funcs (#50456)
<!--Ex. Fixing a bug - Describe the bug and how this fixes the issue.
Ex. Adding a feature - Explain what this achieves.-->
#### Description
This PR replaces the deprecated `ListFunc`/`WatchFunc` fields of
`cache.ListWatch` with `ListWithContextFunc`/`WatchFuncWithContext`, and
threads the informer-supplied context into the EndpointSlices List/Watch
calls instead of using `context.Background()`.
The informer is started via `Run(stopCh)`, which internally derives its
context from `stopCh`, so the context passed to these funcs is cancelled
on shutdown. This gives a cancelable context tied to the resolver's
lifecycle without changing `start`'s signature or storing a context
field.
<!-- Issue number (e.g. #1234) or full URL to issue, if applicable. -->
#### Link to tracking issue
Fixes #50424
<!--Describe what testing was performed and which tests were added.-->
#### Testing
~
<!--Describe the documentation added.-->
#### Documentation
~
<!--Authorship attestation. See AGENTS.md for details. AI agents must
not check this box on behalf
of the user; the human author must check it themselves before the PR is
ready for review.-->
#### Authorship
- [x] I, a human, wrote this pull request description myself.
<!--Please delete paragraphs that you did not use before submitting.-->
Signed-off-by: singhvibhanshu <find.vibhanshu@gmail.com>
* [chore] update tidy trigger (#50464)
The same was done in opentelemetry-collector
#### Authorship
- [x] I, a human, wrote this pull request description myself.
Signed-off-by: Alex Boten <223565+codeboten@users.noreply.github.com>
* update minimum go version to 1.26.0 (#50394)
<!--Ex. Fixing a bug - Describe the bug and how this fixes the issue.
Ex. Adding a feature - Explain what this achieves.-->
#### Description
<!-- Issue number (e.g. #1234) or full URL to issue, if applicable. -->
#### Link to tracking issue
Fixes
https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/50409
<!--Describe what testing was performed and which tests were added.-->
#### Testing
<!--Describe the documentation added.-->
#### Documentation
<!--Authorship attestation. See AGENTS.md for details. AI agents must
not check this box on behalf
of the user; the human author must check it themselves before the PR is
ready for review.-->
#### Authorship
- [x] I, a human, wrote this pull request description myself.
<!--Please delete paragraphs that you did not use before submitting.-->
---------
Signed-off-by: Alex Boten <223565+codeboten@users.noreply.github.com>
Co-authored-by: Alex Boten <223565+codeboten@users.noreply.github.com>
Co-authored-by: Yang Song <songy23@users.noreply.github.com>
* Update module bitbucket.org/atlassian/go-asap/v2 to v2.24.3 (#49785)
This PR contains the following updates:
| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
|
[bitbucket.org/atlassian/go-asap/v2](https://bitbucket.org/atlassian/go-asap)
| `v2.15.3` → `v2.24.3` |

|

|
---
> [!WARNING]
> Some dependencies could not be looked up. Check the [Dependency
Dashboard](../issues/20907) for more information.
---
### Release Notes
<details>
<summary>atlassian/go-asap
(bitbucket.org/atlassian/go-asap/v2)</summary>
###
[`v2.24.3`](https://bitbucket.org/atlassian/go-asap/branches/compare/v2.24.3%0Dv2.23.3)
[Compare
Source](https://bitbucket.org/atlassian/go-asap/branches/compare/v2.24.3%0Dv2.23.3)
###
[`v2.23.3`](https://bitbucket.org/atlassian/go-asap/branches/compare/v2.23.3%0Dv2.22.3)
[Compare
Source](https://bitbucket.org/atlassian/go-asap/branches/compare/v2.23.3%0Dv2.22.3)
###
[`v2.22.3`](https://bitbucket.org/atlassian/go-asap/branches/compare/v2.22.3%0Dv2.21.3)
[Compare
Source](https://bitbucket.org/atlassian/go-asap/branches/compare/v2.22.3%0Dv2.21.3)
###
[`v2.21.3`](https://bitbucket.org/atlassian/go-asap/branches/compare/v2.21.3%0Dv2.20.3)
[Compare
Source](https://bitbucket.org/atlassian/go-asap/branches/compare/v2.21.3%0Dv2.20.3)
###
[`v2.20.3`](https://bitbucket.org/atlassian/go-asap/branches/compare/v2.20.3%0Dv2.19.3)
[Compare
Source](https://bitbucket.org/atlassian/go-asap/branches/compare/v2.20.3%0Dv2.19.3)
###
[`v2.19.3`](https://bitbucket.org/atlassian/go-asap/branches/compare/v2.19.3%0Dv2.18.3)
[Compare
Source](https://bitbucket.org/atlassian/go-asap/branches/compare/v2.19.3%0Dv2.18.3)
###
[`v2.18.3`](https://bitbucket.org/atlassian/go-asap/branches/compare/v2.18.3%0Dv2.17.3)
[Compare
Source](https://bitbucket.org/atlassian/go-asap/branches/compare/v2.18.3%0Dv2.17.3)
###
[`v2.17.3`](https://bitbucket.org/atlassian/go-asap/branches/compare/v2.17.3%0Dv2.16.3)
[Compare
Source](https://bitbucket.org/atlassian/go-asap/branches/compare/v2.17.3%0Dv2.16.3)
###
[`v2.16.3`](https://bitbucket.org/atlassian/go-asap/branches/compare/v2.16.3%0Dv2.15.3)
[Compare
Source](https://bitbucket.org/atlassian/go-asap/branches/compare/v2.16.3%0Dv2.15.3)
</details>
---
### Configuration
📅 **Schedule**: (UTC)
- Branch creation
- "on tuesday"
- Automerge
- At any time (no schedule defined)
🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.
♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-telemetry/opentelemetry-collector-contrib).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yNzIuNCIsInVwZGF0ZWRJblZlciI6IjQ0LjM5LjAiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbImRlcGVuZGVuY2llcyIsInJlbm92YXRlYm90Il19-->
---------
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: otelbot <197425009+otelbot@users.noreply.github.com>
* [processor/k8s_attributes] support extracting labels and annotations from ReplicaSets (#50389)
<!--Ex. Fixing a bug - Describe the bug and how this fixes the issue.
Ex. Adding a feature - Explain what this achieves.-->
#### Description
Add support for extraction of labels and annotations from ReplicaSets.
This change comes with elevated RBAC permissions - adding ReplicaSet
permissions to the ClusterRole
<!-- Issue number (e.g. #1234) or full URL to issue, if applicable. -->
#### Link to tracking issue
Part of
https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/50386
<!--Authorship attestation. See AGENTS.md for details. AI agents must
not check this box on behalf
of the user; the human author must check it themselves before the PR is
ready for review.-->
#### Authorship
- [x] I, a human, wrote this pull request description myself.
<!--Please delete paragraphs that you did not use before submitting.-->
---------
Signed-off-by: odubajDT <ondrej.dubaj@dynatrace.com>
* [chore] fix permission in update-otel.yaml (#50468)
#### Description
Remove "permission-contents: read" from
"actions/create-github-app-token". The otelbot token doesn't need nor
have this permission in the workflow. Other workflows also doesn't have
this permssion.
#### Link to tracking issue
Fixes #50466
#### Authorship
- [x] I, a human, wrote this pull request description myself.
* [chore] remove unnecessary comment (#50473)
This TODO was removed during the update to go 1.26. Removing comment.
Fixes #50419
#### Authorship
- [x] I, a human, wrote this pull request description myself.
Signed-off-by: Alex Boten <223565+codeboten@users.noreply.github.com>
* [pkg/ottl]: use context.path format in docs (#50471)
<!--Ex. Fixing a bug - Describe the bug and how this fixes the issue.
Ex. Adding a feature - Explain what this achieves.-->
#### Description
Update language examples to use `context.path` format
<!-- Issue number (e.g. #1234) or full URL to issue, if applicable. -->
#### Link to tracking issue
- related to
https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/50217
<!--Authorship attestation. See AGENTS.md for details. AI agents must
not check this box on behalf
of the user; the human author must check it themselves before the PR is
ready for review.-->
#### Authorship
- [x] I, a human, wrote this pull request description myself.
<!--Please delete paragraphs that you did not use before submitting.-->
* [chore][receiver/dnscheckreceiver] Add Integration test (#50467)
<!--Ex. Fixing a bug - Describe the bug and how this fixes the issue.
Ex. Adding a feature - Explain what this achieves.-->
#### Description
Added the integration test for `dnscheckreceiver`, using CoreDNS image
with a minimal config serving a static example.com. A 93.184.216.34
record through custom configs.
<!-- Issue number (e.g. #1234) or full URL to issue, if applicable. -->
#### Link to tracking issue
Fixes
<!--Describe what testing was performed and which tests were added.-->
#### Testing
<!--Describe the documentation added.-->
#### Documentation
<!--Authorship attestation. See AGENTS.md for details. AI agents must
not check this box on behalf
of the user; the human author must check it themselves before the PR is
ready for review.-->
#### Authorship
- [x] I, a human, wrote this pull request description myself.
<!--Please delete paragraphs that you did not use before submitting.-->
Signed-off-by: Dani Louca <dlouca@splunk.com>
* Update docker-compose deps (#50479)
This PR contains the following updates:
| Package | Update | Change |
|---|---|---|
| clickhouse/clickhouse-server | patch | `26.7.3` → `26.7.5` |
|
[otel/opentelemetry-collector](https://redirect.github.com/open-telemetry/opentelemetry-collector-releases)
| minor | `0.158.0` → `0.159.0` |
|
[otel/opentelemetry-collector-contrib](https://redirect.github.com/open-telemetry/opentelemetry-collector-releases)
| minor | `0.158.0` → `0.159.0` |
| [prom/prometheus](https://redirect.github.com/prometheus/prometheus) |
minor | `v3.13.2` → `v3.14.0` |
---
> [!WARNING]
> Some dependencies could not be looked up. Check the [Dependency
Dashboard](../issues/20907) for more information.
---
### Release Notes
<details>
<summary>open-telemetry/opentelemetry-collector-releases
(otel/opentelemetry-collector)</summary>
###
[`v0.159.0`](https://redirect.github.com/open-telemetry/opentelemetry-collector-releases/blob/HEAD/CHANGELOG.md#v01590)
[Compare
Source](https://redirect.github.com/open-telemetry/opentelemetry-collector-releases/compare/v0.158.0...v0.159.0)
##### 🛑 Breaking changes 🛑
- `contrib`: Remove deprecated kafkatopicsobserver extension from the
contrib distribution
([#​1597](https://redirect.github.com/open-telemetry/opentelemetry-collector-releases/issues/1597))
##### 🚀 New components 🚀
- `extension/aws_iam_db_auth`: Add `aws_iam_db_auth` to the contrib
distribution
([#​1591](https://redirect.github.com/open-telemetry/opentelemetry-collector-releases/issues/1591))
</details>
<details>
<summary>prometheus/prometheus (prom/prometheus)</summary>
###
[`v3.14.0`](https://redirect.github.com/prometheus/prometheus/releases/tag/v3.14.0):
3.14.0 / 2026-08-17
[Compare
Source](https://redirect.github.com/prometheus/prometheus/compare/v3.13.2...v3.14.0)
- \[CHANGE] API: Deprecate the `stats` query parameter of
`/api/v1/query` and `/api/v1/query_range` for values other than `true`
and `all`. Other values still enable basic statistics but now return a
deprecation warning; they will be rejected in the next major release.
[#​19124](https://redirect.github.com/prometheus/prometheus/issues/19124)
- \[CHANGE] API: `/api/v1/status/config` now correctly shows `separator:
""` and `replacement: ""` in relabel configs when explicitly set to
empty, instead of omitting them.
[#​18653](https://redirect.github.com/prometheus/prometheus/issues/18653)
- \[CHANGE] Discovery/Hetzner: Drop the `__meta_hetzner_datacenter`
label for `hcloud` targets, following its removal from the Hetzner Cloud
API.
[#​19269](https://redirect.github.com/prometheus/prometheus/issues/19269)
- \[CHANGE] PromQL: Enable duration expressions by default. The
`promql-duration-expr` feature flag is now a no-op.
[#​19033](https://redirect.github.com/prometheus/prometheus/issues/19033)
- \[CHANGE] PromQL: Promote `first_over_time` to stable. It no longer
requires the `promql-experimental-functions` feature flag.
[#​19093](https://redirect.github.com/prometheus/prometheus/issues/19093)
- \[FEATURE] Discovery: Add Oracle Cloud Infrastructure compute service
discovery (`oci_sd_configs`).
[#​18919](https://redirect.github.com/prometheus/prometheus/issues/18919)
- \[FEATURE] PromQL: Add experimental `start_timestamp(instant-vector)`
function returning the start timestamp of each sample in the given
vector. Requires the `use-start-timestamps` feature flag.
[#​19089](https://redirect.github.com/prometheus/prometheus/issues/19089)
- \[FEATURE] PromQL: Allow `rate()` and `increase()` to use start
timestamps as an alternative for rate extrapolation. Hidden behind the
`use-start-timestamps` feature flag.
[#​18619](https://redirect.github.com/prometheus/prometheus/issues/18619)
- \[FEATURE] TSDB: Add experimental support for encoding start
timestamps in histograms and float histograms. Hidden behind the
`histograms-st-encoding` feature flag.
[#​18609](https://redirect.github.com/prometheus/prometheus/issues/18609)
- \[ENHANCEMENT] OTLP: Emit a warning when OTLP attribute names collide
into the same Prometheus label after sanitization (e.g. `k8s.pod.name`
and `k8s_pod_name` both become `k8s_pod_name`), and expose the
`prometheus_api_otlp_translation_warnings_total` counter labelled by
`category` to track such warnings.
[#​18957](https://redirect.github.com/prometheus/prometheus/issues/18957)
- \[ENHANCEMENT] Promtool: Add `--remote-write.path` flag to `push
metrics` for backends that use a non-default remote-write endpoint.
[#​19086](https://redirect.github.com/prometheus/prometheus/issues/19086)
- \[ENHANCEMENT] Remote write: Forward histogram start timestamps in the
remote write V2 protocol.
[#​18903](https://redirect.github.com/prometheus/prometheus/issues/18903)
- \[ENHANCEMENT] TSDB: Add
`prometheus_tsdb_head_native_histogram_series` and
`prometheus_tsdb_head_native_histogram_buckets` gauges tracking the
number of native histogram series and buckets in the head.
[#​19170](https://redirect.github.com/prometheus/prometheus/issues/19170)
- \[ENHANCEMENT] UI: Add syntax highlighting, autocompletion, and
linting for PromQL duration expressions (`step()`, `range()`,
`min_of()`, `max_of()`) in range selectors and subqueries.
[#​18625](https://redirect.github.com/prometheus/prometheus/issues/18625)
- \[ENHANCEMENT] UI: Add copy button next to rule names on the Rules and
Alerts pages.
[#​18706](https://redirect.github.com/prometheus/prometheus/issues/18706)
- \[ENHANCEMENT] UI: Improve rule group title contrast on the Rules
page.
[#​19181](https://redirect.github.com/prometheus/prometheus/issues/19181)
- \[PERF] Speed up regex label matchers matching a set of literal values
(e.g. `{job=~"foo|bar|baz"}`).
[#​18833](https://redirect.github.com/prometheus/prometheus/issues/18833)
- \[PERF] Remote read: Improve remote read throughput by removing
unnecessary per-write flushing.
[#​18470](https://redirect.github.com/prometheus/prometheus/issues/18470)
- \[PERF] Scrape: Parse text and OpenMetrics formats without recursion,
preventing stack overflow from deeply nested or malicious exposition
input.
[#​19143](https://redirect.github.com/prometheus/prometheus/issues/19143)
- \[PERF] Scrape: Reduce native histogram scrape parsing allocations by
\~49%.
[#​19282](https://redirect.github.com/prometheus/prometheus/issues/19282)
- \[PERF] TSDB: Speed up queries on series with many in-memory chunks.
[#​18300](https://redirect.github.com/prometheus/prometheus/issues/18300)
- \[BUGFIX] Alerting: Fix 100% CPU usage on shutdown that could delay
graceful shutdown and trigger timeout-based kills.
[#​17859](https://redirect.github.com/prometheus/prometheus/issues/17859)
- \[BUGFIX] Discovery/AWS: Stop `promtool check config` from making AWS
metadata service (IMDS) network calls when the `region` field is omitted
in EC2, ECS, RDS, MSK, ElastiCache, and Lightsail service discovery
configs.
[#​19037](https://redirect.github.com/prometheus/prometheus/issues/19037)
- \[BUGFIX] Discovery/Docker: Set a request timeout for `docker_sd` and
`dockerswarm_sd` on `unix`, `npipe`, and `tcp` hosts. Previously an
unresponsive daemon could freeze discovery indefinitely, silently
pinning targets to a stale snapshot.
[#​19237](https://redirect.github.com/prometheus/prometheus/issues/19237)
- \[BUGFIX] Discovery/Docker: Fix panic in Docker Swarm service
discovery when a service runs as a plugin or network-attachment.
[#​19102](https://redirect.github.com/prometheus/prometheus/issues/19102)
- \[BUGFIX] Discovery/Docker: Fix discovery of IPv6-only containers.
[#​18778](https://redirect.github.com/prometheus/prometheus/issues/18778)
- \[BUGFIX] PromQL: Fix case-insensitive regex label matchers silently
dropping matching values.
[#​19167](https://redirect.github.com/prometheus/prometheus/issues/19167)
- \[BUGFIX] PromQL: Fix `mad_over_time` returning 0 instead of `NaN`
when the range contains a `NaN` sample.
[#​19040](https://redirect.github.com/prometheus/prometheus/issues/19040)
- \[BUGFIX] Promtool: Accept
`--enable-feature=promql-binop-fill-modifiers` in `check rules`, which
previously rejected valid `fill()`/`fill_left()`/`fill_right()`
expressions.
[#​19153](https://redirect.github.com/prometheus/prometheus/issues/19153)
- \[BUGFIX] Remote write: Respect the `AZURE_FEDERATED_TOKEN_FILE`
environment variable for workload identity authentication instead of
hardcoding the token file path.
[#​18973](https://redirect.github.com/prometheus/prometheus/issues/18973)
- \[BUGFIX] Rules: Clean up stale
`rule_group_last_rule_duration_sum_…
Adds support for Go 1.27. Follows the pattern of changes in #50.