public static void CopyBaggageItemsTo(this ISpanContext spanContext, ISpan span) { foreach (var pair in spanContext.GetBaggageItems()) { span.SetBaggageItem(pair.Key, pair.Value); } }
public void Inject(ISpanContext spanContext, ITextMap carrier) { carrier.Set(_spanContextKey, spanContext.ToString()); foreach (var baggage in spanContext.GetBaggageItems()) { carrier.Set(baggage.Key, baggage.Value); } }
public void Inject <TCarrier>(ISpanContext spanContext, TCarrier carrier) { if (carrier is ITextMap map) { map.Set(_headersConfig.TraceContextHeaderName, _encodeValue(spanContext.ToString())); foreach (var baggage in spanContext.GetBaggageItems()) { map.Set($"{_headersConfig.TraceBaggageHeaderPrefix}-{baggage.Key}", _encodeValue(baggage.Value)); } return; } throw new ArgumentException($"{nameof(carrier)} is not ITextMap"); }
public SpanContext(ISpanContext ctx) { TraceId = ctx.TraceId; SpanId = ctx.SpanId; BaggageItems = BaggageItem.ToConvert(ctx.GetBaggageItems()); }
public virtual IEnumerable <KeyValuePair <string, string> > GetBaggageItems() => _spanContext.GetBaggageItems();