opentelemetry-haskell
opentelemetry-haskell copied to clipboard
Implement the context propagation using environment variables
When a service A calls service B, it's common practice to put the trace and span ids into HTTP headers so that in the visualizer you can see spans of B as children of spans of A.
The idea is to do the similar thing when a program A calls program B as a subprocess. For example, stack or ghcide calls ghc and sets an environment variable "OPENTELEMETRY_CONTEXT=ot-
@ethercrow , Note. I haven't found where OPENTELEMETRY_CONTEXT is used in stack/ghcide, but in python project they read from that var 1 of 2 constants, not strings like "ot-fffa23432-bedc38383" https://opentelemetry-python.readthedocs.io/en/stable/_modules/opentelemetry/context.html
@ethercrow ,
I think the following hypothetical GHC feature would solve all problems related to this ticket
https://gitlab.haskell.org/ghc/ghc/-/merge_requests/3382