Integrate OpenTracing support
- Dominant language
- C++
- Stars
- 16.7k
- Forks
- 1.6k
- Avg merge
- 1d 20h
- Merged PRs (30d)
- 126
Description
https://opentracing.io gives a way for the lifetime of an RPC to be traced across multiple components in a distributed system. Think of this as the full solution to what debug transactions try to provide. It's also the one debugging tool that I miss having.
This will require RPCs to forward a UUID identifying the overall trace, and to forward that UUID along with any subsequent RPCs they make as a result.
Once we do this, it'd also be good to allow a UUID to be passed in from the client API for a transaction, so layers using opentracing could get the full view into FDB of what happens with their requests.
Contributor guide
Research direction
Start by mapping the RPC paths and the client API for transactions, then review how UUIDs and transaction context currently move between components. Define the OpenTracing integration and propagation design before implementation. Done means client-supplied trace identifiers and trace context are forwarded through subsequent RPCs so a distributed transaction can be observed end to end.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- backend-api-design, distributed-systems, observability
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100