From 78dff731954b967673bf5ae56c315a5818327392 Mon Sep 17 00:00:00 2001 From: Adrian Cole Date: Fri, 1 Sep 2017 12:25:38 +0800 Subject: [PATCH] Updates to zipkin 1.31 and removes more internal usages (#477) --- .../kristofa/brave/BoundarySampler.java | 6 ++-- .../java/com/github/kristofa/brave/Brave.java | 7 +++-- .../kristofa/brave/CountingSampler.java | 6 ++-- .../com/twitter/zipkin/gen/Annotation.java | 6 ++-- .../java/com/twitter/zipkin/gen/Endpoint.java | 5 ++- .../java/brave/interop/TracerAdapterTest.java | 3 +- .../kristofa/brave/http/ITHttpServer.java | 3 +- brave/pom.xml | 6 ++-- .../brave/internal/recorder/MutableSpan.java | 9 +++--- .../internal/recorder/MutableSpanMap.java | 4 +-- .../brave/internal/recorder/Recorder.java | 6 ++-- .../java/brave/sampler/BoundarySampler.java | 6 ++-- .../java/brave/sampler/CountingSampler.java | 6 ++-- .../internal/recorder/MutableSpanTest.java | 31 +++++++++---------- pom.xml | 4 +-- 15 files changed, 55 insertions(+), 53 deletions(-) diff --git a/archive/brave-core/src/main/java/com/github/kristofa/brave/BoundarySampler.java b/archive/brave-core/src/main/java/com/github/kristofa/brave/BoundarySampler.java index a038aaf2b8..809697cfe2 100644 --- a/archive/brave-core/src/main/java/com/github/kristofa/brave/BoundarySampler.java +++ b/archive/brave-core/src/main/java/com/github/kristofa/brave/BoundarySampler.java @@ -2,8 +2,6 @@ import java.util.Random; -import static zipkin.internal.Util.checkArgument; - /** * This sampler is appropriate for high-traffic instrumentation (ex edge web servers that each * receive >100K requests) who provision random trace ids, and make the sampling decision only once. @@ -28,7 +26,9 @@ public final class BoundarySampler extends Sampler { public static Sampler create(float rate) { if (rate == 0) return Sampler.NEVER_SAMPLE; if (rate == 1.0) return ALWAYS_SAMPLE; - checkArgument(rate >= 0.0001f && rate < 1, "rate should be between 0.0001 and 1: was %s", rate); + if (rate < 0.0001f || rate > 1) { + throw new IllegalArgumentException("rate should be between 0.0001 and 1: was " + rate); + } final long boundary = (long) (rate * 10000); // safe cast as less <= 1 return new BoundarySampler(boundary); } diff --git a/archive/brave-core/src/main/java/com/github/kristofa/brave/Brave.java b/archive/brave-core/src/main/java/com/github/kristofa/brave/Brave.java index 925edc4b53..891a527096 100644 --- a/archive/brave-core/src/main/java/com/github/kristofa/brave/Brave.java +++ b/archive/brave-core/src/main/java/com/github/kristofa/brave/Brave.java @@ -19,7 +19,6 @@ import static com.github.kristofa.brave.InetAddressUtilities.getLocalHostLANAddress; import static com.github.kristofa.brave.InetAddressUtilities.toInt; -import static zipkin.internal.Util.checkNotNull; /** @deprecated Replaced by {@link brave.Tracing} */ @Deprecated @@ -150,7 +149,8 @@ public Builder traceSampler(Sampler sampler) { *

See https://github.com/openzipkin/zipkin-reporter-java */ public Builder reporter(Reporter reporter) { - this.reporter = checkNotNull(reporter, "reporter"); + if (reporter == null) throw new NullPointerException("reporter == null"); + this.reporter = reporter; return this; } @@ -175,7 +175,8 @@ public Builder spanCollector(SpanCollector spanCollector) { } public Builder clock(Clock clock) { - this.clock = checkNotNull(clock, "clock"); + if (clock == null) throw new NullPointerException("clock == null"); + this.clock = clock; return this; } diff --git a/archive/brave-core/src/main/java/com/github/kristofa/brave/CountingSampler.java b/archive/brave-core/src/main/java/com/github/kristofa/brave/CountingSampler.java index 3baaa29c9c..787abb28e8 100644 --- a/archive/brave-core/src/main/java/com/github/kristofa/brave/CountingSampler.java +++ b/archive/brave-core/src/main/java/com/github/kristofa/brave/CountingSampler.java @@ -3,8 +3,6 @@ import java.util.BitSet; import java.util.Random; -import static zipkin.internal.Util.checkArgument; - /** * This sampler is appropriate for low-traffic instrumentation (ex servers that each receive <100K * requests), or those who do not provision random trace ids. It not appropriate for collectors as @@ -25,7 +23,9 @@ public final class CountingSampler extends Sampler { public static Sampler create(final float rate) { if (rate == 0) return NEVER_SAMPLE; if (rate == 1.0) return ALWAYS_SAMPLE; - checkArgument(rate >= 0.01f && rate < 1, "rate should be between 0.01 and 1: was %s", rate); + if (rate < 0.01f || rate > 1) { + throw new IllegalArgumentException("rate should be between 0.01 and 1: was " + rate); + } return new CountingSampler(rate); } diff --git a/archive/brave-core/src/main/java/com/twitter/zipkin/gen/Annotation.java b/archive/brave-core/src/main/java/com/twitter/zipkin/gen/Annotation.java index ed6cdf43b9..9ba1941317 100644 --- a/archive/brave-core/src/main/java/com/twitter/zipkin/gen/Annotation.java +++ b/archive/brave-core/src/main/java/com/twitter/zipkin/gen/Annotation.java @@ -4,8 +4,6 @@ import javax.annotation.Generated; import javax.annotation.Nullable; -import static zipkin.internal.Util.equal; - /** * An annotation is similar to a log statement. It includes a host field which * allows these events to be attributed properly, and also aggregatable. @@ -52,6 +50,10 @@ public boolean equals(Object o) { return false; } + static boolean equal(Object a, Object b) { + return a == b || a != null && a.equals(b); + } + @Override public int hashCode() { int h = 1; diff --git a/archive/brave-core/src/main/java/com/twitter/zipkin/gen/Endpoint.java b/archive/brave-core/src/main/java/com/twitter/zipkin/gen/Endpoint.java index 5f8d6e6175..d4efe6bef3 100644 --- a/archive/brave-core/src/main/java/com/twitter/zipkin/gen/Endpoint.java +++ b/archive/brave-core/src/main/java/com/twitter/zipkin/gen/Endpoint.java @@ -7,7 +7,6 @@ import static com.github.kristofa.brave.internal.Util.checkNotNull; import static com.github.kristofa.brave.internal.Util.equal; -import static zipkin.internal.Util.checkArgument; /** * Indicates the network context of a service recording an annotation with two @@ -121,7 +120,7 @@ public Endpoint.Builder ipv4(int ipv4) { /** @see Endpoint#ipv6 */ public Endpoint.Builder ipv6(byte[] ipv6) { if (ipv6 != null) { - checkArgument(ipv6.length == 16, "ipv6 addresses are 16 bytes: " + ipv6.length); + if (ipv6.length != 16) throw new IllegalArgumentException("ipv6.length != 16"); this.ipv6 = ipv6; } return this; @@ -138,7 +137,7 @@ public Endpoint.Builder ipv6(byte[] ipv6) { * @see Endpoint#port */ public Endpoint.Builder port(int port) { - checkArgument(port >= 0 && port <= 0xffff, "invalid port %s", port); + if (port < 0 || port > 0xffff) throw new IllegalArgumentException("invalid port " + port); this.port = port == 0 ? null : (short) (port & 0xffff); return this; } diff --git a/archive/brave-core/src/test/java/brave/interop/TracerAdapterTest.java b/archive/brave-core/src/test/java/brave/interop/TracerAdapterTest.java index 3a9545e6c0..b3011d6e4d 100644 --- a/archive/brave-core/src/test/java/brave/interop/TracerAdapterTest.java +++ b/archive/brave-core/src/test/java/brave/interop/TracerAdapterTest.java @@ -6,6 +6,7 @@ import com.github.kristofa.brave.SpanId; import com.github.kristofa.brave.TracerAdapter; import com.twitter.zipkin.gen.Span; +import java.nio.charset.Charset; import java.util.ArrayList; import java.util.List; import java.util.concurrent.atomic.AtomicLong; @@ -18,9 +19,9 @@ import static com.github.kristofa.brave.TracerAdapter.toSpan; import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.tuple; -import static zipkin.internal.Util.UTF_8; public class TracerAdapterTest { + static final Charset UTF_8 = Charset.forName("UTF-8"); List spans = new ArrayList<>(); AtomicLong epochMicros = new AtomicLong(); diff --git a/archive/brave-http-tests/src/main/java/com/github/kristofa/brave/http/ITHttpServer.java b/archive/brave-http-tests/src/main/java/com/github/kristofa/brave/http/ITHttpServer.java index f379a9e8c0..7cb91c1d9f 100644 --- a/archive/brave-http-tests/src/main/java/com/github/kristofa/brave/http/ITHttpServer.java +++ b/archive/brave-http-tests/src/main/java/com/github/kristofa/brave/http/ITHttpServer.java @@ -19,7 +19,6 @@ import zipkin.Endpoint; import zipkin.Span; import zipkin.TraceKeys; -import zipkin.internal.Util; import zipkin.storage.InMemoryStorage; import static java.util.Arrays.asList; @@ -275,7 +274,7 @@ public void httpUrlTagIncludesQueryParams() throws Exception { assertThat(collectedSpans()) .flatExtracting(s -> s.binaryAnnotations) .filteredOn(b -> b.key.equals(TraceKeys.HTTP_URL)) - .extracting(b -> new String(b.value, Util.UTF_8)) + .extracting(b -> new String(b.value, "UTF-8")) .containsExactly(url(path).toString()); } diff --git a/brave/pom.xml b/brave/pom.xml index a502d67698..e4708b2f5b 100644 --- a/brave/pom.xml +++ b/brave/pom.xml @@ -142,10 +142,12 @@ - + io.zipkin.java:zipkin - zipkin/internal/*Span2*.class + zipkin/internal/v2/*Span*.class + zipkin/internal/V2SpanConverter*.class + zipkin/internal/Util.class diff --git a/brave/src/main/java/brave/internal/recorder/MutableSpan.java b/brave/src/main/java/brave/internal/recorder/MutableSpan.java index 50319b8c0e..6278b0a732 100644 --- a/brave/src/main/java/brave/internal/recorder/MutableSpan.java +++ b/brave/src/main/java/brave/internal/recorder/MutableSpan.java @@ -4,17 +4,16 @@ import brave.propagation.TraceContext; import javax.annotation.Nullable; import zipkin.Endpoint; -import zipkin.internal.Span2; final class MutableSpan { - final Span2.Builder span; + final zipkin.internal.v2.Span.Builder span; boolean finished; long timestamp; // Since this is not exposed, this class could be refactored later as needed to act in a pool // to reduce GC churn. This would involve calling span.clear and resetting the fields below. MutableSpan(TraceContext context, Endpoint localEndpoint) { - this.span = Span2.builder() + this.span = zipkin.internal.v2.Span.builder() .traceIdHigh(context.traceIdHigh()) .traceId(context.traceId()) .parentId(context.parentId()) @@ -37,7 +36,7 @@ synchronized MutableSpan name(String name) { synchronized MutableSpan kind(Span.Kind kind) { try { - span.kind(Span2.Kind.valueOf(kind.name())); + span.kind(zipkin.internal.v2.Span.Kind.valueOf(kind.name())); } catch (IllegalArgumentException e) { // TODO: log } @@ -70,7 +69,7 @@ synchronized MutableSpan finish(@Nullable Long finishTimestamp) { return this; } - synchronized Span2 toSpan() { + synchronized zipkin.internal.v2.Span toSpan() { return span.build(); } } diff --git a/brave/src/main/java/brave/internal/recorder/MutableSpanMap.java b/brave/src/main/java/brave/internal/recorder/MutableSpanMap.java index 47ce670708..ed7bee32e1 100644 --- a/brave/src/main/java/brave/internal/recorder/MutableSpanMap.java +++ b/brave/src/main/java/brave/internal/recorder/MutableSpanMap.java @@ -12,7 +12,7 @@ import java.util.logging.Logger; import javax.annotation.Nullable; import zipkin.Endpoint; -import zipkin.internal.Span2Converter; +import zipkin.internal.V2SpanConverter; import zipkin.reporter.Reporter; /** @@ -80,7 +80,7 @@ void reportOrphanedSpans() { if (value == null || noop.get()) continue; try { value.annotate(clock.currentTimeMicroseconds(), "brave.flush"); - reporter.report(Span2Converter.toSpan(value.toSpan())); + reporter.report(V2SpanConverter.toSpan(value.toSpan())); } catch (RuntimeException e) { // don't crash the caller if there was a problem reporting an unrelated span. if (context != null && logger.isLoggable(Level.FINE)) { diff --git a/brave/src/main/java/brave/internal/recorder/Recorder.java b/brave/src/main/java/brave/internal/recorder/Recorder.java index 5d5e0e4083..b18bc7a477 100644 --- a/brave/src/main/java/brave/internal/recorder/Recorder.java +++ b/brave/src/main/java/brave/internal/recorder/Recorder.java @@ -6,7 +6,7 @@ import java.util.concurrent.atomic.AtomicBoolean; import javax.annotation.Nullable; import zipkin.Endpoint; -import zipkin.internal.Span2Converter; +import zipkin.internal.V2SpanConverter; import zipkin.reporter.Reporter; /** Dispatches mutations on a span to a shared object per trace/span id. */ @@ -81,7 +81,7 @@ public void finish(TraceContext context, long finishTimestamp) { if (span == null || noop.get()) return; synchronized (span) { span.finish(finishTimestamp); - reporter.report(Span2Converter.toSpan(span.toSpan())); + reporter.report(V2SpanConverter.toSpan(span.toSpan())); } } @@ -96,7 +96,7 @@ public void flush(TraceContext context) { if (span == null || noop.get()) return; synchronized (span) { span.finish(null); - reporter.report(Span2Converter.toSpan(span.toSpan())); + reporter.report(V2SpanConverter.toSpan(span.toSpan())); } } } diff --git a/brave/src/main/java/brave/sampler/BoundarySampler.java b/brave/src/main/java/brave/sampler/BoundarySampler.java index aaf68c387e..aca745bb31 100644 --- a/brave/src/main/java/brave/sampler/BoundarySampler.java +++ b/brave/src/main/java/brave/sampler/BoundarySampler.java @@ -2,8 +2,6 @@ import java.util.Random; -import static zipkin.internal.Util.checkArgument; - /** * This sampler is appropriate for high-traffic instrumentation (ex edge web servers that each * receive >100K requests) who provision random trace ids, and make the sampling decision only once. @@ -28,7 +26,9 @@ public final class BoundarySampler extends Sampler { public static Sampler create(float rate) { if (rate == 0) return Sampler.NEVER_SAMPLE; if (rate == 1.0) return ALWAYS_SAMPLE; - checkArgument(rate >= 0.0001f && rate < 1, "rate should be between 0.0001 and 1: was %s", rate); + if (rate < 0.0001f || rate > 1) { + throw new IllegalArgumentException("rate should be between 0.0001 and 1: was " + rate); + } final long boundary = (long) (rate * 10000); // safe cast as less <= 1 return new BoundarySampler(boundary); } diff --git a/brave/src/main/java/brave/sampler/CountingSampler.java b/brave/src/main/java/brave/sampler/CountingSampler.java index b03d4dd4b2..a9679148ac 100644 --- a/brave/src/main/java/brave/sampler/CountingSampler.java +++ b/brave/src/main/java/brave/sampler/CountingSampler.java @@ -3,8 +3,6 @@ import java.util.BitSet; import java.util.Random; -import static zipkin.internal.Util.checkArgument; - /** * This sampler is appropriate for low-traffic instrumentation (ex servers that each receive <100K * requests), or those who do not provision random trace ids. It not appropriate for collectors as @@ -25,7 +23,9 @@ public final class CountingSampler extends Sampler { public static Sampler create(final float rate) { if (rate == 0) return NEVER_SAMPLE; if (rate == 1.0) return ALWAYS_SAMPLE; - checkArgument(rate >= 0.01f && rate < 1, "rate should be between 0.01 and 1: was %s", rate); + if (rate < 0.01f || rate > 1) { + throw new IllegalArgumentException("rate should be between 0.01 and 1: was " + rate); + } return new CountingSampler(rate); } diff --git a/brave/src/test/java/brave/internal/recorder/MutableSpanTest.java b/brave/src/test/java/brave/internal/recorder/MutableSpanTest.java index 655ce44358..7003f4da15 100644 --- a/brave/src/test/java/brave/internal/recorder/MutableSpanTest.java +++ b/brave/src/test/java/brave/internal/recorder/MutableSpanTest.java @@ -8,8 +8,7 @@ import org.junit.Test; import zipkin.Annotation; import zipkin.Endpoint; -import zipkin.internal.Span2; -import zipkin.internal.Span2Converter; +import zipkin.internal.V2SpanConverter; import static brave.Span.Kind.CLIENT; import static brave.Span.Kind.SERVER; @@ -54,28 +53,28 @@ public class MutableSpanTest { } @Test public void finished_client() { - finish(Span.Kind.CLIENT, Span2.Kind.CLIENT); + finish(Span.Kind.CLIENT, zipkin.internal.v2.Span.Kind.CLIENT); } @Test public void finished_server() { - finish(Span.Kind.SERVER, Span2.Kind.SERVER); + finish(Span.Kind.SERVER, zipkin.internal.v2.Span.Kind.SERVER); } @Test public void finished_producer() { - finish(Span.Kind.PRODUCER, Span2.Kind.PRODUCER); + finish(Span.Kind.PRODUCER, zipkin.internal.v2.Span.Kind.PRODUCER); } @Test public void finished_consumer() { - finish(Span.Kind.CONSUMER, Span2.Kind.CONSUMER); + finish(Span.Kind.CONSUMER, zipkin.internal.v2.Span.Kind.CONSUMER); } - private void finish(Span.Kind braveKind, Span2.Kind span2Kind) { + private void finish(Span.Kind braveKind, zipkin.internal.v2.Span.Kind span2Kind) { MutableSpan span = newSpan(); span.kind(braveKind); span.start(1L); span.finish(2L); - Span2 span2 = span.toSpan(); + zipkin.internal.v2.Span span2 = span.toSpan(); assertThat(span2.annotations()).isEmpty(); assertThat(span2.timestamp()).isEqualTo(1L); assertThat(span2.duration()).isEqualTo(1L); @@ -83,28 +82,28 @@ private void finish(Span.Kind braveKind, Span2.Kind span2Kind) { } @Test public void flushed_client() { - flush(Span.Kind.CLIENT, Span2.Kind.CLIENT); + flush(Span.Kind.CLIENT, zipkin.internal.v2.Span.Kind.CLIENT); } @Test public void flushed_server() { - flush(Span.Kind.SERVER, Span2.Kind.SERVER); + flush(Span.Kind.SERVER, zipkin.internal.v2.Span.Kind.SERVER); } @Test public void flushed_producer() { - flush(Span.Kind.PRODUCER, Span2.Kind.PRODUCER); + flush(Span.Kind.PRODUCER, zipkin.internal.v2.Span.Kind.PRODUCER); } @Test public void flushed_consumer() { - flush(Span.Kind.CONSUMER, Span2.Kind.CONSUMER); + flush(Span.Kind.CONSUMER, zipkin.internal.v2.Span.Kind.CONSUMER); } - private void flush(Span.Kind braveKind, Span2.Kind span2Kind) { + private void flush(Span.Kind braveKind, zipkin.internal.v2.Span.Kind span2Kind) { MutableSpan span = newSpan(); span.kind(braveKind); span.start(1L); span.finish(null); - Span2 span2 = span.toSpan(); + zipkin.internal.v2.Span span2 = span.toSpan(); assertThat(span2.annotations()).isEmpty(); assertThat(span2.timestamp()).isEqualTo(1L); assertThat(span2.duration()).isNull(); @@ -131,12 +130,12 @@ private void flush(Span.Kind braveKind, Span2.Kind span2Kind) { span.kind(SERVER); span.finish(2L); - assertThat(Span2Converter.toSpan(span.toSpan())).extracting(s -> s.timestamp, s -> s.duration) + assertThat(V2SpanConverter.toSpan(span.toSpan())).extracting(s -> s.timestamp, s -> s.duration) .allSatisfy(u -> assertThat(u).isNull()); } @Test public void flushUnstartedNeitherSetsTimestampNorDuration() { - Span2 flushed = newSpan().finish(null).toSpan(); + zipkin.internal.v2.Span flushed = newSpan().finish(null).toSpan(); assertThat(flushed).extracting(s -> s.timestamp(), s -> s.duration()) .allSatisfy(u -> assertThat(u).isNull()); } diff --git a/pom.xml b/pom.xml index 8dc52e669c..e9d8dd6806 100755 --- a/pom.xml +++ b/pom.xml @@ -66,8 +66,8 @@ 7.6.21.v20160908 3.1.3.Final - 1.30.3 - 1.0.1 + 1.31.0 + 1.0.2 6.45.0 2.8.2 3.8.1