private static void AddClientSendReceiveAnnotations(Span span, DateTime startTime, TimeSpan timeOffset) { var endtime = startTime + timeOffset; span.AddAnnotation(new ZipkinAnnotation(startTime, zipkinCoreConstants.CLIENT_SEND)); span.AddAnnotation(new ZipkinAnnotation(endtime, zipkinCoreConstants.CLIENT_RECV)); span.SetAsComplete(endtime); }
private static TimeSpan?GetSpanDuration(TimeSpan offset, params string[] annotations) { var spanState = new SpanState(1, null, 2, isSampled: null, isDebug: false); var span = new Span(spanState, TimeUtils.UtcNow); var annotationTime = span.SpanCreated; Array.ForEach(annotations, a => span.AddAnnotation(new ZipkinAnnotation(annotationTime, a))); span.SetAsComplete(annotationTime.Add(offset)); return(span.Duration); }
public void MinimumDurationShouldBeAMicrosecond() { var spanState = new SpanState(1, null, 2, isSampled: null, isDebug: false); var span = new Span(spanState, TimeUtils.UtcNow); var annotationTime = span.SpanCreated; span.AddBinaryAnnotation(new BinaryAnnotation(zipkinCoreConstants.LOCAL_COMPONENT, Encoding.UTF8.GetBytes("lc1"), AnnotationType.STRING, annotationTime, SerializerUtils.DefaultServiceName, SerializerUtils.DefaultEndPoint)); span.SetAsComplete(annotationTime.AddTicks(1)); Assert.NotNull(span.Duration); Assert.AreEqual(0.001, span.Duration.Value.TotalMilliseconds); }
public void Visit(ClientRecv clientRecv) { AddTimestampedAnnotation(zipkinCoreConstants.CLIENT_RECV); _span.SetAsComplete(_record.Timestamp); }