About
tracing in a distributed world.
Articles Related
Implementation
Thread local storage
Instrumenting asynchronous application for distributed tracing is quite challenging because most tracing libraries rely on thread local storage (Storage that is local the thread). While it works reasonably well in a blocking application (one thread), this does not work for an asynchronous application.
This implementation supposes that:
- the application control flow matters (i.e threads)
- although what really matters is the application request flow (e.g the incoming HTTP request).