As mentioned on #147 (comment) I was seeing an issue where a gRPC server was not linking spans to a distributed trace. This turned out to be because I was using the provided TextMapGetter[Map[String, String]] and gRPC metadata keys are lower case. In my case I am using the B3 propagator so it would have been trying to find [X-B3-TraceId, X-B3-SpanId, X-B3-Sampled] in ["x-b3-traceid", "x-b3-spanid", "x-b3-sampled"].
To resolve this I changed my carrier type to a Map[CIString, String] and wrote a TextMapGetter implementation for that type.
Is this the correct way to deal with this? If so, shall we provide the Map[CIString, String] TextMapGetter instance in this lib?
As mentioned on #147 (comment) I was seeing an issue where a gRPC server was not linking spans to a distributed trace. This turned out to be because I was using the provided
TextMapGetter[Map[String, String]]and gRPC metadata keys are lower case. In my case I am using the B3 propagator so it would have been trying to find[X-B3-TraceId, X-B3-SpanId, X-B3-Sampled]in["x-b3-traceid", "x-b3-spanid", "x-b3-sampled"].To resolve this I changed my carrier type to a
Map[CIString, String]and wrote aTextMapGetterimplementation for that type.Is this the correct way to deal with this? If so, shall we provide the
Map[CIString, String]TextMapGetterinstance in this lib?