-
Notifications
You must be signed in to change notification settings - Fork 1.8k
Description
Component(s)
receiver/receiverhelper, exporter/exporterhelper, processor/processorhelper
Describe the issue you're reporting
During a recent pr an interest in internal telemetry arose and during searching I came across #11406
Looking at those definitions, they seem to not be following semantic conventions and as such I feel we should update the definitions accordingly with the issues being:
Root Namespace
The internal telemetry is using the otelcol namespace however the conventions state:
For each multi-word dot-delimited component of the name separate the words by underscores (i.e. use snake_case). For example http.response.status_code
https://opentelemetry.io/docs/specs/semconv/general/naming/#general-naming-considerations
Based on that guidance I propose 2 options to rename that root namespace.
otel.col: requires spec adjustment to delegate sub-namespace responsibility to collector sig. This is my preferred aotel_col:
Data flow size
The internal telemetry currently has dedicated metrics for consumed/produced.
io - an instrument that measures bidirectional data flow should be called
entity.ioand have attributes for direction. For example,system.network.io.
https://opentelemetry.io/docs/specs/semconv/general/naming/#instrument-naming
Based on the guidance I propose we consolidate the metrics and use a otel.col.step.io.direction attribute to identify if incoming/outgoing.
Component attributes
The internal attributes use the otelcol.component.kind & otelcol.component.id attribute however there is already otel component attributes defined in semconv.
I would propose we rename otelcol.component.id to otel.component.name. Also rename otelcol.component.kind to otel.component.type with values of collector_exporter etc
signal kind
The internal telemetry uses otelcol.signal however it is not clear what property is being described.
When introducing a name describing a certain property of the object, include the property name.
https://opentelemetry.io/docs/specs/semconv/general/naming/#general-naming-considerations
I would propose we rename otelcol.signal to otel.signal.kind to enable reuse and can be complemented with *.name & *.type.
Note. otelcol.signal & otelcol.signal.output is not supported in semconv due to namespace not allowed to be also attributes.
For the output attribute I would rename it to, otel.col.step.output
Tip
React with 👍 to help prioritize this issue. Please use comments to provide useful context, avoiding +1 or me too, to help us triage it. Learn more here.