Upgrade v0.150.0#43
Merged
Merged
Conversation
…d/common to v1.3.61 (open-telemetry#47071) This PR contains the following updates: | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---| | [github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common](https://github.com/tencentcloud/tencentcloud-sdk-go) | `v1.3.54` → `v1.3.61` |  |  | --- > [!WARNING] > Some dependencies could not be looked up. Check the [Dependency Dashboard](..open-telemetry/issues/20907) for more information. --- ### Release Notes <details> <summary>tencentcloud/tencentcloud-sdk-go (github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common)</summary> ### [`v1.3.61`](https://github.com/tencentcloud/tencentcloud-sdk-go/compare/v1.3.60...v1.3.61) [Compare Source](https://github.com/tencentcloud/tencentcloud-sdk-go/compare/v1.3.60...v1.3.61) ### [`v1.3.60`](https://github.com/tencentcloud/tencentcloud-sdk-go/compare/v1.3.59...v1.3.60) [Compare Source](https://github.com/tencentcloud/tencentcloud-sdk-go/compare/v1.3.59...v1.3.60) ### [`v1.3.59`](https://github.com/tencentcloud/tencentcloud-sdk-go/compare/v1.3.58...v1.3.59) [Compare Source](https://github.com/tencentcloud/tencentcloud-sdk-go/compare/v1.3.58...v1.3.59) ### [`v1.3.58`](https://github.com/tencentcloud/tencentcloud-sdk-go/compare/v1.3.57...v1.3.58) [Compare Source](https://github.com/tencentcloud/tencentcloud-sdk-go/compare/v1.3.57...v1.3.58) ### [`v1.3.57`](https://github.com/tencentcloud/tencentcloud-sdk-go/compare/v1.3.56...v1.3.57) [Compare Source](https://github.com/tencentcloud/tencentcloud-sdk-go/compare/v1.3.56...v1.3.57) ### [`v1.3.56`](https://github.com/tencentcloud/tencentcloud-sdk-go/compare/v1.3.55...v1.3.56) [Compare Source](https://github.com/tencentcloud/tencentcloud-sdk-go/compare/v1.3.55...v1.3.56) ### [`v1.3.55`](https://github.com/tencentcloud/tencentcloud-sdk-go/compare/v1.3.54...v1.3.55) [Compare Source](https://github.com/tencentcloud/tencentcloud-sdk-go/compare/v1.3.54...v1.3.55) </details> --- ### Configuration 📅 **Schedule**: Branch creation - "on tuesday" (UTC), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/open-telemetry/opentelemetry-collector-contrib). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My42Ni40IiwidXBkYXRlZEluVmVyIjoiNDMuNjYuNCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIiwicmVub3ZhdGVib3QiXX0=--> --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: otelbot <197425009+otelbot@users.noreply.github.com> Co-authored-by: Yang Song <songy23@users.noreply.github.com>
This PR contains the following updates: | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---| | [github.com/SAP/go-hdb](https://github.com/SAP/go-hdb) | `v1.15.2` → `v1.16.2` |  |  | --- > [!WARNING] > Some dependencies could not be looked up. Check the [Dependency Dashboard](..open-telemetry/issues/20907) for more information. --- ### Release Notes <details> <summary>SAP/go-hdb (github.com/SAP/go-hdb)</summary> ### [`v1.16.2`](https://github.com/SAP/go-hdb/blob/HEAD/RELEASENOTES.md#v1162) [Compare Source](https://github.com/SAP/go-hdb/compare/v1.16.1...v1.16.2) - deleted test certificates - cleanups ### [`v1.16.1`](https://github.com/SAP/go-hdb/blob/HEAD/RELEASENOTES.md#v1161) [Compare Source](https://github.com/SAP/go-hdb/compare/v1.16.0...v1.16.1) - fixed typo ### [`v1.16.0`](https://github.com/SAP/go-hdb/blob/HEAD/RELEASENOTES.md#v1160) [Compare Source](https://github.com/SAP/go-hdb/compare/v1.15.4...v1.16.0) ##### Minor revisions ##### v1.16.2 - deleted test certificates - cleanups ##### v1.16.1 - fixed typo ##### Changes - Added support of LDAP authentication ([#&open-telemetry#8203;159](https://github.com/SAP/go-hdb/pull/159)) ### [`v1.15.4`](https://github.com/SAP/go-hdb/blob/HEAD/RELEASENOTES.md#v1154) [Compare Source](https://github.com/SAP/go-hdb/compare/v1.15.3...v1.15.4) - bumped github actions ### [`v1.15.3`](https://github.com/SAP/go-hdb/blob/HEAD/RELEASENOTES.md#v1153) [Compare Source](https://github.com/SAP/go-hdb/compare/v1.15.2...v1.15.3) - updated dependencies - added docstore enabled check to test </details> --- ### Configuration 📅 **Schedule**: Branch creation - "on tuesday" (UTC), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/open-telemetry/opentelemetry-collector-contrib). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My42Ni40IiwidXBkYXRlZEluVmVyIjoiNDMuNjYuNCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIiwicmVub3ZhdGVib3QiXX0=--> --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: otelbot <197425009+otelbot@users.noreply.github.com> Co-authored-by: Yang Song <songy23@users.noreply.github.com>
…telemetry#47079) This PR contains the following updates: | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---| | [gitlab.com/gitlab-org/api/client-go/v2](https://gitlab.com/gitlab-org/api/client-go) | `v2.5.0` → `v2.7.0` |  |  | --- > [!WARNING] > Some dependencies could not be looked up. Check the [Dependency Dashboard](..open-telemetry/issues/20907) for more information. --- ### Release Notes <details> <summary>gitlab-org/api/client-go (gitlab.com/gitlab-org/api/client-go/v2)</summary> ### [`v2.7.0`](https://gitlab.com/gitlab-org/api/client-go/blob/HEAD/CHANGELOG.md#170-2025-12-06) [Compare Source](https://gitlab.com/gitlab-org/api/client-go/compare/v2.6.0...v2.7.0) ##### Features - **users:** Add support for a user to see only one file diff per page ([e2a9e09](https://gitlab.com/gitlab-org/api/client-go/commit/e2a9e09e79e7949e0b19dcfc97e3b7b533541856)) #### 1.6.0 ##### 🚀 Features - feat: add admin compliance policy settings API ([!2610](https://gitlab.com/gitlab-org/api/client-go/-/merge_requests/2610)) by [Hannes Lange](https://gitlab.com/hlange4) ##### 🔄 Other Changes - doc: fix typo ([!2603](https://gitlab.com/gitlab-org/api/client-go/-/merge_requests/2603)) by [Guilhem Bonnefille](https://gitlab.com/gbonnefille) - chore(deps): update golangci/golangci-lint docker tag to v2.7.1 ([!2611](https://gitlab.com/gitlab-org/api/client-go/-/merge_requests/2611)) by [GitLab Dependency Bot](https://gitlab.com/gitlab-dependency-update-bot) - chore(deps): update docker docker tag to v29.1.2 ([!2609](https://gitlab.com/gitlab-org/api/client-go/-/merge_requests/2609)) by [GitLab Dependency Bot](https://gitlab.com/gitlab-dependency-update-bot) - chore(deps): update golangci/golangci-lint docker tag to v2.7.0 ([!2608](https://gitlab.com/gitlab-org/api/client-go/-/merge_requests/2608)) by [GitLab Dependency Bot](https://gitlab.com/gitlab-dependency-update-bot) ### [`v2.6.0`](https://gitlab.com/gitlab-org/api/client-go/blob/HEAD/CHANGELOG.md#01590-2025-11-04) [Compare Source](https://gitlab.com/gitlab-org/api/client-go/compare/v2.5.0...v2.6.0) ##### Features - **integrations:** add group integration API endpoints for Jira ([09e18ee](https://gitlab.com/gitlab-org/api/client-go/commit/09e18ee598bb7805ac8221f6a05426b1785f9011)) #### 0.158.0 ##### 🚀 Features - Add support to send variables for GraphQL queries ([!2562](https://gitlab.com/gitlab-org/api/client-go/-/merge_requests/2562)) by [rafasf](https://gitlab.com/rafasf) ##### 🔄 Other Changes - chore(deps): update module cel.dev/expr to v0.25.0 ([!2560](https://gitlab.com/gitlab-org/api/client-go/-/merge_requests/2560)) by [GitLab Dependency Bot](https://gitlab.com/gitlab-dependency-update-bot) - chore(no-release): standardize GitLab name capitalization ([!2551](https://gitlab.com/gitlab-org/api/client-go/-/merge_requests/2551)) by [Zubeen](https://gitlab.com/syedzubeen) - chore(deps): update golangci/golangci-lint docker tag to v2.6.0 ([!2558](https://gitlab.com/gitlab-org/api/client-go/-/merge_requests/2558)) by [GitLab Dependency Bot](https://gitlab.com/gitlab-dependency-update-bot) - refactor: moved comments to interface 2 ([!2557](https://gitlab.com/gitlab-org/api/client-go/-/merge_requests/2557)) by [Zubeen](https://gitlab.com/syedzubeen) - refactor: moved comments to interface ([!2556](https://gitlab.com/gitlab-org/api/client-go/-/merge_requests/2556)) by [Zubeen](https://gitlab.com/syedzubeen) - refactor(test): avoid panic in tests with goroutines ([!2553](https://gitlab.com/gitlab-org/api/client-go/-/merge_requests/2553)) by [Oleksandr Redko](https://gitlab.com/alexandear) </details> --- ### Configuration 📅 **Schedule**: Branch creation - "on tuesday" (UTC), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/open-telemetry/opentelemetry-collector-contrib). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My42Ni40IiwidXBkYXRlZEluVmVyIjoiNDMuNjYuNCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIiwicmVub3ZhdGVib3QiXX0=--> --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: otelbot <197425009+otelbot@users.noreply.github.com> Co-authored-by: Yang Song <songy23@users.noreply.github.com>
This PR contains the following updates: | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---| | [modernc.org/sqlite](https://gitlab.com/cznic/sqlite) | `v1.46.1` → `v1.47.0` |  |  | --- > [!WARNING] > Some dependencies could not be looked up. Check the [Dependency Dashboard](..open-telemetry/issues/20907) for more information. --- ### Release Notes <details> <summary>cznic/sqlite (modernc.org/sqlite)</summary> ### [`v1.47.0`](https://gitlab.com/cznic/sqlite/compare/v1.46.2...v1.47.0) [Compare Source](https://gitlab.com/cznic/sqlite/compare/v1.46.2...v1.47.0) ### [`v1.46.2`](https://gitlab.com/cznic/sqlite/compare/v1.46.1...v1.46.2) [Compare Source](https://gitlab.com/cznic/sqlite/compare/v1.46.1...v1.46.2) </details> --- ### Configuration 📅 **Schedule**: Branch creation - "on tuesday" (UTC), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/open-telemetry/opentelemetry-collector-contrib). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My42Ni40IiwidXBkYXRlZEluVmVyIjoiNDMuNjYuNCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIiwicmVub3ZhdGVib3QiXX0=--> --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: otelbot <197425009+otelbot@users.noreply.github.com> Co-authored-by: Yang Song <songy23@users.noreply.github.com>
This PR contains the following updates: | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---| | [github.com/goccy/go-json](https://github.com/goccy/go-json) | `v0.10.5` → `v0.10.6` |  |  | --- > [!WARNING] > Some dependencies could not be looked up. Check the [Dependency Dashboard](..open-telemetry/issues/20907) for more information. --- ### Release Notes <details> <summary>goccy/go-json (github.com/goccy/go-json)</summary> ### [`v0.10.6`](https://github.com/goccy/go-json/releases/tag/v0.10.6): 0.10.6 [Compare Source](https://github.com/goccy/go-json/compare/v0.10.5...v0.10.6) #### What's Changed - fix: panic on embedded struct with recursive by [@&open-telemetry#8203;NgoKimPhu](https://github.com/NgoKimPhu) in [#&open-telemetry#8203;483](https://github.com/goccy/go-json/pull/483) #### New Contributors - [@&open-telemetry#8203;NgoKimPhu](https://github.com/NgoKimPhu) made their first contribution in [#&open-telemetry#8203;483](https://github.com/goccy/go-json/pull/483) **Full Changelog**: <goccy/go-json@v0.10.5...v0.10.6> </details> --- ### Configuration 📅 **Schedule**: Branch creation - "on tuesday" (UTC), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/open-telemetry/opentelemetry-collector-contrib). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My42Ni40IiwidXBkYXRlZEluVmVyIjoiNDMuNjYuNCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIiwicmVub3ZhdGVib3QiXX0=--> --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: otelbot <197425009+otelbot@users.noreply.github.com> Co-authored-by: Yang Song <songy23@users.noreply.github.com>
#### Description Standardize naming in the `couchdbreceiver` README so human-readable references consistently use `CouchDB` instead of mixed variants like `couchdb` and `Couchdb` in prose. Technical identifiers such as the `couchdb` receiver name, config keys, and metric names are left unchanged. #### Link to tracking issue Fixes #### Testing Verified the README updates and confirmed the remaining `couchdb` references are intentional technical identifiers. #### Documentation Updated `receiver/couchdbreceiver/README.md` to use consistent `CouchDB` wording in user-facing documentation. --------- Co-authored-by: Pablo Baeyens <pbaeyens31+github@gmail.com> Co-authored-by: Yang Song <songy23@users.noreply.github.com>
…result sets (open-telemetry#46219) #### Description Add `row_condition` (optional): when set, only rows where the specified column equals the specified value are used to produce this metric. Rows that do not match are silently skipped. This is useful for pivot-style result sets where each row encodes a different metric (e.g. `SHOW LISTS` in pgbouncer). - `column` (required): the column name to evaluate. - `value` (required): the expected string value the column must equal for the row to be included. closes: open-telemetry#45862
…emetry#46239) #### Description Fixes corrupted log entries when the filelog receiver reads a compressed (`.gz`) file that was produced by rotating and compressing a plaintext log file while `compression: auto` is configured. **Root cause**: When a plaintext file (e.g. `app.log`) is rotated and compressed (e.g. `app.log.gz`), fingerprint matching succeeds because the decompressed content of the `.gz` begins with the same bytes as the original plaintext fingerprint. `NewReaderFromMetadata` was previously reusing the stale plaintext `Offset` and `FileType` without re-detecting the file format. The scanner then seek'd to the old plaintext byte position inside the raw compressed stream and read gzip-encoded bytes as plaintext, producing corrupted log entries. **Fix**: `NewReaderFromMetadata` now re-detects the file type whenever `compression` is configured and compares against the persisted `FileType`. On a plaintext → gzip format transition: - The old plaintext `Offset` (decompressed bytes already consumed) is moved into a transient `decompressedBytesToSkip` field on the reader. - `m.Offset` is zeroed so that if `ReadToEnd` is never called before `Close()` (e.g. context cancellation), the checkpointed metadata carries `Offset=0` and `FileType=".gz"` — preventing the same corruption on the subsequent poll. - `createGzipReader` starts decompression from byte 0 and discards the already-consumed decompressed bytes via `io.CopyN`, so only new content is emitted. On a gzip → plaintext transition the offset is reset to 0, **which can cause potential duplicates** - But this is an edge case Additionally fixes a latent bug in `createGzipReader` where `io.NewSectionReader` was passed the total file size as the byte-count parameter instead of `currentEOF - compressedStart`, causing the section to span past the actual file boundary. #### Link to tracking issue Fixes open-telemetry#46105 #### Testing - Added `TestNewReaderFromMetadataForRotationWithCompression`, a regression test that: - Creates a plaintext file, reads lines 1–2, and saves the resulting metadata (`Offset > 0`, `FileType=""`). - Simulates rotation by writing a `.gz` containing all 4 lines. - Calls `NewReaderFromMetadata` with the stale plaintext metadata against the new `.gz` file. - Asserts `FileType=".gz"`, `Offset=0`, and that only lines 3–4 are emitted (no corruption, no duplicates). - Existing `TestNewReaderFromMetadataConcurrentAccess` validates no data race on `FileAttributes` map access. - Validated end-to-end with a locally built `otelcontribcol` binary using `compression: auto`, a `file_storage` extension for checkpoint persistence, and a shell script that writes 2 plaintext lines, waits for the collector to consume them, then atomically compresses the file to `.gz` with 4 lines — confirming only lines 3 and 4 are emitted after rotation with no corrupted output. - Validated with user reproduce steps in issue (resulted in no corrupted output) #### Documentation Added changelog yaml entry summarizing the issue and fix. --------- Co-authored-by: Andrzej Stencel <andrzej.stencel@elastic.co>
open-telemetry#46944) <!--Ex. Fixing a bug - Describe the bug and how this fixes the issue. Ex. Adding a feature - Explain what this achieves.--> #### Description Stanza parses Windows Event XML into a structured log body, but several fields present in the raw XML were being silently dropped: - RenderingInfo was consumed internally to populate the top-level level, task, opcode, keywords, and message fields, but was never itself emitted into the body. Fields it carries that have no top-level equivalent — culture, channel, and provider (the human-readable publisher name) — were lost entirely on every event rendered via the deep path. - UserData was not parsed at all. Some providers (e.g. Microsoft-Windows-Eventlog, which uses UserData for event 1102 — audit log cleared) use UserData as a structured alternative to EventData. Those events produced an empty event_data in the body with no indication that structured data existed. - ProcessingErrorData, DebugData, and BinaryEventData are valid top-level elements defined in the Windows Event Schema that the receiver's EventXML struct had no fields for, so they were silently discarded during XML unmarshalling. This PR exposes all previously dropped fields in the structured log body: - Emit RenderingInfo as a top-level rendering_info key in the body, containing all fields: message, level, task, opcode, keywords, culture, channel, and provider. The existing behavior of using RenderingInfo values to populate the top-level level, task, opcode, keywords, and message fields would be preserved — rendering_info is an addition, not a replacement. - Parse and emit UserData as a top-level user_data key containing the event type name (the local name of the first child element) and a data map of key-value pairs from its children. This allows events that use UserData instead of EventData to be fully represented in the body. - Map ProcessingErrorData, DebugData, and BinaryEventData to struct fields in EventXML and emit them as processing_error_data, debug_data, and binary_event_data body keys respectively when present. All three are rare in practice on modern Windows but are defined in the [official schema with Microsoft documentation](https://learn.microsoft.com/en-us/windows/win32/wes/eventschema-schema) and should be captured rather than silently dropped. <!-- Issue number (e.g. open-telemetry#1234) or full URL to issue, if applicable. --> #### Link to tracking issue Fixes open-telemetry#46943 <!--Describe what testing was performed and which tests were added.--> #### Testing - Manual testing with log.record.original enabled and verification that the log body contained all fields for RenderingInfo and UserData. Unit test verification of these fields to prevent regressions. - Unit testing based on the documentation for ProcessingErrorData, DebugData, and BinaryEventData - these fields are legacy artifacts from older Windows systems, but are well-documented as being present in the Event body. <!--Describe the documentation added.--> #### Documentation Documentation updated to describe new fields. <!--Please delete paragraphs that you did not use before submitting.-->
…y#47007) <!--Ex. Fixing a bug - Describe the bug and how this fixes the issue. Ex. Adding a feature - Explain what this achieves.--> #### Description plumb the logger through to the upload manager and add a debug log for the object keys being written to S3. I want something similar to what we have in the [clickhouse exporter](https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/exporter/clickhouseexporter/exporter_logs.go#L186)
) Add configuration schemas for azure functions receiver. #### Link to tracking issue Updates open-telemetry#42214 Signed-off-by: Israel Blancas <iblancasa@gmail.com>
<!--Ex. Fixing a bug - Describe the bug and how this fixes the issue. Ex. Adding a feature - Explain what this achieves.--> #### Description "Added `mysql.session.status` attribute to query samples, which indicates the session status (e.g., 'wait', 'running') at the time of the sample. This provides additional context for understanding query performance and behavior." <!--Describe what testing was performed and which tests were added.--> #### Testing Added to existing scraper test <!--Please delete paragraphs that you did not use before submitting.-->
) #### Description Deprecate the built-in encodings, and direct users to the equivalent encoding extensions. #### Link to tracking issue Relates to open-telemetry#45830 #### Testing Confirmed that warnings are logged when the built-in encodings are used, e.g. when no encoding is specified at all. #### Documentation Updated README.
Add configuration schemas for extensions. #### Link to tracking issue Updates open-telemetry#42214 Signed-off-by: Israel Blancas <iblancasa@gmail.com>
<!--Ex. Fixing a bug - Describe the bug and how this fixes the issue. Ex. Adding a feature - Explain what this achieves.--> #### Description Run missing make generate-schemas to fix schema config. Introduced by open-telemetry#46972 Signed-off-by: Shaanveer Singh <shaanver.singh@gmail.com>
…y#46497) #### Description A new optional `tls` configuration block is available in `docker_stats` receiver config (and the shared `internal/docker` package). When omitted the connection remains insecure (plain HTTP or Unix socket), preserving existing behavior. When provided it supports the standard `configtls.ClientConfig` fields: `ca_file`, `cert_file`, `key_file`, `insecure_skip_verify`, `min_version`, and `max_version`. A warning is now emitted when a plain `tcp://` or `http://` endpoint is used without TLS, reflecting Docker's deprecation of unauthenticated TCP connections since Docker v26.0 (see https://docs.docker.com/engine/deprecated/#unauthenticated-tcp-connections). #### Link to tracking issue [Fixes](open-telemetry#33557) #### Testing Unit tests
…3744) #### Link to tracking issue Fixes open-telemetry#43606 --------- Signed-off-by: Israel Blancas <iblancasa@gmail.com> Co-authored-by: Evan Bradley <11745660+evan-bradley@users.noreply.github.com>
…7054) <!--Ex. Fixing a bug - Describe the bug and how this fixes the issue. Ex. Adding a feature - Explain what this achieves.--> #### Description The receiver would not collect all metrics previously, this changes the response parsing to collect all metrics.
…en-telemetry#47107) <!--Ex. Fixing a bug - Describe the bug and how this fixes the issue. Ex. Adding a feature - Explain what this achieves.--> #### Description In `datadogreceiver`, `sampling.priority` was only set when a span itself carried `_sampling_priority_v1`. This meant spans in the same trace chunk could end up with different sampling priority attributes, and if the priority was only set on the trace chunk, no translated span got `sampling.priority` at all. This PR fixes that by resolving sampling priority once per trace chunk, preferring the chunk priority when present. #### Link to tracking issue Fixes open-telemetry#45402 ### Testing Added test --------- Signed-off-by: Shaanveer Singh <shaanver.singh@gmail.com>
…sumer package (open-telemetry#47134) <!--Ex. Fixing a bug - Describe the bug and how this fixes the issue. Ex. Adding a feature - Explain what this achieves.--> #### Description I would like to propose adding myself as a codeowner for the filelog receiver and fileconsumer packages. I already did some PRs, handled issues, and I accept the challenge to help maintain those components. Some recent important improvements that I proposed: - open-telemetry#45097 - open-telemetry#46739 All the PRs and issues in which I was involved: - https://github.com/open-telemetry/opentelemetry-collector-contrib/issues?q=is%3Apr%20involves%3Apaulojmdias%20label%3Apkg%2Fstanza%2Ffileconsumer - https://github.com/open-telemetry/opentelemetry-collector-contrib/issues?q=is%3Apr%20involves%3Apaulojmdias%20label%3Areceiver%2Ffilelog - https://github.com/open-telemetry/opentelemetry-collector-contrib/pulls?q=is%3Apr+author%3Apaulojmdias+label%3Apkg%2Fstanza%2Ffileconsumer - https://github.com/open-telemetry/opentelemetry-collector-contrib/pulls?q=is%3Apr+author%3Apaulojmdias+label%3Areceiver%2Ffilelog This was discussed in person at KubeCon EU. Thanks for your vote of confidence @andrzej-stencel 🙏 Signed-off-by: Paulo Dias <paulodias.gm@gmail.com>
…etry#47142) <!--Ex. Fixing a bug - Describe the bug and how this fixes the issue. Ex. Adding a feature - Explain what this achieves.--> #### Description I had a discussion with @andrzej-stencel regarding this. I'm adding myself as a codeowner. PRs reviewed by me: https://github.com/open-telemetry/opentelemetry-collector-contrib/pulls?q=is%3Aopen+is%3Apr+label%3Apkg%2Fstanza+reviewed-by%3A%40me+ https://github.com/open-telemetry/opentelemetry-collector-contrib/pulls?q=is%3Aopen+is%3Apr+label%3Areceiver%2Ffilelog+reviewed-by%3A%40me PRs authored by me related to the receiver: https://github.com/open-telemetry/opentelemetry-collector-contrib/pulls?q=is%3Apr+label%3Apkg%2Fstanza+author%3AVihasMakwana+is%3Amerged+ --------- Co-authored-by: Andrzej Stencel <andrzej.stencel@elastic.co>
…lete and span-ingest modes (open-telemetry#46762) #### Description Add `sampling_strategy` config to `processor/tailsampling` with two explicit modes: - `trace-complete` (default): classic timer-based tail sampling with full-trace evaluation context. - `span-ingest`: evaluate each incoming batch on ingest, finalize terminal outcomes (`sampled`/`dropped`) immediately, and cleanup-finalize unresolved traces as `not sampled` without policy re-evaluation. This implementation also: - validates strategy values and defaults to `trace-complete`. - enforces stateless policies in `span-ingest` mode (`IsStateful() == false`). - records ingest-time decision telemetry for `span-ingest`. - aligns tests/docs/schema/comments with implemented behavior. - supports earlier batch timing after root-span arrival via `decision_wait_after_root_received` in both modes (earlier decision in `trace-complete`, earlier pending cleanup finalization in `span-ingest`). #### Link to tracking issue Fixes open-telemetry#46600. #### Testing - `go test ./...` (in `processor/tailsamplingprocessor`) - Updated/added tests for: - ingest-time terminal decisions in `span-ingest` - pending cleanup finalization behavior - ingest ordering behavior - telemetry emission paths #### Documentation - Updated `processor/tailsamplingprocessor/README.md` for strategy semantics and flow. - Updated `processor/tailsamplingprocessor/config.schema.yaml` descriptions for strategy/timer behavior. - Updated strategy/timer comments in `processor/tailsamplingprocessor/config.go`. - Added changelog entry: `.chloggen/tailsampling-sampling-strategy-config.yaml`.
…open-telemetry#45162) <!--Ex. Fixing a bug - Describe the bug and how this fixes the issue. Ex. Adding a feature - Explain what this achieves.--> #### Description Updates the `router` operator to process batches of entries without splitting them. The parser now writes all entries as a single batch, rather than processing them individually. <!-- Issue number (e.g. open-telemetry#1234) or full URL to issue, if applicable. --> #### Link to tracking issue Fixes open-telemetry#42393 <!--Describe what testing was performed and which tests were added.--> #### Testing Added unit tests to ensure the batches are not split. --------- Signed-off-by: Paulo Dias <paulodias.gm@gmail.com>
…telemetry#46493) #### Description When `stream_stats: true` is set, each container maintains a persistent open Docker stats stream instead of opening and closing a new connection on every scrape cycle. The scraper reads from the cached latest value, which reduces connection overhead. (see also here: https://docs.docker.com/reference/api/engine/version/v1.53/#tag/Container/operation/ContainerStats) One stats call will wait two cycles within docker engine: <img width="804" height="227" alt="image" src="https://github.com/user-attachments/assets/1c264ad5-2e00-4b47-833a-4683c9c4dcc7" /> #### Testing Unit test
…#47147) <!--Ex. Fixing a bug - Describe the bug and how this fixes the issue. Ex. Adding a feature - Explain what this achieves.--> #### Description This PR is to propose adding myself to the active group of `filelog` receiver codeowners. I have made some code contributions to the receiver: open-telemetry#44734 open-telemetry#43777 I have participated in some issue discussions: open-telemetry#46496 open-telemetry#43693 I also have previous experience working on Fluent Bit, which is a similar technology that solves a lot of the same problems in different ways than Stanza. https://github.com/fluent/fluent-bit/pulls/braydonk https://www.youtube.com/watch?v=KrlvWBCGagI I look forward to increasing my contributions and reviews on this component to help push it toward stability! --------- Co-authored-by: Andrzej Stencel <andrzej.stencel@elastic.co>
…tion (open-telemetry#45323) Description new approach after previous pr's (open-telemetry#44929) approach was decided as problematic Link to tracking issue Fixes open-telemetry#44371 Testing Documentation --------- Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com> Co-authored-by: Vihas Makwana <121151420+VihasMakwana@users.noreply.github.com> Co-authored-by: Andrzej Stencel <andrzej.stencel@elastic.co>
…LoadKeyProto checkpoint functions (open-telemetry#47180) <!--Ex. Fixing a bug - Describe the bug and how this fixes the issue. Ex. Adding a feature - Explain what this achieves.--> #### Description Remove three unused exported functions (`SaveProto`, `LoadProto`, and `LoadKeyProto`) from `checkpoint_protobuf.go`. Also make `saveKeyProto` as unexported since it is not used outside of checkpoint package. --------- Signed-off-by: Paulo Dias <paulodias.gm@gmail.com>
…ey constant (open-telemetry#47181) <!--Ex. Fixing a bug - Describe the bug and how this fixes the issue. Ex. Adding a feature - Explain what this achieves.--> #### Description Remove unused `archivePollsToArchiveKey` constant from `archive.go`. The constant is not referenced anywhere in the repository and contains a typo (`"knonwFiles"` instead of `"knownFiles"`). Signed-off-by: Paulo Dias <paulodias.gm@gmail.com>
open-telemetry#47182) <!--Ex. Fixing a bug - Describe the bug and how this fixes the issue. Ex. Adding a feature - Explain what this achieves.--> #### Description Remove the deprecated `NilField` type and its tests from `pkg/stanza/entry`. The type was marked deprecated with an instruction to use `Field.IsEmpty` and is only referenced in its own test file. Signed-off-by: Paulo Dias <paulodias.gm@gmail.com>
…of per document (open-telemetry#47170) #### Description - syncBulkIndexerSession.Add() was calling getAttributesFromMetadataKeys + attribute.NewSet + metric.WithAttributeSet on every document added to the bulk request. This allocates ~192 bytes per document and dominated the metric recording path in high-throughput deployments. - The attribute set is derived from metadata keys on the request context, which is constant for the lifetime of a single bulk session (the sending_queue with metadata_keys partitions batches by metadata value, so all documents in one Consume* call share the same context). Computing it once in StartSession and caching it on the session struct is safe and correct. ``` Before: getAttributesFromMetadataKeys called N times (once per document) After: called once per bulk session flush ```
Add tests to the component, and fix the factory to return the logs receiver. Continuation of open-telemetry#47387
…check` (open-telemetry#47516) Part of: - open-telemetry#45339 #### Description Renames the `tlscheck` receiver type to `tls_check` to match the snake_case naming convention established in open-telemetry/opentelemetry-collector#14208. The previous type `tlscheck` is preserved as a deprecated alias via `xreceiver.WithDeprecatedTypeAlias`, so existing user configurations remain functional and will log a deprecation warning at startup. Metric names (`tlscheck.*`) and the directory layout (`receiver/tlscheckreceiver`) are intentionally unchanged to avoid user-facing breakage, matching the precedent set by other receiver renames under open-telemetry#45339. #### Link to tracking issue Part of open-telemetry#45339 #### Testing - `make generate` regenerates all metadata files with the new type - `go test ./...` passes - `make lint` passes (via `make generate` which includes `fmt` + `gci`) - `make chlog-validate` passes - `make gendistributions` and `make generate-chloggen-components` produce matching diffs #### Documentation - Added deprecation note in `README.md` - Updated the config example to use `tls_check:` Signed-off-by: Nick Nikolakakis <nonicked@protonmail.com>
…try#47349) <!--Ex. Fixing a bug - Describe the bug and how this fixes the issue. Ex. Adding a feature - Explain what this achieves.--> #### Description - Adds functionality to auto discover services in windows for sumologic <!-- Issue number (e.g. open-telemetry#1234) or full URL to issue, if applicable. --> #### Link to tracking issue open-telemetry#47390 <!--Describe what testing was performed and which tests were added.--> #### Testing Metadata logs with tags populated ``` 2026-04-06T13:11:10.084Z info sumologicextension@v0.149.0/extension.go:796 Updating collector metadata {"resource": {"service.instance.id": "fd0a1f8b-4b98-4bab-8d4c-f10d1c36e82c", "service.name": "otelcontribcol", "service.version": "0.149.0"}, "otelcol.component.id": "sumologic", "otelcol.component.kind": "extension", "collector_name": "rshg_collector_010", "collector_id": "00005AF3109117C4", "URL": "https://stag-open-events.sumologic.net/api/v1/otCollectors/metadata", "body": "{\"hostDetails\":{\"name\":\"EC2AMAZ-5G8L46Q.ec2.internal\",\"osName\":\"windows\",\"osVersion\":\"24H2\",\"environment\":\"\"},\"collectorDetails\":{\"runningVersion\":\"0.149.0\"},\"networkDetails\":{\"hostIpAddress\":\"172.31.77.239\"},\"tagDetails\":{\"sumo.disco.enabled\":\"true\",\"sumo.disco.mongodb\":1,\"sumo.disco.mssql\":1,\"sumo.disco.mysql\":1,\"sumo.disco.nginx\":1,\"sumo.disco.tomcat\":1}}\n"} ``` Screenshots of dashboard <img width="405" height="545" alt="Screenshot 2026-04-06 at 6 42 50 PM" src="https://github.com/user-attachments/assets/9c18d492-fc88-4bf7-b091-a1b728f91c41" /> <img width="390" height="836" alt="Screenshot 2026-04-06 at 6 43 52 PM" src="https://github.com/user-attachments/assets/b368a3de-3e3a-426b-862d-2a935f3ab86c" /> <!--Describe the documentation added.--> #### Documentation <!--Please delete paragraphs that you did not use before submitting.-->
…ata.yaml (open-telemetry#47371) #### Description - Adds reference URL and `from_version` feature gate information to `processor.transform.ConvertBetweenSumAndGaugeMetricContext` - Removes manual feature gate registration - Generated metadata #### Link to tracking issue Part of open-telemetry#46116 #### Testing - `go build ./...`, `make gotest` and `make golint` all pass
This PR updates the opentelemetry-collector dependencies to open-telemetry/opentelemetry-collector@d686cf9. Changes included in this PR: open-telemetry/opentelemetry-collector@v0.149.0...d686cf9 --------- Signed-off-by: otelbot <197425009+otelbot@users.noreply.github.com> Co-authored-by: otelbot <197425009+otelbot@users.noreply.github.com>
…-telemetry#47527) This PR migrates the `cloudfoundry.resourceAttributes.allow` feature gate in `receiver/cloudfoundryreceiver` from manual `featuregate.GlobalRegistry().MustRegister()` to `metadata.yaml` for mdatagen code generation, as part of open-telemetry#46116. **Changes:** - Added `feature_gates:` section to `metadata.yaml` (with `reference_url` pointing to the original tracking issue open-telemetry#34824) - Ran `go generate ./...` to produce `internal/metadata/generated_feature_gates.go` and update `documentation.md` - Removed the manual `MustRegister` block from `converter.go`; updated `converter.go` and `receiver.go` to use `metadata.CloudfoundryResourceAttributesAllowFeatureGate` - Updated `converter_test.go` and `receiver_test.go` to reference the generated gate variable - Removed the `forbidigo` lint exclusion for this package from `.golangci.yml` **Testing:** - `go build ./...` passes - `go test ./...` passes
…n-telemetry#47526) This PR migrates the `extension.healthcheck.useComponentStatus` feature gate in `extension/healthcheckextension` from manual `featuregate.GlobalRegistry().MustRegister()` to `metadata.yaml` for mdatagen code generation, as part of open-telemetry#46116. **Changes:** - Added `feature_gates:` section to `metadata.yaml` - Ran `go generate ./...` to produce `internal/metadata/generated_feature_gates.go` and update `documentation.md` - Removed the manual `MustRegister` block from `factory.go`; updated `factory.go` and `config.go` to use `metadata.ExtensionHealthcheckUseComponentStatusFeatureGate` - Updated `factory_test.go`, `integration_test.go`, and `config_test.go` to reference the generated gate variable - Removed the `forbidigo` lint exclusion for this package from `.golangci.yml` **Testing:** - `go build ./...` passes - `go test ./...` passes Note: The original `factory.go` registration included `WithRegisterToVersion("v0.147.0")`, but `mdatagen` does not support `to_version` for alpha-stage gates. This field has been dropped; the gate behavior is otherwise identical.
… mdatagen (open-telemetry#47512) This PR migrates the `metricsgeneration.MatchAttributes` feature gate in `processor/metricsgenerationprocessor` from manual `featuregate.GlobalRegistry().MustRegister()` to `metadata.yaml` for mdatagen code generation, as part of open-telemetry#46116. **Changes:** - Added `feature_gates:` section to `metadata.yaml` - Ran `go generate ./...` to produce `internal/metadata/generated_feature_gates.go` and update `documentation.md` - Removed the manual `MustRegister` block from `processor.go`; updated the call site to use `metadata.MetricsgenerationMatchAttributesFeatureGate` - Updated `processor_test.go` to reference the generated gate variable - Removed the `forbidigo` lint exclusion for this package from `.golangci.yml` **Testing:** ``` go build ./... # passes go test ./... # ok github.com/open-telemetry/opentelemetry-collector-contrib/processor/metricsgenerationprocessor ```
## Summary This PR introduces the `spanpruningprocessor`, a new trace processor that reduces trace storage costs while preserving observability value. It intelligently identifies and aggregates repetitive leaf spans within traces, replacing groups of similar operations with single summary spans that capture the full statistical picture. This is a reduced-scope MVP of open-telemetry#45617 (now closed), focusing on the core aggregation algorithm. Advanced features like outlier detection, outlier preservation, histogram buckets, attribute loss analysis, and byte-size metrics will follow in subsequent PRs once the foundation is merged. Component donation issue: open-telemetry#45654 ## The Problem Modern distributed systems generate enormous volumes of trace data. A significant portion consists of repetitive, similar spans -- think N+1 database queries, batch HTTP calls, or fan-out operations. Storing every individual span is expensive and often provides diminishing analytical value beyond the first few instances. Current solutions are inadequate: - **Head sampling** loses entire traces, breaking root cause analysis - **Tail sampling** helps but still keeps every span in sampled traces - **Manual instrumentation changes** require code modifications across services ## The Solution The Span Pruning Processor identifies duplicate or similar leaf spans within a single trace, groups them, and replaces each group with a single aggregated summary span. When leaf spans are aggregated, the processor also recursively aggregates their parent spans if all children of those parents are being aggregated. **Leaf spans** are spans that are not referenced as a parent by any other span in the trace. They typically represent the last actions in an execution call stack (e.g., individual database queries, HTTP calls to external services). Spans are grouped by: 1. **Span name** - spans must have the same name 2. **Span kind** - spans must have the same kind (Internal, Server, Client, Producer, Consumer) 3. **Status code** - spans must have the same status (OK, Error, or Unset) 4. **TraceState** - spans must have identical TraceState values (for Consistent Probability Sampling compatibility) 5. **Configured attributes** - spans must have matching values for attributes specified in `group_by_attributes` 6. **Parent span name** - leaf spans must share the same parent span name to be grouped together Parent spans are eligible for aggregation when all of their children are aggregated, they share the same name, kind, and status code, and they are not root spans. ## Use Cases - **Database query optimization**: When an application makes many similar database queries (e.g., N+1 queries), aggregate them into a single summary span - **Batch operations**: Consolidate many similar leaf operations into a single representative span - **Cost reduction**: Reduce trace storage costs by eliminating redundant span data ## Configuration ```yaml processors: spanpruning: # Attributes to use for grouping similar leaf spans (supports glob patterns) # Spans with the same name AND same values for matching attributes will be grouped # Examples: # - "db.*" matches db.operation, db.name, db.statement, etc. # - "http.request.*" matches http.request.method, http.request.header, etc. # - "db.operation" matches only the exact key "db.operation" group_by_attributes: - "db.*" - "http.method" # Minimum number of similar leaf spans required before aggregation # Default: 5 min_spans_to_aggregate: 3 # Maximum depth of parent span aggregation above leaf spans # 0 = only aggregate leaf spans (no parent aggregation) # -1 = unlimited depth # Default: 1 max_parent_depth: 1 # Prefix for aggregation statistics attributes # Default: "aggregation." aggregation_attribute_prefix: "batch." ``` ## Configuration Options | Field | Type | Default | Description | |-------|------|---------|-------------| | `group_by_attributes` | []string | [] | Attribute patterns for grouping (supports glob patterns like `db.*`) | | `min_spans_to_aggregate` | int | 5 | Minimum group size before aggregation occurs | | `max_parent_depth` | int | 1 | Max depth of parent aggregation (0=none, -1=unlimited) | | `aggregation_attribute_prefix` | string | "aggregation." | Prefix for aggregation statistics attributes | ### Glob Pattern Support The `group_by_attributes` field supports glob patterns for matching attribute keys: | Pattern | Matches | |---------|---------| | `db.*` | `db.operation`, `db.name`, `db.statement`, etc. | | `http.request.*` | `http.request.method`, `http.request.header.content-type`, etc. | | `rpc.*` | `rpc.method`, `rpc.service`, `rpc.system`, etc. | | `db.operation` | Only the exact key `db.operation` | When multiple attributes match a pattern, they are all included in the grouping key (sorted alphabetically for consistency). ## Summary Span When spans are aggregated, the summary span includes: ### Properties - **Name**: Original span name (e.g., `SELECT`) - **TraceID**: Same as original spans - **SpanID**: Newly generated unique ID - **ParentSpanID**: Same as original spans (common parent) - **Kind**: Same as template span (inherited from slowest span) - **StartTimestamp**: Earliest start time of all spans in the group - **EndTimestamp**: Latest end time of all spans in the group - **Status**: Same as original spans (spans are grouped by status code) - **TraceState**: Inherited from the template span (preserved for Consistent Probability Sampling compatibility) - **Attributes**: Inherited from the slowest span in the group - **Events**: Inherited from the template (slowest) span - **Links**: Inherited from the template span > **Note**: The summary span's duration (`EndTimestamp - StartTimestamp`) represents the total time window covered by all aggregated spans, which may exceed `duration_max_ns`. For example, if spans overlap or are staggered, the time range can be larger than any individual span's duration. Use `duration_max_ns` to find the slowest individual operation. ### What Gets Aggregated Away When spans are aggregated into a summary span, the following data from non-template spans is **lost**: | Data | Behavior | |------|----------| | **Span Events** | Only the template (slowest) span's events are preserved | | **Span Links** | Only the template span's links are preserved | | **Attributes** | Non-matching attribute values are lost | | **Individual Timestamps** | Original start/end times replaced by the group's time range | | **SpanIDs** | Original SpanIDs are replaced by a single summary SpanID | ### Aggregation Attributes The following attributes are added to the summary span (shown with default `aggregation_attribute_prefix: "aggregation."`): | Attribute | Type | Description | |-----------|------|-------------| | `<prefix>is_summary` | bool | Always `true` to identify summary spans | | `<prefix>span_count` | int64 | Number of spans that were aggregated | | `<prefix>duration_min_ns` | int64 | Minimum duration in nanoseconds | | `<prefix>duration_max_ns` | int64 | Maximum duration in nanoseconds | | `<prefix>duration_avg_ns` | int64 | Average duration in nanoseconds | | `<prefix>duration_total_ns` | int64 | Total duration in nanoseconds | ## Pipeline Placement This processor is designed to work best when placed after processors that ensure complete traces are available: ```yaml service: pipelines: traces: receivers: [otlp] processors: [groupbytrace, spanpruning, batch] exporters: [otlp] ``` Or with tail sampling: ```yaml service: pipelines: traces: receivers: [otlp] processors: [tail_sampling, spanpruning, batch] exporters: [otlp] ``` ## Examples ### Basic Example A trace with repeated database queries (some failing): **Before Processing:** ``` root-span (parent) ├── SELECT (leaf) - duration: 10ms, db.operation: select, status: OK ├── SELECT (leaf) - duration: 15ms, db.operation: select, status: OK ├── SELECT (leaf) - duration: 12ms, db.operation: select, status: OK ├── SELECT (leaf) - duration: 50ms, db.operation: select, status: Error ├── SELECT (leaf) - duration: 45ms, db.operation: select, status: Error └── INSERT (leaf) - duration: 20ms, db.operation: insert, status: OK ``` **After Processing (with `min_spans_to_aggregate: 2`):** ``` root-span (parent) ├── SELECT (summary, status: OK) │ - aggregation.is_summary: true │ - aggregation.span_count: 3 │ - aggregation.duration_min_ns: 10000000 │ - aggregation.duration_max_ns: 15000000 │ - aggregation.duration_avg_ns: 12333333 ├── SELECT (summary, status: Error) │ - aggregation.is_summary: true │ - aggregation.span_count: 2 │ - aggregation.duration_min_ns: 45000000 │ - aggregation.duration_max_ns: 50000000 │ - aggregation.duration_avg_ns: 47500000 └── INSERT (unchanged - only 1 span, below threshold) ``` Note: Spans with different status codes are grouped separately, preserving error information. ### Recursive Parent Aggregation Example When spans are aggregated, the processor also checks if their parent spans can be aggregated. Parent spans are eligible for aggregation when: 1. All of their children are being aggregated 2. They share the same name, kind, and status code with other eligible parents 3. They are not root spans (must have a parent) 4. At least 2 parents meet the criteria **Before Processing (with `min_spans_to_aggregate: 2`, `group_by_attributes: ["db.op"]`):** ``` root ├── handler (status: OK) │ └── SELECT (db.op=select, status: OK) ───┐ ├── handler (status: OK) │ leaf group A: 3 OK SELECTs │ └── SELECT (db.op=select, status: OK) ───┤ ├── handler (status: OK) │ │ └── SELECT (db.op=select, status: OK) ───┘ ├── handler (status: Error) │ └── SELECT (db.op=select, status: Error) ┐ leaf group B: 2 Error SELECTs ├── handler (status: Error) │ │ └── SELECT (db.op=select, status: Error) ┘ ├── handler (status: OK) │ └── INSERT (db.op=insert, status: OK) ──── only 1, below threshold └── worker (status: OK) └── SELECT (db.op=select, status: OK) ──── different parent name ``` **After Processing:** ``` root ├── handler (summary, status: OK, span_count: 3) │ └── SELECT (summary, status: OK, span_count: 3) ├── handler (summary, status: Error, span_count: 2) │ └── SELECT (summary, status: Error, span_count: 2) ├── handler (status: OK) │ └── INSERT (status: OK) ─────────────────────────── unchanged └── worker (status: OK) └── SELECT (status: OK) ─────────────────────────── unchanged ``` **Why each span was handled this way:** | Span | Result | Reason | |------|--------|--------| | 3x handler (OK) with SELECT children | Aggregated | All children aggregated, same name+kind+status | | 3x SELECT (OK) under handler | Aggregated | Same name + kind + status + attributes + parent name | | 2x handler (Error) with SELECT children | Aggregated | All children aggregated, same name+kind+status | | 2x SELECT (Error) under handler | Aggregated | Same name + kind + status + attributes + parent name | | handler (OK) with INSERT child | Unchanged | Child not aggregated (only 1 INSERT) | | INSERT (OK) | Unchanged | Below threshold (only 1 span) | | worker (OK) | Unchanged | Child not aggregated | | SELECT (OK) under worker | Unchanged | Different parent name than other SELECTs | ## Consistent Probability Sampling (CPS) Compatibility The processor is designed to be compatible with [Consistent Probability Sampling](https://opentelemetry.io/docs/specs/otel/trace/tracestate-probability-sampling/) (CPS). CPS uses TraceState to carry sampling metadata (`ot=th:...;rv:...`) where: - `th` (threshold) indicates the sampling probability threshold - `rv` (randomness value) provides consistent randomness for sampling decisions **Why TraceState matters for aggregation:** Spans with different TraceState values represent different sampling populations with different "adjusted counts" (weights). Aggregating them together would produce statistically incorrect summaries and break downstream sampling decisions. The processor uses **exact TraceState matching** (not just the `th` value) because: - The `rv` value affects sampling decisions - Vendor-specific keys may have semantic meaning - Key ordering may be significant ## Limitations - Requires complete traces for accurate leaf detection - Summary span inherits attributes from the slowest span in the group - Parent spans are only aggregated when ALL their children are aggregated ## Telemetry The processor emits the following metrics to help monitor its operation: ### Counters | Metric | Description | |--------|-------------| | `otelcol_processor_spanpruning_spans_received` | Total number of spans received by the processor | | `otelcol_processor_spanpruning_spans_pruned` | Total number of spans removed by aggregation | | `otelcol_processor_spanpruning_aggregations_created` | Total number of aggregation summary spans created | | `otelcol_processor_spanpruning_traces_processed` | Total number of traces processed | ### Histograms | Metric | Description | |--------|-------------| | `otelcol_processor_spanpruning_aggregation_group_size` | Distribution of the number of spans per aggregation group | | `otelcol_processor_spanpruning_processing_duration` | Time taken to process each batch of traces (in seconds) | These metrics can be used to: - Monitor the effectiveness of span pruning (compare `spans_received` vs `spans_pruned`) - Track the compression ratio achieved by aggregation - Identify processing bottlenecks via `processing_duration` - Understand aggregation patterns via `aggregation_group_size` ## Scope / Future Work This MVP focuses on the core aggregation engine. The following features from the original PR (open-telemetry#45617) are planned for follow-up PRs: - **Outlier detection**: IQR and MAD-based statistical outlier detection - **Outlier preservation**: Keep slow spans as individual spans while aggregating normal ones - **Attribute correlation**: Identify attributes that correlate with slow operations - **Histogram buckets**: Latency distribution in summary spans - **Attribute loss analysis**: Track and report attribute diversity lost during aggregation - **Byte-size metrics**: Measure serialized trace sizes before/after pruning ## Architecture The processor operates in three phases per trace: 1. **Tree Construction** (`tree.go`): Builds parent-child relationships, identifies leaves and orphans 2. **Analysis** (`processor.go`, `grouping.go`): Groups similar leaf spans by key, then walks up the tree to find eligible parent spans for recursive aggregation 3. **Execution** (`aggregation.go`): Sorts groups top-down, creates summary spans with preassigned SpanIDs, and batch-removes originals Key design decisions: - **Tree-based analysis** avoids O(n^2) parent lookups by pre-computing relationships - **Type-safe attribute encoding** (`grouping.go`) ensures correct grouping for all pdata value types (maps, slices, bytes) - **Pooled string builders** minimize allocations in the hot grouping-key path - **Single-pass statistics** (`stats.go`) computes min/max/avg/total and time ranges without extra traversals #### Link to tracking issue Fixes open-telemetry#45654 #### Testing - Comprehensive unit tests (`processor_test.go`) covering: leaf span aggregation, recursive parent aggregation at multiple depths, grouping by attributes with glob patterns, status code separation, TraceState/CPS compatibility, span kind grouping, edge cases (empty traces, single spans, orphans, multiple roots), configuration validation, and template span selection (events, links, attributes inherited from slowest span) - Configuration validation tests (`config_test.go`) covering all fields and error cases - Aggregation logic tests (`aggregation_test.go`) for duration calculation and template selection - Benchmark tests (`processor_benchmark_test.go`) measuring throughput across varying trace sizes (100-10000 spans) and group counts - Generated component lifecycle tests and telemetry tests via `mdatagen` #### Documentation - Comprehensive `README.md` with configuration reference, glob pattern examples, summary span schema, pipeline placement guidance, before/after examples (including recursive parent aggregation), CPS compatibility notes, limitations, and telemetry reference - `documentation.md` generated from `metadata.yaml` describing all 6 custom telemetry metrics --------- Signed-off-by: Sean Porter <portertech@gmail.com>
…cs when container status is missing (open-telemetry#47554) Replacing open-telemetry#47538 as we need to merge it before the next release to avoid regression. Guard `docker.ParseImageName` and `LastTerminationState` access under a single cs != nil block to avoid a panic when a container spec exists but kubelet has not yet reported its status. Taking opportunity to increase test coverage of the `receiver/k8sclusterreceiver/internal/container` package
…efix from dimension property updates. (open-telemetry#47494) Add `dimension_client::strip_k8s_label_prefix` option to strip `k8s.<resource>.label.` prefix from dimension property updates. Once open-telemetry#47493 is merged, the k8s cluster receiver will emit Kubernetes resource labels in entity events with the `k8s.<resource>.label.` prefix per OTel semantic conventions (e.g. `k8s.pod.label.app`). When `strip_k8s_label_prefix: true` (the default), the SignalFx exporter strips this prefix when forwarding labels as dimension properties, preserving the existing SignalFx behavior (e.g. `app`).
…l semconv (open-telemetry#47493) Resolves open-telemetry#47491 Kubernetes resource labels emitted as entity event attributes are now keyed as `k8s.<resource>.label.<key>` (e.g. `k8s.pod.label.app`) to align with OTel semantic conventions instead of being emitted verbatim. Affected resources: pod, node, and all resources going through GetGenericMetadata (deployment, daemonset, replicaset, statefulset, cronjob, job, hpa, replicationcontroller).
…utgoing records (open-telemetry#47201) ## Description Resolves open-telemetry#47193 This PR adds a new `record_headers` configuration option to the Kafka exporter **Changes made:** * added `record_headers` to `Config` struct * updated `makeFranzMessages` in the `franz-go` client wrapper to iterate over the configured map and append them as `kgo.RecordHeader` to the outgoing messages * added `TestMakeFranzMessages_RecordHeaders` to verify headers are successfully attached, bringing test suite to 147 passing tests * documented the new field and provided an example in the `README.md` * added `.chloggen/fix-47193.yaml` ## Testing - [x] added `TestMakeFranzMessages_RecordHeaders` - [x] all 147 tests passed locally --------- Signed-off-by: singhvibhanshu <singhvibhanshu@hotmail.com>
…en-telemetry#47331) #### Description Add a first-step tail storage extension integration for tailsampling so span buffering can be backed by an extension implementation. This keeps the current in-memory behavior as the default and gates extension-backed `tail_storage` configuration behind `processor.tailsamplingprocessor.tailstorageextension` while the interface is still evolving. There should be no behavior change introduced by this PR. #### Link to tracking issue Part of open-telemetry#42326 #### Testing - `make test` (in `processor/tailsamplingprocessor`) - `make lint` (in `processor/tailsamplingprocessor`) - `make chlog-validate` (repo root) - Added/updated unit tests for config validation and extension integration paths #### Documentation - Updated `processor/tailsamplingprocessor/README.md` with feature-gate requirements for `tail_storage` - Added `.chloggen/tailsamplingprocessor-tail-storage-extension.yaml` Made with [Cursor](https://cursor.com) --------- Co-authored-by: Joshua MacDonald <jmacd@users.noreply.github.com>
…Counts (open-telemetry#47352) <!--Ex. Fixing a bug - Describe the bug and how this fixes the issue. Ex. Adding a feature - Explain what this achieves.--> #### Description Guard BucketCounts access with a length check in convertDoubleHistogram to avoid index-out-of-range panic when a histogram has explicit bounds but no corresponding bucket counts. <!-- Issue number (e.g. open-telemetry#1234) or full URL to issue, if applicable. --> #### Link to tracking issue Fixes [47351](open-telemetry#47351) <!--Describe what testing was performed and which tests were added.--> #### Testing Added unit test. <!--Describe the documentation added.--> #### Documentation <!--Please delete paragraphs that you did not use before submitting.--> Signed-off-by: Icarus Wu <icaruswu66@qq.com>
…ng data on transient backend unavailability. (open-telemetry#47503) #### Description Modifying retry settings for sumologic exporter to be more reliable to transient backend unavailability. Currently data is dropped after 5 mins of retry, but we need a higher timeout limit. Increased total retry timeout from 5mins to 1hr. Added exponential backoff increasing from 5s to 5min. #### Testing 1. Unit tests passing 2. collector startup and exponential retry settings added verified with a dummy backend url which is unreachable. Sumologic exporter retry timeout started from 5s and grew exponentially. [testsumoExporter.log](https://github.com/user-attachments/files/26605794/testsumoExporter.log) --------- Co-authored-by: Andrzej Stencel <andrzej.stencel@elastic.co> Co-authored-by: Curtis Robert <crobert@splunk.com>
… to metadata.yaml and remove linting rule (open-telemetry#47542) #### Description * Migrates last feature gate (``) for `processor/transformprocessor` to metadata.yaml * Updates factory test to use new metadata feature gate ID * Enables forbidigo linting rule for `processor/transformprocessor` (rule forbids manual creation of feature gates) #### Link to tracking issue Part of open-telemetry#46116 Follow-up for open-telemetry#47371 and open-telemetry#47506 #### Testing `make lint` and `make test` pass.
…ted alias `windowseventlog` (open-telemetry#47359) Part of: - open-telemetry#45339 Assisted-by: Cursor with Composer v2
…-telemetry#47005) Fixes open-telemetry#46977 --------- Signed-off-by: singhvibhanshu <singhvibhanshu@hotmail.com>
open-telemetry#47336) ….yaml Part of [46116](open-telemetry#46116) - add `hostmetrics.process.bootTimeCache`, `hostmetrics.process.onWindowsUseNewGetProcesses` and `receiver.hostmetricsreceiver.UseLinuxMemAvailable` feature gates to `metadata.yaml` - remove manual feature gate initialization - modify references to use feature gates from `metadata.yaml` --------- Signed-off-by: eferreyra <eferreyra@newrelic.com>
This updates the semconv imports from 1.38.0 and 1.39.0 to 1.40.0 --------- Signed-off-by: Alex Boten <223565+codeboten@users.noreply.github.com>
<!--Ex. Fixing a bug - Describe the bug and how this fixes the issue. Ex. Adding a feature - Explain what this achieves.--> #### Description The `TestTraceNoBackend10kSPS` test have been failing intermittently. Bumping the memory up to help tests pass more consistently. <!-- Issue number (e.g. open-telemetry#1234) or full URL to issue, if applicable. --> #### Link to tracking issue Fixes open-telemetry#47561 Signed-off-by: Shaanveer Singh <shaanver.singh@gmail.com>
This PR updates the opentelemetry-collector dependencies to open-telemetry/opentelemetry-collector@5d7304d. Changes included in this PR: open-telemetry/opentelemetry-collector@v0.149.0...5d7304d --------- Signed-off-by: otelbot <197425009+otelbot@users.noreply.github.com> Co-authored-by: otelbot <197425009+otelbot@users.noreply.github.com> Co-authored-by: Pablo Baeyens <pbaeyens31+github@gmail.com> Co-authored-by: Andrzej Stencel <andrzej.stencel@elastic.co>
<!--Ex. Fixing a bug - Describe the bug and how this fixes the issue. Ex. Adding a feature - Explain what this achieves.--> #### Description fix MS documentation link of updateBookmark api <!-- Issue number (e.g. open-telemetry#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 <!--Please delete paragraphs that you did not use before submitting.-->
…to metadata.yaml (open-telemetry#47583) <!--Ex. Fixing a bug - Describe the bug and how this fixes the issue. Ex. Adding a feature - Explain what this achieves.--> #### Description Removes the following stable feature gates: - `exporter.datadogexporter.UseLogsAgentExporter` - `exporter.datadogexporter.metricexportnativeclient` Migrates other feature gates to metadata.yaml <!-- Issue number (e.g. open-telemetry#1234) or full URL to issue, if applicable. --> #### Link to tracking issue Updates open-telemetry#46116
The following commands were run to prepare this release: - make chlog-update VERSION=v0.150.0 - sed -i.bak s/0[.]149[.]0/0.150.0/g versions.yaml - make multimod-prerelease - make multimod-sync --------- Signed-off-by: otelbot <197425009+otelbot@users.noreply.github.com> Co-authored-by: otelbot <197425009+otelbot@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Link to tracking issue
Fixes
Testing
Documentation