Skip to content

processor/routing supports matching the statement only once. #26353

@huange7

Description

@huange7

Component(s)

processor/routing

Is your feature request related to a problem? Please describe.

If multiple statements are configured in the configuration file, the routing processor will judge each statement. Whenever a match is made, data will be sent to the exporters defined in the configuration. Can we support interrupting the match after matching only once?

Describe the solution you'd like

Use a switch to allow the routing processor to match only once.

Describe alternatives you've considered

No response

Additional context

 routing:
    default_exporters:
      - jaeger
    error_mode: ignore
    table:
      - statement: route() where resource.attributes["service.name"] == "demo"
        exporters: [ logging ]
      - statement: route() where resource.attributes["service.name"] == "demo" and resource.attributes["token"] == "xxx"
        exporters: [ logging/2 ]

As shown in the configuration file above, I hope that some traces/metrics/logs will be sent to logging exporter if they only match the service.name attribute, and if they match both the service.name and the token, they will be sent to logging/2 exporter. This is possible in practice.

If this seems reasonable, I sincerely hope that I can make some contributions.

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions