Skip to content
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

Default routing to receiver-specific data streams #34246

Open
felixbarny opened this issue Jul 25, 2024 · 1 comment
Open

Default routing to receiver-specific data streams #34246

felixbarny opened this issue Jul 25, 2024 · 1 comment
Labels
enhancement New feature or request exporter/elasticsearch needs triage New item requiring triage

Comments

@felixbarny
Copy link
Contributor

Component(s)

exporter/elasticsearch

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

When dynamic indexing to data streams is enabled, we currently route signals to <type>-generic.otel-default, for example logs-generic-default. A challenge with that is that the data for all receivers is going to the same data streams. We should instead separate the data a bit better according to the data stream naming scheme, without risking a data stream explosion.

As this impacts the default routing, we should implement this before GA as changing the data streams can be considered to be a breaking change.

Describe the solution you'd like

If the scope.name matches the regex ^otelcol/(.*receiver\/?[^\s]*?), the dataset will be set to the capture group 1 ($1). For example, hostmetricsreceiver_process (or hostmetricsreceiver_process.otel in the OTel output mode) for the scope name otelcol/hostmetricsreceiver/process 8.15.0. This ensures that we don't send all metrics from well-known receivers to metrics-generic.otel-default. As tracing instrumentations typically set a different scope name for each instrumented library, and because it can be user-defined with an unknown cardinality, we don't want to route by any generic scope name to not risk an explosion of data streams. Instead, we only route based on receivers by default, where the granularity and cardinality is limited and matches well with the definition of the data stream naming scheme.

Describe alternatives you've considered

No response

Additional context

No response

@felixbarny felixbarny added enhancement New feature or request needs triage New item requiring triage labels Jul 25, 2024
Copy link
Contributor

Pinging code owners:

See Adding Labels via Comments if you do not have permissions to add labels yourself.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request exporter/elasticsearch needs triage New item requiring triage
Projects
None yet
Development

No branches or pull requests

1 participant