-
Notifications
You must be signed in to change notification settings - Fork 2.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[processor/transform] Add support for global condition's fully qualified paths and error mode overrides #37676
Merged
TylerHelmuth
merged 3 commits into
open-telemetry:main
from
edmocosta:add-global-conditions-and-group-error-mode-support
Feb 6, 2025
Merged
[processor/transform] Add support for global condition's fully qualified paths and error mode overrides #37676
TylerHelmuth
merged 3 commits into
open-telemetry:main
from
edmocosta:add-global-conditions-and-group-error-mode-support
Feb 6, 2025
Conversation
This file contains 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
TylerHelmuth
approved these changes
Feb 4, 2025
evan-bradley
approved these changes
Feb 6, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nice! My comments are only nits.
Co-authored-by: Evan Bradley <11745660+evan-bradley@users.noreply.github.com>
chengchuanpeng
pushed a commit
to chengchuanpeng/opentelemetry-collector-contrib
that referenced
this pull request
Feb 8, 2025
…ied paths and error mode overrides (open-telemetry#37676) <!--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 part of open-telemetry#29017, and a split from open-telemetry#36888. It changes the `transformprocessor`, adding support for error mode overrides per context statements group, and global `conditions` with fully qualified paths for context-inferred configuration styles. Change log: - Structured context-inferred configuration styles (without `context: <value>`) now supports and requires conditions with fully qualified paths, for example: ```yaml log_statements: - statements: - set(log.attributes["pass"], "true") conditions: - log.attributes["pass"] == nil ``` If non qualified paths are used, it raises an error, for example `- attributes["pass"] == nil` would generate the following error: ``` invalid config for "transform" processor unable to parse OTTL condition "attributes[\"pass\"] == nil": missing context name for path "attributes[pass]", possibly valid options are: "log.attributes[pass]", "instrumentation_scope.attributes[pass]", "resource.attributes[pass]" ``` Existing non-context inferred configurations shouldn't be impacted by this change. - A new configuration `error_mode` key has been added to the context statements group (`common.ContextStatements`), When provided, it overrides the top-level error mode, offering more granular control over error handling, for example: ```yaml error_mode: propagate log_statements: - context: log error_mode: ignore statements: - set(attributes["attr1"], ParseJSON(1)) - context: log statements: - set(attributes["executed"], true) ``` <!-- Issue number (e.g. open-telemetry#1234) or full URL to issue, if applicable. --> #### Link to tracking issue open-telemetry#29017 <!--Describe what testing was performed and which tests were added.--> #### Testing Unit tests <!--Describe the documentation added.--> #### Documentation Changed the README to include the new configuration key `error_mode` <!--Please delete paragraphs that you did not use before submitting.--> --------- Co-authored-by: Evan Bradley <11745660+evan-bradley@users.noreply.github.com>
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
This PR is part of #29017, and a split from #36888. It changes the
transformprocessor
, adding support for error mode overrides per context statements group, and globalconditions
with fully qualified paths for context-inferred configuration styles.Change log:
Structured context-inferred configuration styles (without
context: <value>
) now supports and requires conditions with fully qualified paths, for example:If non qualified paths are used, it raises an error, for example
- attributes["pass"] == nil
would generate the following error:Existing non-context inferred configurations shouldn't be impacted by this change.
A new configuration
error_mode
key has been added to the context statements group (common.ContextStatements
),When provided, it overrides the top-level error mode, offering more granular control over error handling, for example:
Link to tracking issue
#29017
Testing
Unit tests
Documentation
Changed the README to include the new configuration key
error_mode