From 8d2efdb9a945710f5e0ff9d6ac5e26d51cbd66ee Mon Sep 17 00:00:00 2001 From: Dave Syer Date: Sun, 16 Aug 2015 10:05:05 +0100 Subject: [PATCH] Change a few names of things KV annotations are just "annotations", and the "start" and "stop" annotations in zipkin are "acquire" and "release" (since, in particular the latter can in principle happen more than once and not necessarily the last thing that happens to a span). TODO: decide if TraceContextHolder is really holding a Span or a TraceContext (or TraceScope). Maybe think of a better name for TraceScope. --- .../cloud/sleuth/MilliSpan.java | 2 +- .../springframework/cloud/sleuth/Span.java | 4 ++-- .../cloud/sleuth/TraceScope.java | 6 +++--- .../event/ArrayListSpanAccumulator.java | 4 ++-- ...artedEvent.java => SpanAcquiredEvent.java} | 6 +++--- ...oppedEvent.java => SpanReleasedEvent.java} | 6 +++--- .../cloud/sleuth/log/JsonLogSpanListener.java | 6 +++--- .../cloud/sleuth/log/Slf4jSpanListener.java | 12 +++++------ .../cloud/sleuth/trace/DefaultTrace.java | 8 ++++---- .../cloud/sleuth/DefaultTraceTests.java | 12 +++++------ .../sleuth/log/JsonLogSpanListenerTests.java | 6 +++--- .../sleuth/zipkin/ZipkinSpanListener.java | 20 +++++++++---------- 12 files changed, 46 insertions(+), 46 deletions(-) rename spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/event/{SpanStartedEvent.java => SpanAcquiredEvent.java} (85%) rename spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/event/{SpanStoppedEvent.java => SpanReleasedEvent.java} (85%) diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/MilliSpan.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/MilliSpan.java index 39473fef5..cc0a2061c 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/MilliSpan.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/MilliSpan.java @@ -94,7 +94,7 @@ public class MilliSpan implements Span { } @Override - public void addKVAnnotation(String key, String value) { + public void addAnnotation(String key, String value) { this.kVAnnotations.put(key, value); } diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/Span.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/Span.java index 5bd39f1f8..80fae71c6 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/Span.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/Span.java @@ -99,7 +99,7 @@ public interface Span { /** * Add a data annotation associated with this span */ - void addKVAnnotation(String key, String value); + void addAnnotation(String key, String value); /** * Add a timeline annotation associated with this span @@ -112,7 +112,7 @@ public interface Span { *

* Will never be null. */ - Map getKVAnnotations(); + Map getAnnotations(); /** * Get any timeline annotations (read only) diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/TraceScope.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/TraceScope.java index 5053e83a8..af9f0569e 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/TraceScope.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/TraceScope.java @@ -22,7 +22,7 @@ import lombok.SneakyThrows; import lombok.Value; import lombok.experimental.NonFinal; -import org.springframework.cloud.sleuth.event.SpanStoppedEvent; +import org.springframework.cloud.sleuth.event.SpanReleasedEvent; import org.springframework.cloud.sleuth.util.ExceptionUtils; import org.springframework.context.ApplicationEventPublisher; @@ -99,11 +99,11 @@ public class TraceScope implements Closeable { this.span.stop(); if (this.savedSpan != null && this.span.getParents().contains(this.savedSpan.getSpanId())) { - this.publisher.publishEvent(new SpanStoppedEvent(this, this.savedSpan, + this.publisher.publishEvent(new SpanReleasedEvent(this, this.savedSpan, this.span)); } else { - this.publisher.publishEvent(new SpanStoppedEvent(this, this.span)); + this.publisher.publishEvent(new SpanReleasedEvent(this, this.span)); } TraceContextHolder.setCurrentSpan(this.savedSpan); } diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/event/ArrayListSpanAccumulator.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/event/ArrayListSpanAccumulator.java index 5e098c895..2b1efb638 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/event/ArrayListSpanAccumulator.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/event/ArrayListSpanAccumulator.java @@ -27,11 +27,11 @@ import org.springframework.context.ApplicationListener; * @author Spencer Gibb */ @Value -public class ArrayListSpanAccumulator implements ApplicationListener { +public class ArrayListSpanAccumulator implements ApplicationListener { private final ArrayList spans = new ArrayList<>(); @Override - public void onApplicationEvent(SpanStoppedEvent event) { + public void onApplicationEvent(SpanReleasedEvent event) { spans.add(event.getSpan()); } } diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/event/SpanStartedEvent.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/event/SpanAcquiredEvent.java similarity index 85% rename from spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/event/SpanStartedEvent.java rename to spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/event/SpanAcquiredEvent.java index ace23d7c2..355081806 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/event/SpanStartedEvent.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/event/SpanAcquiredEvent.java @@ -28,16 +28,16 @@ import org.springframework.context.ApplicationEvent; @Data @EqualsAndHashCode(callSuper=false) @SuppressWarnings("serial") -public class SpanStartedEvent extends ApplicationEvent { +public class SpanAcquiredEvent extends ApplicationEvent { private final Span parent; private final Span span; - public SpanStartedEvent(Object source, Span span) { + public SpanAcquiredEvent(Object source, Span span) { this(source, null, span); } - public SpanStartedEvent(Object source, Span parent, Span span) { + public SpanAcquiredEvent(Object source, Span parent, Span span) { super(source); this.parent = parent; this.span = span; diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/event/SpanStoppedEvent.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/event/SpanReleasedEvent.java similarity index 85% rename from spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/event/SpanStoppedEvent.java rename to spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/event/SpanReleasedEvent.java index 29a835260..011f14b2c 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/event/SpanStoppedEvent.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/event/SpanReleasedEvent.java @@ -28,16 +28,16 @@ import org.springframework.context.ApplicationEvent; @Data @EqualsAndHashCode(callSuper=false) @SuppressWarnings("serial") -public class SpanStoppedEvent extends ApplicationEvent { +public class SpanReleasedEvent extends ApplicationEvent { private final Span span; private final Span parent; - public SpanStoppedEvent(Object source, Span span) { + public SpanReleasedEvent(Object source, Span span) { this(source, null, span); } - public SpanStoppedEvent(Object source, Span parent, Span span) { + public SpanReleasedEvent(Object source, Span parent, Span span) { super(source); this.parent = parent; this.span = span; diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/log/JsonLogSpanListener.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/log/JsonLogSpanListener.java index 69b0b33a4..f364ce5ef 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/log/JsonLogSpanListener.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/log/JsonLogSpanListener.java @@ -20,7 +20,7 @@ import lombok.Data; import lombok.SneakyThrows; import lombok.extern.apachecommons.CommonsLog; -import org.springframework.cloud.sleuth.event.SpanStoppedEvent; +import org.springframework.cloud.sleuth.event.SpanReleasedEvent; import org.springframework.context.event.EventListener; import org.springframework.core.Ordered; import org.springframework.core.annotation.Order; @@ -46,9 +46,9 @@ public class JsonLogSpanListener { } @SneakyThrows - @EventListener(SpanStoppedEvent.class) + @EventListener(SpanReleasedEvent.class) @Order(Ordered.LOWEST_PRECEDENCE-10) - public void stop(SpanStoppedEvent event) { + public void stop(SpanReleasedEvent event) { log.info(this.prefix + this.objectMapper.writeValueAsString(event.getSpan()) + this.suffix); } diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/log/Slf4jSpanListener.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/log/Slf4jSpanListener.java index d5ced42fb..f4adf3904 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/log/Slf4jSpanListener.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/log/Slf4jSpanListener.java @@ -24,8 +24,8 @@ import org.slf4j.MDC; import org.springframework.cloud.sleuth.Span; import org.springframework.cloud.sleuth.Trace; import org.springframework.cloud.sleuth.event.SpanContinuedEvent; -import org.springframework.cloud.sleuth.event.SpanStartedEvent; -import org.springframework.cloud.sleuth.event.SpanStoppedEvent; +import org.springframework.cloud.sleuth.event.SpanAcquiredEvent; +import org.springframework.cloud.sleuth.event.SpanReleasedEvent; import org.springframework.context.event.EventListener; import org.springframework.core.Ordered; import org.springframework.core.annotation.Order; @@ -36,9 +36,9 @@ import org.springframework.core.annotation.Order; @Slf4j public class Slf4jSpanListener { - @EventListener(SpanStartedEvent.class) + @EventListener(SpanAcquiredEvent.class) @Order(Ordered.LOWEST_PRECEDENCE) - public void start(SpanStartedEvent event) { + public void start(SpanAcquiredEvent event) { Span span = event.getSpan(); MDC.put(Trace.SPAN_ID_NAME, span.getSpanId()); MDC.put(Trace.TRACE_ID_NAME, span.getTraceId()); @@ -59,9 +59,9 @@ public class Slf4jSpanListener { log.info("Continued span: {}", event.getSpan()); } - @EventListener(SpanStoppedEvent.class) + @EventListener(SpanReleasedEvent.class) @Order(Ordered.LOWEST_PRECEDENCE) - public void stop(SpanStoppedEvent event) { + public void stop(SpanReleasedEvent event) { // TODO: what should this log level be? log.info("Stopped span: {}", event.getSpan()); if (event.getParent() != null) { diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/trace/DefaultTrace.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/trace/DefaultTrace.java index a769f36cf..183f7269d 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/trace/DefaultTrace.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/trace/DefaultTrace.java @@ -29,7 +29,7 @@ import org.springframework.cloud.sleuth.Trace; import org.springframework.cloud.sleuth.TraceContextHolder; import org.springframework.cloud.sleuth.TraceScope; import org.springframework.cloud.sleuth.event.SpanContinuedEvent; -import org.springframework.cloud.sleuth.event.SpanStartedEvent; +import org.springframework.cloud.sleuth.event.SpanAcquiredEvent; import org.springframework.cloud.sleuth.instrument.TraceCallable; import org.springframework.cloud.sleuth.instrument.TraceRunnable; import org.springframework.context.ApplicationEventPublisher; @@ -88,7 +88,7 @@ public class DefaultTrace implements Trace { MilliSpan span = MilliSpan.builder().begin(System.currentTimeMillis()).name(name) .traceId(this.idGenerator.create()).spanId(this.idGenerator.create()) .build(); - this.publisher.publishEvent(new SpanStartedEvent(this, span)); + this.publisher.publishEvent(new SpanAcquiredEvent(this, span)); return span; } else { @@ -96,7 +96,7 @@ public class DefaultTrace implements Trace { .traceId(parent.getTraceId()).parent(parent.getSpanId()) .spanId(this.idGenerator.create()).processId(parent.getProcessId()) .build(); - this.publisher.publishEvent(new SpanStartedEvent(this, parent, span)); + this.publisher.publishEvent(new SpanAcquiredEvent(this, parent, span)); return span; } } @@ -120,7 +120,7 @@ public class DefaultTrace implements Trace { public void addKVAnnotation(String key, String value) { Span s = getCurrentSpan(); if (s != null) { - s.addKVAnnotation(key, value); + s.addAnnotation(key, value); } } diff --git a/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/DefaultTraceTests.java b/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/DefaultTraceTests.java index 86676ec74..1748c7af2 100644 --- a/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/DefaultTraceTests.java +++ b/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/DefaultTraceTests.java @@ -29,8 +29,8 @@ import java.util.List; import org.junit.Test; import org.mockito.ArgumentCaptor; -import org.springframework.cloud.sleuth.event.SpanStartedEvent; -import org.springframework.cloud.sleuth.event.SpanStoppedEvent; +import org.springframework.cloud.sleuth.event.SpanAcquiredEvent; +import org.springframework.cloud.sleuth.event.SpanReleasedEvent; import org.springframework.cloud.sleuth.sampler.AlwaysSampler; import org.springframework.cloud.sleuth.sampler.IsTracingSampler; import org.springframework.cloud.sleuth.trace.DefaultTrace; @@ -62,8 +62,8 @@ public class DefaultTraceTests { scope.close(); } - verify(publisher, times(NUM_SPANS)).publishEvent(isA(SpanStartedEvent.class)); - verify(publisher, times(NUM_SPANS)).publishEvent(isA(SpanStoppedEvent.class)); + verify(publisher, times(NUM_SPANS)).publishEvent(isA(SpanAcquiredEvent.class)); + verify(publisher, times(NUM_SPANS)).publishEvent(isA(SpanReleasedEvent.class)); ArgumentCaptor captor = ArgumentCaptor .forClass(ApplicationEvent.class); @@ -71,8 +71,8 @@ public class DefaultTraceTests { List spans = new ArrayList<>(); for (ApplicationEvent event : captor.getAllValues()) { - if (event instanceof SpanStoppedEvent) { - spans.add(((SpanStoppedEvent) event).getSpan()); + if (event instanceof SpanReleasedEvent) { + spans.add(((SpanReleasedEvent) event).getSpan()); } } diff --git a/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/log/JsonLogSpanListenerTests.java b/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/log/JsonLogSpanListenerTests.java index 80dcfe99c..666ad8fc7 100644 --- a/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/log/JsonLogSpanListenerTests.java +++ b/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/log/JsonLogSpanListenerTests.java @@ -23,7 +23,7 @@ import org.junit.Test; import org.springframework.boot.test.OutputCapture; import org.springframework.cloud.sleuth.MilliSpan; import org.springframework.cloud.sleuth.Span; -import org.springframework.cloud.sleuth.event.SpanStoppedEvent; +import org.springframework.cloud.sleuth.event.SpanReleasedEvent; import org.springframework.util.StringUtils; import java.io.IOException; @@ -46,9 +46,9 @@ public class JsonLogSpanListenerTests { .begin(1) .end(10) .build(); - span.addKVAnnotation("myKey", "myVal"); + span.addAnnotation("myKey", "myVal"); span.addTimelineAnnotation("myTimelineAnnotation"); - listener.stop(new SpanStoppedEvent(this, span)); + listener.stop(new SpanReleasedEvent(this, span)); String output = this.output.toString().trim(); assertTrue("output doesn't contain prefix", output.contains(listener.getPrefix())); diff --git a/spring-cloud-sleuth-zipkin/src/main/java/org/springframework/cloud/sleuth/zipkin/ZipkinSpanListener.java b/spring-cloud-sleuth-zipkin/src/main/java/org/springframework/cloud/sleuth/zipkin/ZipkinSpanListener.java index 5d451e8d6..6c2ad4bff 100644 --- a/spring-cloud-sleuth-zipkin/src/main/java/org/springframework/cloud/sleuth/zipkin/ZipkinSpanListener.java +++ b/spring-cloud-sleuth-zipkin/src/main/java/org/springframework/cloud/sleuth/zipkin/ZipkinSpanListener.java @@ -33,8 +33,8 @@ import org.springframework.cloud.sleuth.Span; import org.springframework.cloud.sleuth.TimelineAnnotation; import org.springframework.cloud.sleuth.event.ClientReceivedEvent; import org.springframework.cloud.sleuth.event.ClientSentEvent; -import org.springframework.cloud.sleuth.event.SpanStartedEvent; -import org.springframework.cloud.sleuth.event.SpanStoppedEvent; +import org.springframework.cloud.sleuth.event.SpanAcquiredEvent; +import org.springframework.cloud.sleuth.event.SpanReleasedEvent; import org.springframework.context.event.EventListener; import org.springframework.core.annotation.Order; import org.springframework.util.StringUtils; @@ -64,11 +64,11 @@ public class ZipkinSpanListener { @EventListener @Order(0) - public void start(SpanStartedEvent event) { + public void start(SpanAcquiredEvent event) { if (event.getParent() != null && event.getParent().isRemote()) { event.getParent().addTimelineAnnotation(zipkinCoreConstants.SERVER_RECV); } - event.getSpan().addTimelineAnnotation("start"); + event.getSpan().addTimelineAnnotation("acquire"); } @EventListener @@ -85,21 +85,21 @@ public class ZipkinSpanListener { @EventListener @Order(0) - public void stop(SpanStoppedEvent event) { + public void release(SpanReleasedEvent event) { if (event.getParent() != null && event.getParent().isRemote()) { event.getParent().addTimelineAnnotation(zipkinCoreConstants.SERVER_SEND); this.spanCollector.collect(convert(event.getParent())); } - event.getSpan().addTimelineAnnotation("stop"); + event.getSpan().addTimelineAnnotation("release"); this.spanCollector.collect(convert(event.getSpan())); } /** * Converts a given Sleuth span to a Zipkin Span. *

*/ public com.twitter.zipkin.gen.Span convert(Span span) { @@ -212,7 +212,7 @@ public class ZipkinSpanListener { private List createZipkinBinaryAnnotations(Span span, Endpoint endpoint) { List l = new ArrayList<>(); - for (Map.Entry e : span.getKVAnnotations().entrySet()) { + for (Map.Entry e : span.getAnnotations().entrySet()) { BinaryAnnotation binaryAnn = new BinaryAnnotation(); binaryAnn.setAnnotation_type(AnnotationType.BYTES); binaryAnn.setKey(e.getKey());