CXXCBC-750: Add internal tracer for use by wrapper SDKs #862
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Motivation
Tracer implementations are expected to be defined in wrapper SDKs. Invoking these tracers from the core involves crossing the wrapper-core boundary on the hot path, which we want to avoid. We can work around this by adding a type of tracer that stores all the span information in memory, and allows wrappers to access the information and create the necessary spans after the operation has returned from the core.
Changes
Add
wrapper_sdk_tracerandwrapper_sdk_spanthat stores all span information wrappers need to construct spans on their side within the span objects. Wrappers can access the span information via the parent span they provide to Core API operations