Description
Component(s)
exporter/loadbalancing
Is your feature request related to a problem? Please describe.
The LoadBalancing exporter is a great idea. It currently exposes a number of ways to route metrics coming in:
const (
traceIDRouting routingKey = iota
svcRouting
metricNameRouting
resourceRouting
)
However, there are many situation where these routing methods can lead to non-uniform distributions of metrics. For example, if datapoints use lots of labels, or med to high cardinality labels. The finest grain routing we can currently do is metric name routing. But if the majority of the datapoints are all the same metric name, then this doesn't help.
Describe the solution you'd like
I would like to propose adding a new value to the routing enum: streamIDRouting
. This would route individual datapoints based on their unique ID. We could use the new internal/exp/metrics/identity
package: https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/internal/exp/metrics/identity/stream.go#L29
I'm willing to be the implementer
Describe alternatives you've considered
No response
Additional context
No response