Conventions are the contract between Azure SDK and tracing providers such as Azure Monitor, Jaeger and others. They describe and standardize attributes, events and relationships for common span types: HTTP, DB, messaging and others. Observability vendors use conventions to build visualizations and may be very sensitive to them. Custom Azure SDK conventions are described in tracing-conventions.yml and include:

  • Custom Azure SDK attributes
  • Azure SDK HTTP conventions compatible with OpenTelemetry
  • Custom messaging and DB conventions. They don’t follow OpenTelemetry convention and used until OpenTelemetry conventions evolve and stabilize

When writing instrumentation in Azure SDK or Core:

DO use OpenTelemetry conventions whenever possible.

DO update distributed-tracing-conventions.yml when adding new attributed.

DO set OpenTelemetry Schema URL when creating OpenTelemetry tracer.

☑️ YOU SHOULD set Azure Client Library name and version Schema URL when creating OpenTelemetry tracer.

☑️ YOU SHOULD contribute new conventions (or patch existing ones) to OpenTelemetry when there is no suitable one or some scenarios are missing.

✔️ YOU MAY extend list of attributes on top of OpenTelemetry contentions with Azure-specific ones.

⛔️ DO NOT add new custom Azure SDK conventions.