flag for consistent OTLP attribute format across VictoriaStack
Is your feature request related to a problem? Please describe
Currently, the OpenTelemetry data ingestion creates different label names/field names in VictoriaMetrics/VictoriaLogs/VictoriaTraces. Example:
- VictoriaMetrics attachs no prefix for most attributes, the only exception is
scope.attributes. - VictoriaLogs does the same as VictoriaMetrics, with
scope.attributes. - VictoriaTraces attachs prefix like
resource_attr:andspan_attr:for all attributes.
There're some issues:
- conflict between resource attributes, attributes could exist.
- the correlation between projects is harder as the same resource attribute in different projects is represented differently.
Describe the solution you'd like
Provide a flag to force the same naming translation for OTel signals, so that:
- correlation between projects could be smooth.
- conflicts within each signal could be eliminated. This might be not important for metrics because Prometheus override conflict labels, and many other o11y projects handle it in different way (allowing duplicated fields, overriding, ...).
It would be a breaking change that user should decide when start running the VictoriaMetrics/Logs/Traces, as it generate completely different data enabling/disabling the flag.
Flag name example could be: -opentelemetry.consistentPrefix or something else.
Describe alternatives you've considered
For correlation, it can be done by configuring properly in the visualization such as Grafana.
For attribute conflict there's no workaround for now other than logging an error and noti user to fix it manually from the OTel collector side.
Additional information
Related discussion and pull requeests:
Source: VictoriaMetrics/VictoriaMetrics