Azure / Azure/azure-sdk-for-rust
[Service Bus] Add distributed tracing
- Dominant language
- Rust
- Stars
- 884
- Forks
- 365
- Avg merge
- 2d 19h
- Merged PRs (30d)
- 109
Description
## Summary
The crate emits no spans. There is no distributed tracing instrumentation anywhere in `sdk/servicebus`.
## Motivation
`azure_messaging_eventhubs` instruments its producer, its consumer, its management client, its authorizer, and its recoverable layer. The Azure SDK guidelines require a stable client library to emit spans that follow the messaging conventions, so a caller can trace a message from the producer through the broker to the consumer.
Message tracing also needs the trace context to travel in the message application properties, which touches the message model from #4942.
## Proposal
- Add spans for send, receive, settle, and every management call.
- Follow the span names and the attributes that Event Hubs uses.
- Inject and extract the trace context through the message application properties.
## Dependencies
Blocked by:
- #4941 [Service Bus] Settle the public API shape before API review
Sub-issue of #4934.
Contributor guide
Research direction
Start in sdk/servicebus and compare the instrumentation used by azure_messaging_eventhubs for producer, consumer, management, authorizer, and recoverable operations. Wait for #4941 to settle the public API shape, then coordinate with the message model work in #4942; done means send, receive, settle, and management calls emit matching spans and trace context is injected and extracted through application properties.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- azure, rust
- Domain
- distributed-systems, observability-sre
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 28/100