Adjusting the adjusted span; fixes #750

This commit is contained in:
Marcin Grzejszczak
2017-10-19 13:45:47 +02:00
parent 8221068581
commit 05a6c35a2c
2 changed files with 13 additions and 10 deletions

View File

@@ -16,6 +16,12 @@
package org.springframework.cloud.sleuth.zipkin;
import java.nio.charset.Charset;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import org.springframework.cloud.commons.util.IdUtils;
import org.springframework.cloud.sleuth.Log;
import org.springframework.cloud.sleuth.NoOpSpanAdjuster;
@@ -29,12 +35,6 @@ import zipkin.BinaryAnnotation;
import zipkin.Constants;
import zipkin.Endpoint;
import java.nio.charset.Charset;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Map;
/**
* Listener of Sleuth events. Reports to Zipkin via {@link ZipkinSpanReporter}.
*
@@ -100,7 +100,7 @@ public class ZipkinSpanListener implements SpanReporter {
//TODO: Consider adding support for the debug flag (related to #496)
Span convertedSpan = span;
for (SpanAdjuster adjuster : this.spanAdjusters) {
convertedSpan = adjuster.adjust(span);
convertedSpan = adjuster.adjust(convertedSpan);
}
zipkin.Span.Builder zipkinSpan = zipkin.Span.builder();
Endpoint endpoint = this.endpointLocator.local();

View File

@@ -20,6 +20,7 @@ import org.assertj.core.api.Condition;
import zipkin.Constants;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import javax.annotation.PostConstruct;
@@ -307,12 +308,14 @@ public class ZipkinSpanListenerTests {
public void should_adjust_span_before_reporting_it() {
this.parent.logEvent(Span.CLIENT_RECV);
ZipkinSpanListener spanListener = new ZipkinSpanListener(this.spanReporter,
this.endpointLocator, null, Collections.<SpanAdjuster>singletonList(
span -> Span.builder().from(span).name("foo").build()));
this.endpointLocator, null, Arrays.asList(
(SpanAdjuster) span -> Span.builder().from(span).name("foo").build(),
(SpanAdjuster) span -> Span.builder().from(span).name(span.getName() + "bar").build()
));
zipkin.Span result = spanListener.convert(this.parent);
assertThat(result.name).isEqualTo("foo");
assertThat(result.name).isEqualTo("foobar");
}
@Test