apple / apple/foundationdb

Integrate OpenTracing support

Open
#2,085 3 comments 9 reactions 0 assignees View on GitHub
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.