public void Handle(IServerRequestAdapter adapter) { serverTracer.ClearCurrentSpan(); TraceData traceData = adapter.GetTraceData(); if (traceData.Sample.HasValue && !traceData.Sample.Value) { serverTracer.SetStateNoTracing(); } else { if (traceData.SpanId != null) { SpanId spanId = traceData.SpanId; serverTracer.SetStateCurrentTrace(spanId.TraceId, spanId.Id, spanId.ParentSpanId, adapter.GetSpanName()); } else { serverTracer.SetStateUnknown(adapter.GetSpanName()); } serverTracer.SetServerReceived(); foreach (KeyValueAnnotation annotation in adapter.RequestAnnotations()) { serverTracer.SubmitBinaryAnnotation(annotation.Key, annotation.Value); } } }
public void Handle(IServerResponseAdapter adapter) { // We can submit this in any case. When server state is not set or // we should not trace this request nothing will happen. try { foreach (KeyValueAnnotation annotation in adapter.ResponseAnnotations()) { serverTracer.SubmitBinaryAnnotation(annotation.Key, annotation.Value); } serverTracer.SetServerSend(); } finally { serverTracer.ClearCurrentSpan(); } }