Skip to content

[Feature Request] Support W3C tracing information #1347

Description

@koepalex

Product

.NET SDK, Go SDK, Rust SDK

Azure Iot Operations version

latest

What happened?

Customers want to have observability what is going on in their AIO environment. AIO is using OpenTelemetry as standard for logs, metrics and traces. To capture distributed calls, W3C has standardized a trace header, that contains trace parent and trace state. The SDK should be aware of those and integrate them automatically:

  • CommandInvoker: Automatically propagate traceparent + tracestate as MQTT user properties using CloudEvents observability extension names
  • Customer override: Allow users to provide their own tracing values via request metadata (not blocked as reserved)
  • CommandExecutor: Extract tracing context from user properties and create a child span
    • .NET: Use System.Diagnostics.Activity / ActivitySource
    • Rust: Add opentelemetry crate
    • Go: add opentelmetry package
  • Telemetry (sender/receiver) should also get tracing

List the steps to reproduce

No response

Code of Conduct

  • I agree to follow this project's Code of Conduct

Metadata

Metadata

Assignees

Labels

triageTriage required

Type

No type

Fields

No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions