At Peek, we are looking to gain deep insights into the entire stack of our iOS applications and are looking to add full end-to-end tracing of our product.
As part of this, we'd like to be able to isolate our cache reading & writing, from our network requests, to our UI logic.
To be able to do this using SwiftTracing, we'd need some way to pass our dynamic Baggage context into our ApolloInterceptor types, but the entire Apollo framework of types don't understand this concept.
If ApolloInterceptor was fully async/await capable, we wouldn't need deep integration with the package at the Apollo layer, as we'd be able to leverage Task Local Values in our ApolloInterceptor types.
However, we'd still lose out on Apollo being able to provide trace spans and logs that provide our application with richer data for debugging issues.
Proposed solution
Pull in the common API packages and extend protocol definitions to receive Logger and Baggage instances for logging & tracing purposes
Feature request
Integration with Swift ecosystem libraries to support network layer tracing & instrumentation with SwiftLog and SwiftTracing
At the very least supporting the
Baggage
common currency from InstrumentationBaggageMotivation
At Peek, we are looking to gain deep insights into the entire stack of our iOS applications and are looking to add full end-to-end tracing of our product.
As part of this, we'd like to be able to isolate our cache reading & writing, from our network requests, to our UI logic.
To be able to do this using SwiftTracing, we'd need some way to pass our dynamic
Baggage
context into ourApolloInterceptor
types, but the entire Apollo framework of types don't understand this concept.If
ApolloInterceptor
was fully async/await capable, we wouldn't need deep integration with the package at the Apollo layer, as we'd be able to leverage Task Local Values in ourApolloInterceptor
types.However, we'd still lose out on Apollo being able to provide trace spans and logs that provide our application with richer data for debugging issues.
Proposed solution
Pull in the common API packages and extend protocol definitions to receive
Logger
andBaggage
instances for logging & tracing purposes