Проброс span Opentelemetry через текстовое поле

Для того чтобы пробросить span просто в текстовом виде можно выполнить следующее:

m := make(map[string]string)
 
otel.GetTextMapPropagator().Inject(r.Context(), propagation.MapCarrier(m))

после этого map’а m будет содержать id родительского span’а в ключе traceparent. Таким образом можно развернуть его обратно в контекст примерно вот так:

m := make(map[string]string)
pm := propagation.MapCarrier(m)
pm.Set("traceparent", c["traceparent"])
 
ctx := otel.GetTextMapPropagator().Extract(context.Background(), pm)

Полученный контекст ctx можно будет использовать для создания дочернего span’а.