URN Format for OTAP Dataflow (config=model-v1)

February 26, 2026 ยท View on GitHub

This document defines the canonical URN format for node identifiers in OTAP dataflow configuration files. All nodes MUST use the format below.

Canonical format

Full form (always valid):

urn:<namespace>:<kind>:<id>

Where:

  • <namespace> is a vendor or vendor+product identifier (e.g., otel, microsoft).
  • otel is reserved for OpenTelemetry-provided nodes.
  • <id> identifies the node type.
  • <kind> is one of: receiver, processor, exporter.

Note: the namespace reflects ownership/standardization of the node type, not the Rust crate or module that implements it. OpenTelemetry-provided nodes use the otel namespace even if their implementation lives in the otap crate.

OTel shortcut form

For OpenTelemetry nodes only, a shortcut form is permitted:

<kind>:<id>

This is expanded internally to:

urn:otel:<kind>:<id>

The shortcut form MUST NOT be used for any namespace other than otel. Identifiers starting with urn: are always treated as fully-qualified URNs.

Identifier rules

  • : is a reserved separator and MUST NOT appear inside any component.
  • Components are treated as opaque identifiers, but for OTAP dataflow we restrict components to [a-z0-9._-] for unambiguous parsing.
  • Empty components are not allowed.

Examples

Full form examples:

urn:otel:receiver:otlp
urn:otel:processor:debug
urn:otel:exporter:otap
urn:microsoft:exporter:azure_monitor

Shortcut form (OTel only):

receiver:otlp
processor:debug