コード例 #1
0
        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);
                }
            }
        }
コード例 #2
0
 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();
     }
 }