Updates to zipkin-java 0.4.3
This commit is contained in:
@@ -11,7 +11,7 @@ import org.springframework.cloud.sleuth.TraceAccessor;
|
||||
*
|
||||
* <ul>
|
||||
* <li>We're taking the TraceID into consideration for sampling to be consistent</li>
|
||||
* <li>We apply the Zipkin algorithm to define whether we should sample or not (we're comparing against thresholdg) - https://github.com/openzipkin/zipkin-java/blob/master/zipkin-java-core/src/main/java/io/zipkin/TraceIdSampler.java#L78</li>
|
||||
* <li>We apply the Zipkin algorithm to define whether we should sample or not (we're comparing against thresholdg) - https://github.com/openzipkin/zipkin-java/blob/master/zipkin/src/main/java/zipkin/Sampler.java</li>
|
||||
* </ul>
|
||||
*
|
||||
* The value provided from SamplerConfiguration in terms of percentage is an estimation. It might occur that amount
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
<brave.version>3.4.0</brave.version>
|
||||
<spring-cloud-netflix.version>1.1.0.BUILD-SNAPSHOT</spring-cloud-netflix.version>
|
||||
<aspectj.version>1.8.4</aspectj.version>
|
||||
<zipkin-java.version>0.4.1</zipkin-java.version>
|
||||
<zipkin-java.version>0.4.3</zipkin-java.version>
|
||||
</properties>
|
||||
<dependencyManagement>
|
||||
<dependencies>
|
||||
@@ -74,18 +74,18 @@
|
||||
<version>${aspectj.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>io.zipkin</groupId>
|
||||
<artifactId>zipkin-java-core</artifactId>
|
||||
<groupId>io.zipkin.java</groupId>
|
||||
<artifactId>zipkin</artifactId>
|
||||
<version>${zipkin-java.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>io.zipkin</groupId>
|
||||
<artifactId>zipkin-java-server</artifactId>
|
||||
<groupId>io.zipkin.java</groupId>
|
||||
<artifactId>zipkin-server</artifactId>
|
||||
<version>${zipkin-java.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>io.zipkin</groupId>
|
||||
<artifactId>zipkin-java-jdbc</artifactId>
|
||||
<groupId>io.zipkin.java</groupId>
|
||||
<artifactId>spanstore-jdbc</artifactId>
|
||||
<version>${zipkin-java.version}</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
@@ -83,15 +83,15 @@
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>io.zipkin</groupId>
|
||||
<artifactId>zipkin-java-core</artifactId>
|
||||
<version>0.4.1</version>
|
||||
<groupId>io.zipkin.java</groupId>
|
||||
<artifactId>zipkin</artifactId>
|
||||
<version>0.4.3</version>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>io.zipkin</groupId>
|
||||
<artifactId>zipkin-java-server</artifactId>
|
||||
<version>0.4.1</version>
|
||||
<groupId>io.zipkin.java</groupId>
|
||||
<artifactId>zipkin-server</artifactId>
|
||||
<version>0.4.3</version>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
@@ -15,9 +15,9 @@
|
||||
*/
|
||||
package integration;
|
||||
|
||||
import io.zipkin.Span;
|
||||
import lombok.extern.apachecommons.CommonsLog;
|
||||
import org.springframework.cloud.sleuth.zipkin.ZipkinSpanReporter;
|
||||
import zipkin.Span;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.LinkedList;
|
||||
|
||||
@@ -108,8 +108,8 @@
|
||||
<artifactId>docker-compose</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>io.zipkin</groupId>
|
||||
<artifactId>zipkin-java-core</artifactId>
|
||||
<groupId>io.zipkin.java</groupId>
|
||||
<artifactId>zipkin</artifactId>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
|
||||
@@ -17,11 +17,11 @@ package tools;
|
||||
|
||||
import com.jayway.awaitility.Awaitility;
|
||||
import com.jayway.awaitility.core.ConditionFactory;
|
||||
import io.zipkin.Codec;
|
||||
import io.zipkin.Span;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.http.*;
|
||||
import org.springframework.web.client.RestTemplate;
|
||||
import zipkin.Codec;
|
||||
import zipkin.Span;
|
||||
|
||||
import java.net.URI;
|
||||
import java.util.*;
|
||||
@@ -122,7 +122,7 @@ public abstract class AbstractIntegrationTest {
|
||||
};
|
||||
}
|
||||
|
||||
protected List<String> serviceNamesNotFoundInZipkin(List<io.zipkin.Span> spans) {
|
||||
protected List<String> serviceNamesNotFoundInZipkin(List<zipkin.Span> spans) {
|
||||
List<String> serviceNamesFoundInAnnotations = spans.stream()
|
||||
.filter(span -> span.annotations != null)
|
||||
.map(span -> span.annotations)
|
||||
@@ -151,7 +151,7 @@ public abstract class AbstractIntegrationTest {
|
||||
return "unknown";
|
||||
}
|
||||
|
||||
protected List<String> annotationsNotFoundInZipkin(List<io.zipkin.Span> spans) {
|
||||
protected List<String> annotationsNotFoundInZipkin(List<zipkin.Span> spans) {
|
||||
String binaryAnnotationName = getRequiredBinaryAnnotationName();
|
||||
Optional<String> names = spans.stream()
|
||||
.filter(span -> span.binaryAnnotations != null)
|
||||
|
||||
@@ -11,7 +11,7 @@ import org.springframework.test.context.ActiveProfiles;
|
||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
|
||||
import example.ZipkinStreamServerApplication;
|
||||
import io.zipkin.SpanStore;
|
||||
import zipkin.SpanStore;
|
||||
|
||||
@RunWith(SpringJUnit4ClassRunner.class)
|
||||
@SpringApplicationConfiguration(classes = ZipkinStreamServerApplication.class)
|
||||
|
||||
@@ -3,7 +3,7 @@ mysql:
|
||||
ports:
|
||||
- 3306:3306
|
||||
query:
|
||||
image: openzipkin/zipkin-java:0.4.1
|
||||
image: openzipkin/zipkin-java:0.4.3
|
||||
environment:
|
||||
# Remove TRANSPORT_TYPE to disable tracing
|
||||
- TRANSPORT_TYPE=http
|
||||
|
||||
@@ -83,8 +83,8 @@
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>io.zipkin</groupId>
|
||||
<artifactId>zipkin-java-server</artifactId>
|
||||
<groupId>io.zipkin.java</groupId>
|
||||
<artifactId>zipkin-server</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.github.kristofa</groupId>
|
||||
|
||||
@@ -16,7 +16,6 @@
|
||||
|
||||
package sample;
|
||||
|
||||
import io.zipkin.Span;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.boot.SpringApplication;
|
||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||
@@ -54,7 +53,7 @@ public class SampleZipkinApplication {
|
||||
public ZipkinSpanReporter spanCollector() {
|
||||
return new ZipkinSpanReporter() {
|
||||
@Override
|
||||
public void report(Span span) {
|
||||
public void report(zipkin.Span span) {
|
||||
log.info("Reporting span [{}]", span);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -16,7 +16,6 @@
|
||||
package integration;
|
||||
|
||||
import integration.ZipkinTests.WaitUntilZipkinIsUpConfig;
|
||||
import io.zipkin.server.ZipkinServer;
|
||||
import lombok.SneakyThrows;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.junit.Before;
|
||||
@@ -33,6 +32,7 @@ import org.springframework.test.context.TestPropertySource;
|
||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
import sample.SampleZipkinApplication;
|
||||
import tools.AbstractIntegrationTest;
|
||||
import zipkin.server.ZipkinServer;
|
||||
|
||||
import java.util.Random;
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
There are 4 parts to Zipkin: the instrumented client apps, the web UI, the backend database and the query server. The database for this implementation is MySQL.
|
||||
|
||||
> There is a running instance on PWS: http://zipkin-web.cfapps.io. It is backed by a `zipkin-java-server` with a MySQL backend and RabbitMQ (Spring Cloud Stream) for span transport.
|
||||
> There is a running instance on PWS: http://zipkin-web.cfapps.io. It is backed by a `zipkin-server` with a MySQL backend and RabbitMQ (Spring Cloud Stream) for span transport.
|
||||
|
||||
## Instrumenting Apps
|
||||
|
||||
|
||||
@@ -58,12 +58,12 @@
|
||||
<artifactId>spring-boot-starter-cloud-connectors</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>io.zipkin</groupId>
|
||||
<artifactId>zipkin-java-server</artifactId>
|
||||
<groupId>io.zipkin.java</groupId>
|
||||
<artifactId>zipkin-server</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>io.zipkin</groupId>
|
||||
<artifactId>zipkin-java-jdbc</artifactId>
|
||||
<groupId>io.zipkin.java</groupId>
|
||||
<artifactId>spanstore-jdbc</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.h2database</groupId>
|
||||
|
||||
@@ -23,7 +23,7 @@ import org.springframework.cloud.sleuth.stream.SleuthSink;
|
||||
import org.springframework.cloud.stream.annotation.EnableBinding;
|
||||
import org.springframework.context.annotation.Import;
|
||||
|
||||
import io.zipkin.server.EnableZipkinServer;
|
||||
import zipkin.server.EnableZipkinServer;
|
||||
|
||||
@Target(ElementType.TYPE)
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
|
||||
@@ -15,7 +15,6 @@
|
||||
*/
|
||||
package org.springframework.cloud.sleuth.zipkin.stream;
|
||||
|
||||
import io.zipkin.Sampler;
|
||||
import java.util.Iterator;
|
||||
import java.util.NoSuchElementException;
|
||||
import lombok.extern.apachecommons.CommonsLog;
|
||||
@@ -23,17 +22,18 @@ import org.springframework.cloud.sleuth.Span;
|
||||
import org.springframework.cloud.sleuth.stream.Host;
|
||||
import org.springframework.cloud.sleuth.stream.SleuthSink;
|
||||
import org.springframework.cloud.sleuth.stream.Spans;
|
||||
import zipkin.Sampler;
|
||||
|
||||
/**
|
||||
* This converts sleuth spans to zipkin ones, skipping invalid or unsampled.
|
||||
*/
|
||||
@CommonsLog
|
||||
final class SamplingZipkinSpanIterator implements Iterator<io.zipkin.Span> {
|
||||
final class SamplingZipkinSpanIterator implements Iterator<zipkin.Span> {
|
||||
|
||||
private final Sampler sampler;
|
||||
private final Iterator<Span> delegate;
|
||||
private final Host host;
|
||||
private io.zipkin.Span peeked;
|
||||
private zipkin.Span peeked;
|
||||
|
||||
SamplingZipkinSpanIterator(Sampler sampler, Spans input) {
|
||||
this.sampler = sampler;
|
||||
@@ -50,10 +50,10 @@ final class SamplingZipkinSpanIterator implements Iterator<io.zipkin.Span> {
|
||||
}
|
||||
|
||||
@Override
|
||||
public io.zipkin.Span next() {
|
||||
public zipkin.Span next() {
|
||||
// implicitly peeks
|
||||
if (!hasNext()) throw new NoSuchElementException();
|
||||
io.zipkin.Span result = peeked;
|
||||
zipkin.Span result = peeked;
|
||||
peeked = null;
|
||||
return result;
|
||||
}
|
||||
@@ -64,9 +64,9 @@ final class SamplingZipkinSpanIterator implements Iterator<io.zipkin.Span> {
|
||||
}
|
||||
|
||||
/** returns a converted span or null if it is invalid or unsampled. */
|
||||
io.zipkin.Span convertAndSample(Span input, Host host) {
|
||||
zipkin.Span convertAndSample(Span input, Host host) {
|
||||
if (!input.getName().equals("message/" + SleuthSink.INPUT)) {
|
||||
io.zipkin.Span result = ZipkinMessageListener.convert(input, host);
|
||||
zipkin.Span result = ZipkinMessageListener.convert(input, host);
|
||||
if (this.sampler.isSampled(result.traceId)) {
|
||||
return result;
|
||||
}
|
||||
|
||||
@@ -1,8 +1,5 @@
|
||||
package org.springframework.cloud.sleuth.zipkin.stream;
|
||||
|
||||
import io.zipkin.*;
|
||||
import io.zipkin.BinaryAnnotation.Type;
|
||||
import io.zipkin.Span.Builder;
|
||||
import lombok.extern.apachecommons.CommonsLog;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
@@ -26,6 +23,9 @@ import org.springframework.core.type.AnnotatedTypeMetadata;
|
||||
import org.springframework.integration.annotation.MessageEndpoint;
|
||||
import org.springframework.integration.annotation.ServiceActivator;
|
||||
import org.springframework.util.StringUtils;
|
||||
import zipkin.*;
|
||||
import zipkin.BinaryAnnotation.Type;
|
||||
import zipkin.Span.Builder;
|
||||
|
||||
import javax.sql.DataSource;
|
||||
import java.io.UnsupportedEncodingException;
|
||||
@@ -48,7 +48,7 @@ public class ZipkinMessageListener {
|
||||
|
||||
@ServiceActivator(inputChannel = SleuthSink.INPUT)
|
||||
public void sink(Spans input) {
|
||||
Iterator<io.zipkin.Span> sampled = new SamplingZipkinSpanIterator(sampler, input);
|
||||
Iterator<zipkin.Span> sampled = new SamplingZipkinSpanIterator(sampler, input);
|
||||
if (sampled.hasNext()) {
|
||||
this.spanStore.accept(sampled);
|
||||
}
|
||||
@@ -63,8 +63,8 @@ public class ZipkinMessageListener {
|
||||
* </ul>
|
||||
*/
|
||||
// VisibleForTesting
|
||||
static io.zipkin.Span convert(Span span, Host host) {
|
||||
Builder zipkinSpan = new io.zipkin.Span.Builder();
|
||||
static zipkin.Span convert(Span span, Host host) {
|
||||
Builder zipkinSpan = new zipkin.Span.Builder();
|
||||
|
||||
Endpoint ep = Endpoint.create(host.getServiceName(), host.getIpv4(),
|
||||
host.getPort().shortValue());
|
||||
|
||||
@@ -15,12 +15,12 @@
|
||||
*/
|
||||
package org.springframework.cloud.sleuth.zipkin.stream;
|
||||
|
||||
import io.zipkin.Sampler;
|
||||
import org.junit.Test;
|
||||
import org.springframework.cloud.sleuth.MilliSpan;
|
||||
import org.springframework.cloud.sleuth.Span;
|
||||
import org.springframework.cloud.sleuth.stream.Host;
|
||||
import org.springframework.cloud.sleuth.stream.Spans;
|
||||
import zipkin.Sampler;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
@@ -38,7 +38,7 @@ public class SamplingZipkinSpanIteratorTests {
|
||||
public void skipsInputSpans() {
|
||||
Spans spans = new Spans(host, Arrays.asList(span("message/sleuth")));
|
||||
|
||||
Iterator<io.zipkin.Span> result = new SamplingZipkinSpanIterator(Sampler.create(1.0f), spans);
|
||||
Iterator<zipkin.Span> result = new SamplingZipkinSpanIterator(Sampler.create(1.0f), spans);
|
||||
|
||||
assertThat(result).isEmpty();
|
||||
}
|
||||
@@ -47,7 +47,7 @@ public class SamplingZipkinSpanIteratorTests {
|
||||
public void retainsValidSpans() {
|
||||
Spans spans = new Spans(host, Arrays.asList(span("foo"), span("bar"), span("baz")));
|
||||
|
||||
Iterator<io.zipkin.Span> result = new SamplingZipkinSpanIterator(Sampler.create(1.0f), spans);
|
||||
Iterator<zipkin.Span> result = new SamplingZipkinSpanIterator(Sampler.create(1.0f), spans);
|
||||
|
||||
assertThat(result).extracting(s -> s.name).containsExactly("foo", "bar", "baz");
|
||||
}
|
||||
@@ -64,7 +64,7 @@ public class SamplingZipkinSpanIteratorTests {
|
||||
}
|
||||
};
|
||||
|
||||
Iterator<io.zipkin.Span> result = new SamplingZipkinSpanIterator(everyOtherSampler, spans);
|
||||
Iterator<zipkin.Span> result = new SamplingZipkinSpanIterator(everyOtherSampler, spans);
|
||||
|
||||
assertThat(result).extracting(s -> s.name).containsExactly("foo", "baz");
|
||||
}
|
||||
|
||||
@@ -16,9 +16,9 @@
|
||||
|
||||
package org.springframework.cloud.sleuth.zipkin.stream;
|
||||
|
||||
import io.zipkin.BinaryAnnotation;
|
||||
import io.zipkin.Endpoint;
|
||||
import java.util.Collections;
|
||||
import zipkin.BinaryAnnotation;
|
||||
import zipkin.Endpoint;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.springframework.cloud.sleuth.MilliSpan;
|
||||
@@ -37,7 +37,7 @@ public class ZipkinMessageListenerTests {
|
||||
long start = System.currentTimeMillis();
|
||||
span.log("http/request/retry"); // System.currentTimeMillis
|
||||
|
||||
io.zipkin.Span result = ZipkinMessageListener.convert(span, host);
|
||||
zipkin.Span result = ZipkinMessageListener.convert(span, host);
|
||||
|
||||
assertThat(result.timestamp)
|
||||
.isEqualTo(span.getBegin() * 1000);
|
||||
@@ -54,7 +54,7 @@ public class ZipkinMessageListenerTests {
|
||||
span.log("http/request/retry");
|
||||
span.tag("spring-boot/version", "1.3.1.RELEASE");
|
||||
|
||||
io.zipkin.Span result = ZipkinMessageListener.convert(span, host);
|
||||
zipkin.Span result = ZipkinMessageListener.convert(span, host);
|
||||
|
||||
assertThat(result.annotations.get(0).endpoint)
|
||||
.isEqualTo(endpoint);
|
||||
@@ -69,7 +69,7 @@ public class ZipkinMessageListenerTests {
|
||||
*/
|
||||
@Test
|
||||
public void spanWithoutAnnotationsLogsComponent() {
|
||||
io.zipkin.Span result = ZipkinMessageListener.convert(span, host);
|
||||
zipkin.Span result = ZipkinMessageListener.convert(span, host);
|
||||
|
||||
assertThat(result.binaryAnnotations).hasSize(1);
|
||||
assertThat(result.binaryAnnotations.get(0)).isEqualToComparingFieldByField(
|
||||
@@ -81,7 +81,7 @@ public class ZipkinMessageListenerTests {
|
||||
public void nullProcessIdCoercesToUnknownServiceName() {
|
||||
MilliSpan noProcessId = MilliSpan.builder().traceId(1L).name("parent").remote(true).build();
|
||||
|
||||
io.zipkin.Span result = ZipkinMessageListener.convert(noProcessId, host);
|
||||
zipkin.Span result = ZipkinMessageListener.convert(noProcessId, host);
|
||||
|
||||
assertThat(result.binaryAnnotations)
|
||||
.containsOnly(BinaryAnnotation.create("lc", "unknown", endpoint));
|
||||
|
||||
@@ -13,7 +13,7 @@ import org.springframework.cloud.sleuth.zipkin.stream.ZipkinServerApplicationTes
|
||||
import org.springframework.test.context.ActiveProfiles;
|
||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
|
||||
import io.zipkin.SpanStore;
|
||||
import zipkin.SpanStore;
|
||||
|
||||
@RunWith(SpringJUnit4ClassRunner.class)
|
||||
@SpringApplicationConfiguration(classes = ZipkinStreamServerApplication.class)
|
||||
|
||||
@@ -3,7 +3,7 @@ mysql:
|
||||
ports:
|
||||
- 3306:3306
|
||||
query:
|
||||
image: openzipkin/zipkin-java:0.4.1
|
||||
image: openzipkin/zipkin-java:0.4.3
|
||||
environment:
|
||||
# Remove TRANSPORT_TYPE to disable tracing
|
||||
- TRANSPORT_TYPE=http
|
||||
|
||||
@@ -42,8 +42,8 @@
|
||||
<optional>true</optional>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>io.zipkin</groupId>
|
||||
<artifactId>zipkin-java-core</artifactId>
|
||||
<groupId>io.zipkin.java</groupId>
|
||||
<artifactId>zipkin</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.projectlombok</groupId>
|
||||
|
||||
@@ -20,7 +20,7 @@ import org.springframework.cloud.client.ServiceInstance;
|
||||
import org.springframework.cloud.client.discovery.DiscoveryClient;
|
||||
import org.springframework.cloud.util.InetUtils;
|
||||
|
||||
import io.zipkin.Endpoint;
|
||||
import zipkin.Endpoint;
|
||||
|
||||
/**
|
||||
* An {@link EndpointLocator} that tries to find local service information from a
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
|
||||
package org.springframework.cloud.sleuth.zipkin;
|
||||
|
||||
import io.zipkin.Endpoint;
|
||||
import zipkin.Endpoint;
|
||||
|
||||
/**
|
||||
* Strategy for locating a zipkin {@linkplain Endpoint} for the current process.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package org.springframework.cloud.sleuth.zipkin;
|
||||
|
||||
import io.zipkin.Endpoint;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import zipkin.Endpoint;
|
||||
|
||||
/**
|
||||
* Endpoint locator that will try to call an endpoint via Discovery Client
|
||||
|
||||
@@ -1,7 +1,5 @@
|
||||
package org.springframework.cloud.sleuth.zipkin;
|
||||
|
||||
import io.zipkin.Codec;
|
||||
import io.zipkin.Span;
|
||||
import java.io.Closeable;
|
||||
import java.io.Flushable;
|
||||
import java.io.IOException;
|
||||
@@ -17,6 +15,8 @@ import java.util.concurrent.Executors;
|
||||
import java.util.concurrent.LinkedBlockingQueue;
|
||||
import java.util.concurrent.ScheduledExecutorService;
|
||||
import lombok.extern.apachecommons.CommonsLog;
|
||||
import zipkin.Codec;
|
||||
import zipkin.Span;
|
||||
|
||||
import static java.util.concurrent.TimeUnit.SECONDS;
|
||||
|
||||
|
||||
@@ -21,7 +21,7 @@ import org.springframework.boot.context.embedded.EmbeddedServletContainerInitial
|
||||
import org.springframework.cloud.util.InetUtils;
|
||||
import org.springframework.context.event.EventListener;
|
||||
|
||||
import io.zipkin.Endpoint;
|
||||
import zipkin.Endpoint;
|
||||
|
||||
/**
|
||||
* @author Dave Syer
|
||||
|
||||
@@ -16,10 +16,6 @@
|
||||
|
||||
package org.springframework.cloud.sleuth.zipkin;
|
||||
|
||||
import io.zipkin.Annotation;
|
||||
import io.zipkin.BinaryAnnotation;
|
||||
import io.zipkin.Constants;
|
||||
import io.zipkin.Endpoint;
|
||||
import lombok.extern.apachecommons.CommonsLog;
|
||||
import org.springframework.cloud.sleuth.Log;
|
||||
import org.springframework.cloud.sleuth.Span;
|
||||
@@ -32,6 +28,10 @@ import org.springframework.cloud.sleuth.event.SpanReleasedEvent;
|
||||
import org.springframework.context.event.EventListener;
|
||||
import org.springframework.core.annotation.Order;
|
||||
import org.springframework.util.StringUtils;
|
||||
import zipkin.Annotation;
|
||||
import zipkin.BinaryAnnotation;
|
||||
import zipkin.Constants;
|
||||
import zipkin.Endpoint;
|
||||
|
||||
import java.nio.charset.Charset;
|
||||
import java.util.Map;
|
||||
@@ -119,8 +119,8 @@ public class ZipkinSpanListener {
|
||||
* </ul>
|
||||
*/
|
||||
// Visible for testing
|
||||
io.zipkin.Span convert(Span span) {
|
||||
io.zipkin.Span.Builder zipkinSpan = new io.zipkin.Span.Builder();
|
||||
zipkin.Span convert(Span span) {
|
||||
zipkin.Span.Builder zipkinSpan = new zipkin.Span.Builder();
|
||||
|
||||
// A zipkin span without any annotations cannot be queried, add special "lc" to avoid that.
|
||||
if (span.logs().isEmpty() && span.tags().isEmpty()) {
|
||||
@@ -158,7 +158,7 @@ public class ZipkinSpanListener {
|
||||
/**
|
||||
* Add annotations from the sleuth Span.
|
||||
*/
|
||||
private void addZipkinAnnotations(io.zipkin.Span.Builder zipkinSpan,
|
||||
private void addZipkinAnnotations(zipkin.Span.Builder zipkinSpan,
|
||||
Span span, Endpoint endpoint) {
|
||||
for (Log ta : span.logs()) {
|
||||
Annotation zipkinAnnotation = new Annotation.Builder()
|
||||
@@ -174,7 +174,7 @@ public class ZipkinSpanListener {
|
||||
*
|
||||
* @return list of Annotations that could be added to Zipkin Span.
|
||||
*/
|
||||
private void addZipkinBinaryAnnotations(io.zipkin.Span.Builder zipkinSpan,
|
||||
private void addZipkinBinaryAnnotations(zipkin.Span.Builder zipkinSpan,
|
||||
Span span, Endpoint endpoint) {
|
||||
for (Map.Entry<String, String> e : span.tags().entrySet()) {
|
||||
BinaryAnnotation binaryAnn = new BinaryAnnotation.Builder()
|
||||
|
||||
@@ -1,11 +1,9 @@
|
||||
package org.springframework.cloud.sleuth.zipkin;
|
||||
|
||||
import io.zipkin.Span;
|
||||
|
||||
public interface ZipkinSpanReporter {
|
||||
/**
|
||||
* Receives completed spans from {@link ZipkinSpanListener} and submits them to a Zipkin
|
||||
* collector.
|
||||
*/
|
||||
void report(Span span);
|
||||
void report(zipkin.Span span);
|
||||
}
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
package org.springframework.cloud.sleuth.zipkin;
|
||||
|
||||
import io.zipkin.Endpoint;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.mockito.BDDMockito;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.runners.MockitoJUnitRunner;
|
||||
import zipkin.Endpoint;
|
||||
|
||||
import static org.assertj.core.api.BDDAssertions.then;
|
||||
|
||||
|
||||
@@ -4,11 +4,11 @@ import okhttp3.mockwebserver.MockResponse;
|
||||
import okhttp3.mockwebserver.MockWebServer;
|
||||
import okhttp3.mockwebserver.RecordedRequest;
|
||||
import okhttp3.mockwebserver.SocketPolicy;
|
||||
import io.zipkin.Codec;
|
||||
import io.zipkin.Span;
|
||||
import java.util.List;
|
||||
import org.junit.Rule;
|
||||
import org.junit.Test;
|
||||
import zipkin.Codec;
|
||||
import zipkin.Span;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
@@ -59,7 +59,7 @@ public class HttpZipkinSpanReporterTest {
|
||||
assertThat(request.getHeader("Content-Type")).isEqualTo("application/json");
|
||||
|
||||
// Now, let's read back the spans we sent!
|
||||
List<io.zipkin.Span> zipkinSpans = Codec.JSON.readSpans(request.getBody().readByteArray());
|
||||
List<Span> zipkinSpans = Codec.JSON.readSpans(request.getBody().readByteArray());
|
||||
assertThat(zipkinSpans).containsExactly(
|
||||
span(1L, "foo"),
|
||||
span(2L, "bar")
|
||||
@@ -91,6 +91,6 @@ public class HttpZipkinSpanReporterTest {
|
||||
}
|
||||
|
||||
static Span span(long traceId, String spanName) {
|
||||
return new io.zipkin.Span.Builder().traceId(traceId).id(traceId).name(spanName).build();
|
||||
return new Span.Builder().traceId(traceId).id(traceId).name(spanName).build();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -80,7 +80,7 @@ public class ZipkinSpanListenerTests {
|
||||
long start = System.currentTimeMillis();
|
||||
parent.log("http/request/retry"); // System.currentTimeMillis
|
||||
|
||||
io.zipkin.Span result = listener.convert(parent);
|
||||
zipkin.Span result = listener.convert(parent);
|
||||
|
||||
assertThat(result.timestamp)
|
||||
.isEqualTo(parent.getBegin() * 1000);
|
||||
@@ -97,7 +97,7 @@ public class ZipkinSpanListenerTests {
|
||||
parent.log("http/request/retry");
|
||||
parent.tag("spring-boot/version", "1.3.1.RELEASE");
|
||||
|
||||
io.zipkin.Span result = listener.convert(parent);
|
||||
zipkin.Span result = listener.convert(parent);
|
||||
|
||||
assertThat(result.annotations.get(0).endpoint)
|
||||
.isEqualTo(listener.localEndpoint);
|
||||
@@ -146,7 +146,7 @@ public class ZipkinSpanListenerTests {
|
||||
@Configuration
|
||||
protected static class ZipkinTestConfiguration {
|
||||
|
||||
private List<io.zipkin.Span> spans = new ArrayList<>();
|
||||
private List<zipkin.Span> spans = new ArrayList<>();
|
||||
|
||||
@Bean
|
||||
public Sampler<?> defaultSampler() {
|
||||
|
||||
Reference in New Issue
Block a user