[#158] Removing span name

fixes #158
This commit is contained in:
Marcin Grzejszczak
2016-02-16 08:28:22 +01:00
parent a3f14a6d55
commit 8333c31c99
46 changed files with 124 additions and 436 deletions

View File

@@ -20,11 +20,10 @@ import java.util.NoSuchElementException;
import org.apache.commons.logging.Log;
import org.springframework.cloud.sleuth.Span;
import org.springframework.cloud.sleuth.SpanName;
import org.springframework.cloud.sleuth.stream.Host;
import org.springframework.cloud.sleuth.stream.SleuthSink;
import org.springframework.cloud.sleuth.stream.Spans;
import org.springframework.util.StringUtils;
import zipkin.BinaryAnnotation;
import zipkin.Constants;
import zipkin.Endpoint;
@@ -78,7 +77,7 @@ final class SamplingZipkinSpanIterator implements Iterator<zipkin.Span> {
* returns a converted span or null if it is invalid or unsampled.
*/
zipkin.Span convertAndSample(Span input, Host host) {
if (!protocolWithAddressMatch(input)) {
if (!input.getName().equals("message:" + SleuthSink.INPUT)) {
zipkin.Span result = SamplingZipkinSpanIterator.convert(input, host);
if (this.sampler.isSampled(result.traceId)) {
return result;
@@ -90,12 +89,6 @@ final class SamplingZipkinSpanIterator implements Iterator<zipkin.Span> {
return null;
}
private boolean protocolWithAddressMatch(Span input) {
SpanName spanName = input.getName();
return SamplingZipkinSpanIterator.MESSAGE_COMPONENT.equals(spanName.component) &&
("/" + SleuthSink.INPUT).equals(spanName.address);
}
/**
* Converts a given Sleuth span to a Zipkin Span.
* <ul>
@@ -137,8 +130,8 @@ final class SamplingZipkinSpanIterator implements Iterator<zipkin.Span> {
zipkinSpan.parentId(span.getParents().get(0));
}
zipkinSpan.id(span.getSpanId());
if (!SpanName.NO_NAME.equals(span.getName())) {
zipkinSpan.name(span.getName().toString());
if (StringUtils.hasText(span.getName())) {
zipkinSpan.name(span.getName());
}
return zipkinSpan.build();
}

View File

@@ -23,7 +23,6 @@ import java.util.concurrent.atomic.AtomicInteger;
import org.junit.Test;
import org.springframework.cloud.sleuth.Span;
import org.springframework.cloud.sleuth.SpanName;
import org.springframework.cloud.sleuth.stream.Host;
import org.springframework.cloud.sleuth.stream.Spans;
import zipkin.Sampler;
@@ -54,7 +53,7 @@ public class SamplingZipkinSpanIteratorTests {
Sampler.create(1.0f), spans);
assertThat(result).extracting(s -> s.name).containsExactly(
"message:/foo", "message:/bar", "message:/baz");
"message:foo", "message:bar", "message:baz");
}
@Test
@@ -74,12 +73,12 @@ public class SamplingZipkinSpanIteratorTests {
spans);
assertThat(result).extracting(s -> s.name).containsExactly(
"message:/foo", "message:/baz");
"message:foo", "message:baz");
}
Span span(String name) {
Long id = new Random().nextLong();
return new Span(1, 3, new SpanName("message", "/" + name), id, Collections.<Long>emptyList(), id, true, true,
return new Span(1, 3, "message:" + name, id, Collections.<Long>emptyList(), id, true, true,
"process");
}
}

View File

@@ -18,18 +18,16 @@ package org.springframework.cloud.sleuth.zipkin.stream;
import java.util.Collections;
import org.springframework.cloud.sleuth.SpanName;
import zipkin.BinaryAnnotation;
import zipkin.Endpoint;
import org.junit.Test;
import org.springframework.cloud.sleuth.Span;
import org.springframework.cloud.sleuth.stream.Host;
import zipkin.BinaryAnnotation;
import zipkin.Endpoint;
import static org.assertj.core.api.Assertions.assertThat;
public class ZipkinMessageListenerTests {
Span span = new Span(1, 3, new SpanName("http", "name"), 1L, Collections.<Long>emptyList(), 2L, true, true,
Span span = new Span(1, 3, "http:name", 1L, Collections.<Long>emptyList(), 2L, true, true,
"process");
Host host = new Host("myservice", "1.2.3.4", 8080);
Endpoint endpoint = Endpoint.create("myservice", 1 << 24 | 2 << 16 | 3 << 8 | 4, 8080);
@@ -82,7 +80,7 @@ public class ZipkinMessageListenerTests {
// TODO: "unknown" bc process id, documented as not nullable, is null in some tests.
@Test
public void nullProcessIdCoercesToUnknownServiceName() {
Span noProcessId = Span.builder().traceId(1L).name(new SpanName("http", "parent")).remote(true).build();
Span noProcessId = Span.builder().traceId(1L).name("http:parent").remote(true).build();
zipkin.Span result = SamplingZipkinSpanIterator.convert(noProcessId, this.host);