Проброс 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’а.