Skip to content

[processor/transform] Replace ParserCollection and add initial support for context inference#37272

Merged
evan-bradley merged 3 commits intoopen-telemetry:mainfrom
edmocosta:replace-pc-and-add-intial-contextinference-support
Jan 22, 2025
Merged

[processor/transform] Replace ParserCollection and add initial support for context inference#37272
evan-bradley merged 3 commits intoopen-telemetry:mainfrom
edmocosta:replace-pc-and-add-intial-contextinference-support

Conversation

@edmocosta
Copy link
Copy Markdown
Contributor

Description

This PR is part of #29017, and a split from #36888. It changes the transformprocessor, adding the initial support for expressing statement's context via path names.

Change log:

  • Replaced the custom ParserCollection implementation with the new ottl.ParserCollection.
  • When the context configuration key is set (current mode), it relies on the parser collection and statements rewrite utility to prepend the configured context value on the statements paths, making it backward compatible and not requiring users to change their existing configurations.
  • If the context configuration key is empty, it requires all statements's paths to have a valid context prefix, and relies on the context inferrer utility to choose the right parser.
  • Added initial support for passing the cache value to parser's TransformContext.
  • collector/consumer interfaces are not implemented anymore.

Examples:

log_statements:
  # Expressing contexts via path names (no context key value)
  - statements:
     - set(log.attributes["name"], "replaced")

   # Existing format
  - context: log
    statements:
      - set(attributes["name"], "replaced")

Link to tracking issue

#29017,

Testing

Unit tests

Comment thread processor/transformprocessor/internal/logs/processor.go Outdated
Copy link
Copy Markdown
Member

@TylerHelmuth TylerHelmuth left a comment

Choose a reason for hiding this comment

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

Needs a changelog and if we can make it so that the existing user's use of cache is unaffected that I believe it can be an enhancement instead of breaking.

@mx-psi mx-psi assigned TylerHelmuth and unassigned mx-psi Jan 17, 2025
@TylerHelmuth
Copy link
Copy Markdown
Member

TylerHelmuth commented Jan 21, 2025

@evan-bradley please review. I'll merge on Friday unless there are objections or you merge it first.

@evan-bradley evan-bradley merged commit 4ebb7af into open-telemetry:main Jan 22, 2025
@github-actions github-actions bot added this to the next release milestone Jan 22, 2025
@edmocosta edmocosta deleted the replace-pc-and-add-intial-contextinference-support branch January 22, 2025 16:52
chengchuanpeng pushed a commit to chengchuanpeng/opentelemetry-collector-contrib that referenced this pull request Jan 26, 2025
zeck-ops pushed a commit to zeck-ops/opentelemetry-collector-contrib that referenced this pull request Apr 23, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

processor/transform Transform processor

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants