Skip to content

Align internal telemetry with semantic conventions #14350

@thompson-tomo

Description

@thompson-tomo

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 a
  • otel_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.io and 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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions