We no longer set SA for peer.service

fixes #619
This commit is contained in:
Marcin Grzejszczak
2017-07-06 14:04:51 +02:00
parent 050dfe9bdf
commit f08b3057ab
4 changed files with 43 additions and 26 deletions

View File

@@ -15,9 +15,6 @@
*/ */
package org.springframework.cloud.sleuth.zipkin.stream; package org.springframework.cloud.sleuth.zipkin.stream;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import org.apache.commons.logging.Log; import org.apache.commons.logging.Log;
import org.springframework.cloud.sleuth.Span; import org.springframework.cloud.sleuth.Span;
import org.springframework.cloud.sleuth.stream.Host; import org.springframework.cloud.sleuth.stream.Host;
@@ -29,6 +26,10 @@ import zipkin.Constants;
import zipkin.Endpoint; import zipkin.Endpoint;
import zipkin.Span.Builder; import zipkin.Span.Builder;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
/** /**
* This converts sleuth spans to zipkin ones, skipping invalid or unsampled. * This converts sleuth spans to zipkin ones, skipping invalid or unsampled.
* *
@@ -88,7 +89,7 @@ final class ConvertToZipkinSpanList {
ZipkinMessageListener.addZipkinAnnotations(zipkinSpan, span, ep); ZipkinMessageListener.addZipkinAnnotations(zipkinSpan, span, ep);
ZipkinMessageListener.addZipkinBinaryAnnotations(zipkinSpan, span, ep); ZipkinMessageListener.addZipkinBinaryAnnotations(zipkinSpan, span, ep);
if (hasClientSend(span)) { if (hasClientSend(span)) {
ensureServerAddr(span, zipkinSpan, ep); ensureServerAddr(span, zipkinSpan);
} }
// In the RPC span model, the client owns the timestamp and duration of the span. If we // 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, // were propagated an id, we can assume that we shouldn't report timestamp or duration,
@@ -129,10 +130,9 @@ final class ConvertToZipkinSpanList {
BinaryAnnotation.create(Constants.LOCAL_COMPONENT, processId, ep)); BinaryAnnotation.create(Constants.LOCAL_COMPONENT, processId, ep));
} }
private static void ensureServerAddr(Span span, Builder zipkinSpan, private static void ensureServerAddr(Span span, Builder zipkinSpan) {
Endpoint ep) {
if (span.tags().containsKey(Span.SPAN_PEER_SERVICE_TAG_NAME)) { if (span.tags().containsKey(Span.SPAN_PEER_SERVICE_TAG_NAME)) {
Endpoint endpoint = ep.toBuilder().serviceName(span.tags().get( Endpoint endpoint = Endpoint.builder().serviceName(span.tags().get(
Span.SPAN_PEER_SERVICE_TAG_NAME)).build(); Span.SPAN_PEER_SERVICE_TAG_NAME)).build();
zipkinSpan.addBinaryAnnotation( zipkinSpan.addBinaryAnnotation(
BinaryAnnotation.address(Constants.SERVER_ADDR, endpoint)); BinaryAnnotation.address(Constants.SERVER_ADDR, endpoint));

View File

@@ -15,15 +15,18 @@
*/ */
package org.springframework.cloud.sleuth.zipkin.stream; package org.springframework.cloud.sleuth.zipkin.stream;
import java.util.Arrays; import org.assertj.core.api.Condition;
import java.util.Collections;
import java.util.List;
import java.util.Random;
import org.junit.Test; import org.junit.Test;
import org.springframework.cloud.sleuth.Span; import org.springframework.cloud.sleuth.Span;
import org.springframework.cloud.sleuth.stream.Host; import org.springframework.cloud.sleuth.stream.Host;
import org.springframework.cloud.sleuth.stream.Spans; import org.springframework.cloud.sleuth.stream.Spans;
import zipkin.Constants; import zipkin.Constants;
import zipkin.Endpoint;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Random;
import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThat;
@@ -86,8 +89,14 @@ public class ConvertToZipkinSpanListTests {
.hasSize(1) .hasSize(1)
.flatExtracting(input1 -> input1.binaryAnnotations) .flatExtracting(input1 -> input1.binaryAnnotations)
.filteredOn("key", Constants.SERVER_ADDR) .filteredOn("key", Constants.SERVER_ADDR)
.extracting(input -> input.endpoint.serviceName) .extracting(input -> input.endpoint)
.contains("myservice"); .hasSize(1)
.has(new Condition<List<? extends Endpoint>>() {
@Override public boolean matches(List<? extends Endpoint> value) {
Endpoint endpoint = value.get(0);
return endpoint.serviceName.equals("myservice") && endpoint.ipv4 == 0;
}
});
} }
@Test @Test

