internal void InjectExtract_Identity(IHeadersCollection headers) { var traceId = TraceId.CreateFromInt(9); const int spanId = 7; const SamplingPriority samplingPriority = SamplingPriority.UserKeep; const string origin = "synthetics"; var context = new SpanContext(traceId, spanId, samplingPriority, null, origin); _propagator.Inject(context, headers); var resultContext = _propagator.Extract(headers); Assert.NotNull(resultContext); Assert.Equal(context.SpanId, resultContext.SpanId); Assert.Equal(context.TraceId, resultContext.TraceId); Assert.Equal(context.SamplingPriority, resultContext.SamplingPriority); Assert.Equal(context.Origin, resultContext.Origin); }
public void OriginHeader_InjectFromChildSpan() { var traceId = TraceId.CreateFromInt(9); const ulong spanId = 7; const SamplingPriority samplingPriority = SamplingPriority.UserKeep; const string origin = "synthetics"; var propagatedContext = new SpanContext(traceId, spanId, samplingPriority, null, origin); var propagator = new DDSpanContextPropagator(new DatadogTraceIdConvention()); using var firstSpan = _tracer.StartActive("First Span", propagatedContext); using var secondSpan = _tracer.StartActive("Child", firstSpan.Span.Context); IHeadersCollection headers = WebRequest.CreateHttp("http://localhost").Headers.Wrap(); propagator.Inject(secondSpan.Span.Context, headers); var resultContext = propagator.Extract(headers); Assert.NotNull(resultContext); Assert.Equal(firstSpan.Span.Context.Origin, resultContext.Origin); Assert.Equal(secondSpan.Span.Context.Origin, resultContext.Origin); Assert.Equal(origin, resultContext.Origin); }