public static HttpRequestMessage AddCorrelationContext(this HttpRequestMessage message, ICorrelationContext context) { if (message == null) { throw new ArgumentNullException(nameof(message)); } if (context == null) { throw new ArgumentNullException(nameof(context), "Cannot add a null correlation context"); } if (!string.IsNullOrEmpty(context.MessageId)) { message.Headers.Add(context.MessageIdHeader, context.MessageId); } IEnvoyCorrelationContext envoy = context.EnvoyCorrelationContext; message.Headers.Add(envoy.FlagsHeader, envoy.Flags); message.Headers.Add(envoy.SampledHeader, envoy.Sampled); message.Headers.Add(envoy.RequestIdHeader, envoy.RequestId); message.Headers.Add(envoy.SpanIdHeader, envoy.SpanId); message.Headers.Add(envoy.ParentSpanIdHeader, envoy.ParentSpanId); message.Headers.Add(envoy.TraceIdHeader, envoy.TraceId); message.Headers.Add(envoy.OtSpanContextHeader, envoy.OtSpanContext); return(message); }
public ICorrelationContext Create(string messageId, IEnvoyCorrelationContext envoyCorrelationContext) { return(new DefaultCorrelationContext { MessageId = messageId, EnvoyCorrelationContext = envoyCorrelationContext }); }
public ICorrelationContext Create(IEnvoyCorrelationContext envoyCorrelationContext) { if (envoyCorrelationContext == null) { throw new ArgumentNullException(nameof(envoyCorrelationContext)); } return(new DefaultCorrelationContext { EnvoyCorrelationContext = envoyCorrelationContext }); }
public ICorrelationContext CreateFromJaegerTracer(string messageId = "") { var tracer = _provider.GetService <ITracer>(); if (tracer?.ActiveSpan?.Context == null) { return(null); } var ctx = tracer.ActiveSpan.Context.ToString(); IEnvoyCorrelationContext envoy = ExtractFromJaegerContext(ctx); envoy.OtSpanContext = ctx; envoy.RequestId = Activity.Current == null ? new TraceIdGenerator().TraceIdentifier : Activity.Current?.RootId; return(Create(messageId, envoy)); }