View File

@@ -16,6 +16,14 @@
package org.springframework.cloud.sleuth.zipkin; package org.springframework.cloud.sleuth.zipkin;
import org.springframework.cloud.commons.util.IdUtils;
import org.springframework.cloud.sleuth.Log;
import org.springframework.cloud.sleuth.NoOpSpanAdjuster;
import org.springframework.cloud.sleuth.Span;
import org.springframework.cloud.sleuth.SpanAdjuster;
import org.springframework.cloud.sleuth.SpanReporter;
import org.springframework.core.env.Environment;
import org.springframework.util.StringUtils;
import zipkin.Annotation; import zipkin.Annotation;
import zipkin.BinaryAnnotation; import zipkin.BinaryAnnotation;
import zipkin.Constants; import zipkin.Constants;
@@ -27,15 +35,6 @@ import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import org.springframework.cloud.commons.util.IdUtils;
import org.springframework.cloud.sleuth.Log;
import org.springframework.cloud.sleuth.NoOpSpanAdjuster;
import org.springframework.cloud.sleuth.Span;
import org.springframework.cloud.sleuth.SpanAdjuster;
import org.springframework.cloud.sleuth.SpanReporter;
import org.springframework.core.env.Environment;
import org.springframework.util.StringUtils;
/** /**
* Listener of Sleuth events. Reports to Zipkin via {@link ZipkinSpanReporter}. * Listener of Sleuth events. Reports to Zipkin via {@link ZipkinSpanReporter}.
* *
@@ -149,10 +148,10 @@ public class ZipkinSpanListener implements SpanReporter {
zipkinSpan.addBinaryAnnotation(component); zipkinSpan.addBinaryAnnotation(component);
} }
private void ensureServerAddr(Span span, zipkin.Span.Builder zipkinSpan, Endpoint localEndpoint) { private void ensureServerAddr(Span span, zipkin.Span.Builder zipkinSpan) {
if (span.tags().containsKey(Span.SPAN_PEER_SERVICE_TAG_NAME)) { if (span.tags().containsKey(Span.SPAN_PEER_SERVICE_TAG_NAME)) {
zipkinSpan.addBinaryAnnotation(BinaryAnnotation.address(Constants.SERVER_ADDR, zipkinSpan.addBinaryAnnotation(BinaryAnnotation.address(Constants.SERVER_ADDR,
localEndpoint.toBuilder().serviceName( Endpoint.builder().serviceName(
span.tags().get(Span.SPAN_PEER_SERVICE_TAG_NAME)).build())); span.tags().get(Span.SPAN_PEER_SERVICE_TAG_NAME)).build()));
} }
} }
@@ -178,7 +177,7 @@ public class ZipkinSpanListener implements SpanReporter {
ensureLocalComponent(span, zipkinSpan, endpoint); ensureLocalComponent(span, zipkinSpan, endpoint);
} }
if (hasClientSend) { if (hasClientSend) {
ensureServerAddr(span, zipkinSpan, endpoint); ensureServerAddr(span, zipkinSpan);
} }
if (instanceIdToTag && this.environment != null) { if (instanceIdToTag && this.environment != null) {
setInstanceIdIfPresent(zipkinSpan, endpoint, Span.INSTANCEID); setInstanceIdIfPresent(zipkinSpan, endpoint, Span.INSTANCEID);

View File

@@ -16,6 +16,7 @@
package org.springframework.cloud.sleuth.zipkin; package org.springframework.cloud.sleuth.zipkin;
import org.assertj.core.api.Condition;
import zipkin.Constants; import zipkin.Constants;
import java.util.ArrayList; import java.util.ArrayList;
@@ -41,6 +42,7 @@ import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary; import org.springframework.context.annotation.Primary;
import org.springframework.mock.env.MockEnvironment; import org.springframework.mock.env.MockEnvironment;
import org.springframework.test.context.junit4.SpringRunner; import org.springframework.test.context.junit4.SpringRunner;
import zipkin.Endpoint;
import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThat;
import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertEquals;
@@ -219,7 +221,14 @@ public class ZipkinSpanListenerTests {
assertThat(result.binaryAnnotations) assertThat(result.binaryAnnotations)
.filteredOn("key", Constants.SERVER_ADDR) .filteredOn("key", Constants.SERVER_ADDR)
.isNotEmpty(); .extracting(input -> input.endpoint)
.hasSize(1)
.has(new Condition<List<? extends Endpoint>>() {
@Override public boolean matches(List<? extends Endpoint> value) {
Endpoint endpoint = value.get(0);
return endpoint.serviceName.equals("fooservice") && endpoint.ipv4 == 0;
}
});
} }
@Test @Test