Fixes ZipkinMessageListenerTests

This commit is contained in:
Adrian Cole
2016-11-07 07:10:18 -08:00
parent 903a9da226
commit fb18d46311

View File

@@ -34,18 +34,37 @@ public class ZipkinMessageListenerTests {
.ipv4(1 << 24 | 2 << 16 | 3 << 8 | 4)
.port(8080).build();
/** Sleuth timestamps are millisecond granularity while zipkin is microsecond. */
/**
* In the RPC span model, the client owns the timestamp and duration of the span. If we
* were propagated an id, we can assume that we shouldn't report timestamp or duration,
* rather let the client do that. Worst case we were propagated an unreported ID and
* Zipkin backfills timestamp and duration.
*/
@Test
public void convertsTimestampAndDurationToMicroseconds() {
long start = System.currentTimeMillis();
this.span.logEvent("hystrix/retry"); // System.currentTimeMillis
public void doesntSetTimestampOrDurationWhenRemote() {
this.span.stop();
zipkin.Span result = ConvertToZipkinSpanList.convert(this.span, this.host);
assertThat(result.timestamp)
.isEqualTo(this.span.getBegin() * 1000);
.isNull();
assertThat(result.duration)
.isEqualTo((this.span.getEnd() - this.span.getBegin()) * 1000);
.isNull();
}
/** Sleuth timestamps are millisecond granularity while zipkin is microsecond. */
@Test
public void convertsTimestampAndDurationToMicroseconds() {
Span span = new Span(1, 3, "http:name", 1L, Collections.<Long>emptyList(), 2L, false, true,
"process");
long start = System.currentTimeMillis();
span.logEvent("hystrix/retry"); // System.currentTimeMillis
zipkin.Span result = ConvertToZipkinSpanList.convert(span, this.host);
assertThat(result.timestamp)
.isEqualTo(span.getBegin() * 1000);
assertThat(result.duration)
.isEqualTo((span.getEnd() - span.getBegin()) * 1000);
assertThat(result.annotations.get(0).timestamp)
.isGreaterThanOrEqualTo(start * 1000)
.isLessThanOrEqualTo(System.currentTimeMillis() * 1000);