This is an automated email from the ASF dual-hosted git repository. acosentino pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/camel.git
commit 05b49093e416587cac6d6b5d4fe84bf6a118a486 Author: Adrian Cole <ac...@pivotal.io> AuthorDate: Wed Jun 13 16:27:54 2018 +0800 Updates to latest zipkin, eliminating SpanCollector dependency This reduces the effort of renovating the zipkin component by reducing the apis used to send data to Zipkin. --- components/camel-zipkin/pom.xml | 14 +++--- .../camel/zipkin/ZipkinLoggingSpanCollector.java | 58 ---------------------- .../java/org/apache/camel/zipkin/ZipkinTracer.java | 46 ++++------------- .../camel/zipkin/scribe/ZipkinABCRouteScribe.java | 16 ++++-- .../zipkin/scribe/ZipkinMulticastRouteScribe.java | 16 ++++-- .../scribe/ZipkinOneRouteFallbackScribe.java | 16 ++++-- .../camel/zipkin/scribe/ZipkinOneRouteScribe.java | 16 ++++-- .../zipkin/scribe/ZipkinSimpleRouteScribe.java | 17 +++++-- .../zipkin/scribe/ZipkinTimerRouteScribe.java | 17 +++++-- .../camel/zipkin/scribe/ZipkinTwoRouteScribe.java | 17 +++++-- .../camel/zipkin/SpringZipkinSimpleRouteTest.xml | 6 +-- parent/pom.xml | 4 +- .../karaf/features/src/main/resources/features.xml | 4 +- .../camel-zipkin-starter/pom.xml | 8 +++ 14 files changed, 126 insertions(+), 129 deletions(-) diff --git a/components/camel-zipkin/pom.xml b/components/camel-zipkin/pom.xml index 3181be3..0177737 100644 --- a/components/camel-zipkin/pom.xml +++ b/components/camel-zipkin/pom.xml @@ -48,21 +48,22 @@ <artifactId>camel-core</artifactId> </dependency> - <!-- brave/zipkin --> + <!-- to send to zipkin server --> <dependency> - <groupId>io.zipkin.brave</groupId> - <artifactId>brave-core</artifactId> - <version>${brave-zipkin-version}</version> + <groupId>io.zipkin.reporter2</groupId> + <artifactId>zipkin-sender-libthrift</artifactId> + <version>${zipkin-reporter-version}</version> </dependency> - <!-- to send to zipkin server --> <dependency> <groupId>io.zipkin.reporter2</groupId> <artifactId>zipkin-sender-urlconnection</artifactId> <version>${zipkin-reporter-version}</version> </dependency> + + <!-- brave/zipkin --> <dependency> <groupId>io.zipkin.brave</groupId> - <artifactId>brave-spancollector-scribe</artifactId> + <artifactId>brave-core</artifactId> <version>${brave-zipkin-version}</version> </dependency> @@ -87,7 +88,6 @@ <artifactId>log4j-slf4j-impl</artifactId> <scope>test</scope> </dependency> - </dependencies> <build> diff --git a/components/camel-zipkin/src/main/java/org/apache/camel/zipkin/ZipkinLoggingSpanCollector.java b/components/camel-zipkin/src/main/java/org/apache/camel/zipkin/ZipkinLoggingSpanCollector.java deleted file mode 100644 index 1299530..0000000 --- a/components/camel-zipkin/src/main/java/org/apache/camel/zipkin/ZipkinLoggingSpanCollector.java +++ /dev/null @@ -1,58 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.apache.camel.zipkin; - -import com.github.kristofa.brave.SpanCollector; -import com.twitter.zipkin.gen.Span; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -/** - * To collect zipkin span's using a logger. - */ -public class ZipkinLoggingSpanCollector implements SpanCollector { - - private final String name; - private final Logger logger; - - public ZipkinLoggingSpanCollector() { - this(ZipkinLoggingSpanCollector.class.getName()); - } - - public ZipkinLoggingSpanCollector(String name) { - this.name = name; - this.logger = LoggerFactory.getLogger(name); - } - - @Override - public void collect(Span span) { - if (logger.isTraceEnabled()) { - String name = span.getName(); - String traceId = "" + span.getTrace_id(); - String spanId = "" + span.getId(); - String parentId = "" + span.getParent_id(); - long ms = span.getDuration() != null ? span.getDuration() / 1000 : -1; - logger.info("Zipkin[name={}, traceId={}, spanId={}, parentId={}, duration={} ms]", name, traceId, spanId, parentId, ms); - } - } - - @Override - public void addDefaultAnnotation(String key, String value) { - // noop - } - -} diff --git a/components/camel-zipkin/src/main/java/org/apache/camel/zipkin/ZipkinTracer.java b/components/camel-zipkin/src/main/java/org/apache/camel/zipkin/ZipkinTracer.java index fa6d8d2..5d3f658 100644 --- a/components/camel-zipkin/src/main/java/org/apache/camel/zipkin/ZipkinTracer.java +++ b/components/camel-zipkin/src/main/java/org/apache/camel/zipkin/ZipkinTracer.java @@ -27,8 +27,6 @@ import com.github.kristofa.brave.Brave; import com.github.kristofa.brave.ClientSpanThreadBinder; import com.github.kristofa.brave.ServerSpan; import com.github.kristofa.brave.ServerSpanThreadBinder; -import com.github.kristofa.brave.SpanCollector; -import com.github.kristofa.brave.scribe.ScribeSpanCollector; import com.twitter.zipkin.gen.Span; import org.apache.camel.CamelContext; import org.apache.camel.CamelContextAware; @@ -60,6 +58,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import zipkin2.reporter.AsyncReporter; import zipkin2.reporter.Reporter; +import zipkin2.reporter.libthrift.LibthriftSender; import zipkin2.reporter.urlconnection.URLConnectionSender; import static org.apache.camel.builder.ExpressionBuilder.routeIdExpression; @@ -114,7 +113,6 @@ public class ZipkinTracer extends ServiceSupport implements RoutePolicyFactory, private String hostName; private int port; private float rate = 1.0f; - private SpanCollector spanCollector; private Reporter<zipkin2.Span> spanReporter; private Map<String, String> clientServiceMappings = new HashMap<>(); private Map<String, String> serverServiceMappings = new HashMap<>(); @@ -206,16 +204,6 @@ public class ZipkinTracer extends ServiceSupport implements RoutePolicyFactory, this.rate = rate; } - /** - * Returns the legacy span collector or null if using the reporter - * - * @deprecated use {@link #getSpanReporter()} - */ - @Deprecated - public SpanCollector getSpanCollector() { - return spanCollector; - } - /** Sets the reporter used to send timing data (spans) to the zipkin server. */ public void setSpanReporter(Reporter<zipkin2.Span> spanReporter) { this.spanReporter = spanReporter; @@ -226,12 +214,6 @@ public class ZipkinTracer extends ServiceSupport implements RoutePolicyFactory, return spanReporter; } - /** @deprecated use {@link #setSpanReporter(Reporter)} */ - @Deprecated - public void setSpanCollector(SpanCollector spanCollector) { - this.spanCollector = spanCollector; - } - public String getServiceName() { return clientServiceMappings.get("*"); } @@ -346,13 +328,13 @@ public class ZipkinTracer extends ServiceSupport implements RoutePolicyFactory, } if (spanReporter == null) { - if (spanCollector != null) { // possible via setter - } else if (endpoint != null) { + if (endpoint != null) { LOG.info("Configuring Zipkin URLConnectionSender using endpoint: {} ", endpoint); spanReporter = AsyncReporter.create(URLConnectionSender.create(endpoint)); } else if (hostName != null && port > 0) { LOG.info("Configuring Zipkin ScribeSpanCollector using host: {} and port: {}", hostName, port); - spanCollector = new ScribeSpanCollector(hostName, port); + LibthriftSender sender = LibthriftSender.newBuilder().host(hostName).port(port).build(); + spanReporter = AsyncReporter.create(sender); } else { // is there a zipkin service setup as ENV variable to auto register a span reporter String host = new ServiceHostPropertiesFunction().apply(ZIPKIN_COLLECTOR_HTTP_SERVICE); @@ -368,13 +350,14 @@ public class ZipkinTracer extends ServiceSupport implements RoutePolicyFactory, if (ObjectHelper.isNotEmpty(host) && ObjectHelper.isNotEmpty(port)) { LOG.info("Auto-configuring Zipkin ScribeSpanCollector using host: {} and port: {}", host, port); int num = camelContext.getTypeConverter().mandatoryConvertTo(Integer.class, port); - spanCollector = new ScribeSpanCollector(host, num); + LibthriftSender sender = LibthriftSender.newBuilder().host(host).port(num).build(); + spanReporter = AsyncReporter.create(sender); } } } } - if (spanReporter == null && spanCollector == null) { + if (spanReporter == null) { // Try to lookup the span reporter from the registry if only one instance is present Set<Reporter> reporters = camelContext.getRegistry().findByType(Reporter.class); if (reporters.size() == 1) { @@ -382,9 +365,7 @@ public class ZipkinTracer extends ServiceSupport implements RoutePolicyFactory, } } - if (spanCollector == null) { - ObjectHelper.notNull(spanReporter, "Reporter<zipkin2.Span>", this); - } + ObjectHelper.notNull(spanReporter, "Reporter<zipkin2.Span>", this); if (clientServiceMappings.isEmpty() && serverServiceMappings.isEmpty()) { LOG.warn("No service name(s) has been mapped in clientServiceMappings or serverServiceMappings. Camel will fallback and use endpoint uris as service names."); @@ -529,14 +510,9 @@ public class ZipkinTracer extends ServiceSupport implements RoutePolicyFactory, } private Brave newBrave(String serviceName) { - Brave.Builder builder = new Brave.Builder(serviceName) - .traceSampler(com.github.kristofa.brave.Sampler.create(rate)); - if (spanReporter != null) { - builder = builder.spanReporter(spanReporter); - } else if (spanCollector != null) { - builder.spanCollector(spanCollector); - } - return builder.build(); + return new Brave.Builder(serviceName) + .traceSampler(com.github.kristofa.brave.Sampler.create(rate)) + .spanReporter(spanReporter).build(); } private Brave getBrave(String serviceName) { diff --git a/components/camel-zipkin/src/test/java/org/apache/camel/zipkin/scribe/ZipkinABCRouteScribe.java b/components/camel-zipkin/src/test/java/org/apache/camel/zipkin/scribe/ZipkinABCRouteScribe.java index 913a58e..e404641 100644 --- a/components/camel-zipkin/src/test/java/org/apache/camel/zipkin/scribe/ZipkinABCRouteScribe.java +++ b/components/camel-zipkin/src/test/java/org/apache/camel/zipkin/scribe/ZipkinABCRouteScribe.java @@ -16,9 +16,10 @@ */ package org.apache.camel.zipkin.scribe; -import com.github.kristofa.brave.scribe.ScribeSpanCollector; import org.apache.camel.zipkin.ZipkinABCRouteTest; import org.apache.camel.zipkin.ZipkinTracer; +import zipkin2.reporter.AsyncReporter; +import zipkin2.reporter.libthrift.LibthriftSender; /** * Integration test requires running Zipkin/Scribe running @@ -26,11 +27,20 @@ import org.apache.camel.zipkin.ZipkinTracer; * <p>The easiest way to run is locally: * <pre>{@code * curl -sSL https://zipkin.io/quickstart.sh | bash -s - * SCRIBE_ENABLED=true java -jar zipkin.jar + * curl -sSL https://zipkin.io/quickstart.sh | bash -s io.zipkin.java:zipkin-autoconfigure-collector-scribe:LATEST:module scribe.jar + * SCRIBE_ENABLED=true \ + * java \ + * -Dloader.path='scribe.jar,scribe.jar!/lib' \ + * -Dspring.profiles.active=scribe \ + * -cp zipkin.jar \ + * org.springframework.boot.loader.PropertiesLauncher * }</pre> + * + * <p>Note: the scribe transport is deprecated. Most use out-of-box defaults, such as Http, RabbitMQ + * or Kafka. */ public class ZipkinABCRouteScribe extends ZipkinABCRouteTest { @Override protected void setSpanReporter(ZipkinTracer zipkin) { - zipkin.setSpanCollector(new ScribeSpanCollector("127.0.0.1", 9410)); + zipkin.setSpanReporter(AsyncReporter.create(LibthriftSender.create("127.0.0.1"))); } } diff --git a/components/camel-zipkin/src/test/java/org/apache/camel/zipkin/scribe/ZipkinMulticastRouteScribe.java b/components/camel-zipkin/src/test/java/org/apache/camel/zipkin/scribe/ZipkinMulticastRouteScribe.java index 14e200e..8845185 100644 --- a/components/camel-zipkin/src/test/java/org/apache/camel/zipkin/scribe/ZipkinMulticastRouteScribe.java +++ b/components/camel-zipkin/src/test/java/org/apache/camel/zipkin/scribe/ZipkinMulticastRouteScribe.java @@ -16,9 +16,10 @@ */ package org.apache.camel.zipkin.scribe; -import com.github.kristofa.brave.scribe.ScribeSpanCollector; import org.apache.camel.zipkin.ZipkinMulticastRouteTest; import org.apache.camel.zipkin.ZipkinTracer; +import zipkin2.reporter.AsyncReporter; +import zipkin2.reporter.libthrift.LibthriftSender; /** * Integration test requires running Zipkin/Scribe running @@ -26,11 +27,20 @@ import org.apache.camel.zipkin.ZipkinTracer; * <p>The easiest way to run is locally: * <pre>{@code * curl -sSL https://zipkin.io/quickstart.sh | bash -s - * SCRIBE_ENABLED=true java -jar zipkin.jar + * curl -sSL https://zipkin.io/quickstart.sh | bash -s io.zipkin.java:zipkin-autoconfigure-collector-scribe:LATEST:module scribe.jar + * SCRIBE_ENABLED=true \ + * java \ + * -Dloader.path='scribe.jar,scribe.jar!/lib' \ + * -Dspring.profiles.active=scribe \ + * -cp zipkin.jar \ + * org.springframework.boot.loader.PropertiesLauncher * }</pre> + * + * <p>Note: the scribe transport is deprecated. Most use out-of-box defaults, such as Http, RabbitMQ + * or Kafka. */ public class ZipkinMulticastRouteScribe extends ZipkinMulticastRouteTest { @Override protected void setSpanReporter(ZipkinTracer zipkin) { - zipkin.setSpanCollector(new ScribeSpanCollector("127.0.0.1", 9410)); + zipkin.setSpanReporter(AsyncReporter.create(LibthriftSender.create("127.0.0.1"))); } } diff --git a/components/camel-zipkin/src/test/java/org/apache/camel/zipkin/scribe/ZipkinOneRouteFallbackScribe.java b/components/camel-zipkin/src/test/java/org/apache/camel/zipkin/scribe/ZipkinOneRouteFallbackScribe.java index d389e26..454ba7c 100644 --- a/components/camel-zipkin/src/test/java/org/apache/camel/zipkin/scribe/ZipkinOneRouteFallbackScribe.java +++ b/components/camel-zipkin/src/test/java/org/apache/camel/zipkin/scribe/ZipkinOneRouteFallbackScribe.java @@ -16,9 +16,10 @@ */ package org.apache.camel.zipkin.scribe; -import com.github.kristofa.brave.scribe.ScribeSpanCollector; import org.apache.camel.zipkin.ZipkinOneRouteFallbackTest; import org.apache.camel.zipkin.ZipkinTracer; +import zipkin2.reporter.AsyncReporter; +import zipkin2.reporter.libthrift.LibthriftSender; /** * Integration test requires running Zipkin/Scribe running @@ -26,11 +27,20 @@ import org.apache.camel.zipkin.ZipkinTracer; * <p>The easiest way to run is locally: * <pre>{@code * curl -sSL https://zipkin.io/quickstart.sh | bash -s - * SCRIBE_ENABLED=true java -jar zipkin.jar + * curl -sSL https://zipkin.io/quickstart.sh | bash -s io.zipkin.java:zipkin-autoconfigure-collector-scribe:LATEST:module scribe.jar + * SCRIBE_ENABLED=true \ + * java \ + * -Dloader.path='scribe.jar,scribe.jar!/lib' \ + * -Dspring.profiles.active=scribe \ + * -cp zipkin.jar \ + * org.springframework.boot.loader.PropertiesLauncher * }</pre> + * + * <p>Note: the scribe transport is deprecated. Most use out-of-box defaults, such as Http, RabbitMQ + * or Kafka. */ public class ZipkinOneRouteFallbackScribe extends ZipkinOneRouteFallbackTest { @Override protected void setSpanReporter(ZipkinTracer zipkin) { - zipkin.setSpanCollector(new ScribeSpanCollector("127.0.0.1", 9410)); + zipkin.setSpanReporter(AsyncReporter.create(LibthriftSender.create("127.0.0.1"))); } } diff --git a/components/camel-zipkin/src/test/java/org/apache/camel/zipkin/scribe/ZipkinOneRouteScribe.java b/components/camel-zipkin/src/test/java/org/apache/camel/zipkin/scribe/ZipkinOneRouteScribe.java index 2ef1001..ca9f157 100644 --- a/components/camel-zipkin/src/test/java/org/apache/camel/zipkin/scribe/ZipkinOneRouteScribe.java +++ b/components/camel-zipkin/src/test/java/org/apache/camel/zipkin/scribe/ZipkinOneRouteScribe.java @@ -16,9 +16,10 @@ */ package org.apache.camel.zipkin.scribe; -import com.github.kristofa.brave.scribe.ScribeSpanCollector; import org.apache.camel.zipkin.ZipkinOneRouteTest; import org.apache.camel.zipkin.ZipkinTracer; +import zipkin2.reporter.AsyncReporter; +import zipkin2.reporter.libthrift.LibthriftSender; /** * Integration test requires running Zipkin/Scribe running @@ -26,11 +27,20 @@ import org.apache.camel.zipkin.ZipkinTracer; * <p>The easiest way to run is locally: * <pre>{@code * curl -sSL https://zipkin.io/quickstart.sh | bash -s - * SCRIBE_ENABLED=true java -jar zipkin.jar + * curl -sSL https://zipkin.io/quickstart.sh | bash -s io.zipkin.java:zipkin-autoconfigure-collector-scribe:LATEST:module scribe.jar + * SCRIBE_ENABLED=true \ + * java \ + * -Dloader.path='scribe.jar,scribe.jar!/lib' \ + * -Dspring.profiles.active=scribe \ + * -cp zipkin.jar \ + * org.springframework.boot.loader.PropertiesLauncher * }</pre> + * + * <p>Note: the scribe transport is deprecated. Most use out-of-box defaults, such as Http, RabbitMQ + * or Kafka. */ public class ZipkinOneRouteScribe extends ZipkinOneRouteTest { @Override protected void setSpanReporter(ZipkinTracer zipkin) { - zipkin.setSpanCollector(new ScribeSpanCollector("127.0.0.1", 9410)); + zipkin.setSpanReporter(AsyncReporter.create(LibthriftSender.create("127.0.0.1"))); } } diff --git a/components/camel-zipkin/src/test/java/org/apache/camel/zipkin/scribe/ZipkinSimpleRouteScribe.java b/components/camel-zipkin/src/test/java/org/apache/camel/zipkin/scribe/ZipkinSimpleRouteScribe.java index 2d5e557..4a153c3 100644 --- a/components/camel-zipkin/src/test/java/org/apache/camel/zipkin/scribe/ZipkinSimpleRouteScribe.java +++ b/components/camel-zipkin/src/test/java/org/apache/camel/zipkin/scribe/ZipkinSimpleRouteScribe.java @@ -16,21 +16,32 @@ */ package org.apache.camel.zipkin.scribe; -import com.github.kristofa.brave.scribe.ScribeSpanCollector; import org.apache.camel.zipkin.ZipkinSimpleRouteTest; import org.apache.camel.zipkin.ZipkinTracer; +import zipkin2.reporter.AsyncReporter; +import zipkin2.reporter.libthrift.LibthriftSender; /** * Integration test requires running Zipkin/Scribe running * * <p>The easiest way to run is locally: + * * <pre>{@code * curl -sSL https://zipkin.io/quickstart.sh | bash -s - * SCRIBE_ENABLED=true java -jar zipkin.jar + * curl -sSL https://zipkin.io/quickstart.sh | bash -s io.zipkin.java:zipkin-autoconfigure-collector-scribe:LATEST:module scribe.jar + * SCRIBE_ENABLED=true \ + * java \ + * -Dloader.path='scribe.jar,scribe.jar!/lib' \ + * -Dspring.profiles.active=scribe \ + * -cp zipkin.jar \ + * org.springframework.boot.loader.PropertiesLauncher * }</pre> + * + * <p>Note: the scribe transport is deprecated. Most use out-of-box defaults, such as Http, RabbitMQ + * or Kafka. */ public class ZipkinSimpleRouteScribe extends ZipkinSimpleRouteTest { @Override protected void setSpanReporter(ZipkinTracer zipkin) { - zipkin.setSpanCollector(new ScribeSpanCollector("127.0.0.1", 9410)); + zipkin.setSpanReporter(AsyncReporter.create(LibthriftSender.create("127.0.0.1"))); } } diff --git a/components/camel-zipkin/src/test/java/org/apache/camel/zipkin/scribe/ZipkinTimerRouteScribe.java b/components/camel-zipkin/src/test/java/org/apache/camel/zipkin/scribe/ZipkinTimerRouteScribe.java index 816735e..4fd583b 100644 --- a/components/camel-zipkin/src/test/java/org/apache/camel/zipkin/scribe/ZipkinTimerRouteScribe.java +++ b/components/camel-zipkin/src/test/java/org/apache/camel/zipkin/scribe/ZipkinTimerRouteScribe.java @@ -16,21 +16,32 @@ */ package org.apache.camel.zipkin.scribe; -import com.github.kristofa.brave.scribe.ScribeSpanCollector; import org.apache.camel.zipkin.ZipkinTimerRouteTest; import org.apache.camel.zipkin.ZipkinTracer; +import zipkin2.reporter.AsyncReporter; +import zipkin2.reporter.libthrift.LibthriftSender; /** * Integration test requires running Zipkin/Scribe running * * <p>The easiest way to run is locally: + * * <pre>{@code * curl -sSL https://zipkin.io/quickstart.sh | bash -s - * SCRIBE_ENABLED=true java -jar zipkin.jar + * curl -sSL https://zipkin.io/quickstart.sh | bash -s io.zipkin.java:zipkin-autoconfigure-collector-scribe:LATEST:module scribe.jar + * SCRIBE_ENABLED=true \ + * java \ + * -Dloader.path='scribe.jar,scribe.jar!/lib' \ + * -Dspring.profiles.active=scribe \ + * -cp zipkin.jar \ + * org.springframework.boot.loader.PropertiesLauncher * }</pre> + * + * <p>Note: the scribe transport is deprecated. Most use out-of-box defaults, such as Http, RabbitMQ + * or Kafka. */ public class ZipkinTimerRouteScribe extends ZipkinTimerRouteTest { @Override protected void setSpanReporter(ZipkinTracer zipkin) { - zipkin.setSpanCollector(new ScribeSpanCollector("127.0.0.1", 9410)); + zipkin.setSpanReporter(AsyncReporter.create(LibthriftSender.create("127.0.0.1"))); } } diff --git a/components/camel-zipkin/src/test/java/org/apache/camel/zipkin/scribe/ZipkinTwoRouteScribe.java b/components/camel-zipkin/src/test/java/org/apache/camel/zipkin/scribe/ZipkinTwoRouteScribe.java index bf6187e..14833fd 100644 --- a/components/camel-zipkin/src/test/java/org/apache/camel/zipkin/scribe/ZipkinTwoRouteScribe.java +++ b/components/camel-zipkin/src/test/java/org/apache/camel/zipkin/scribe/ZipkinTwoRouteScribe.java @@ -16,21 +16,32 @@ */ package org.apache.camel.zipkin.scribe; -import com.github.kristofa.brave.scribe.ScribeSpanCollector; import org.apache.camel.zipkin.ZipkinTracer; import org.apache.camel.zipkin.ZipkinTwoRouteTest; +import zipkin2.reporter.AsyncReporter; +import zipkin2.reporter.libthrift.LibthriftSender; /** * Integration test requires running Zipkin/Scribe running * * <p>The easiest way to run is locally: + * * <pre>{@code * curl -sSL https://zipkin.io/quickstart.sh | bash -s - * SCRIBE_ENABLED=true java -jar zipkin.jar + * curl -sSL https://zipkin.io/quickstart.sh | bash -s io.zipkin.java:zipkin-autoconfigure-collector-scribe:LATEST:module scribe.jar + * SCRIBE_ENABLED=true \ + * java \ + * -Dloader.path='scribe.jar,scribe.jar!/lib' \ + * -Dspring.profiles.active=scribe \ + * -cp zipkin.jar \ + * org.springframework.boot.loader.PropertiesLauncher * }</pre> + * + * <p>Note: the scribe transport is deprecated. Most use out-of-box defaults, such as Http, RabbitMQ + * or Kafka. */ public class ZipkinTwoRouteScribe extends ZipkinTwoRouteTest { @Override protected void setSpanReporter(ZipkinTracer zipkin) { - zipkin.setSpanCollector(new ScribeSpanCollector("127.0.0.1", 9410)); + zipkin.setSpanReporter(AsyncReporter.create(LibthriftSender.create("127.0.0.1"))); } } diff --git a/components/camel-zipkin/src/test/resources/org/apache/camel/zipkin/SpringZipkinSimpleRouteTest.xml b/components/camel-zipkin/src/test/resources/org/apache/camel/zipkin/SpringZipkinSimpleRouteTest.xml index ebbffd7..7257e82 100644 --- a/components/camel-zipkin/src/test/resources/org/apache/camel/zipkin/SpringZipkinSimpleRouteTest.xml +++ b/components/camel-zipkin/src/test/resources/org/apache/camel/zipkin/SpringZipkinSimpleRouteTest.xml @@ -24,13 +24,13 @@ http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd "> - <!-- to use a logger as the collector (for testing) --> - <bean id="logSpanCollector" class="org.apache.camel.zipkin.ZipkinLoggingSpanCollector"/> + <!-- to use a logger as the span reporter (for testing) --> + <bean id="logSpanReporter" class="com.github.kristofa.brave.LoggingReporter"/> <!-- setup zipkin tracer --> <bean id="zipkinTracer" class="org.apache.camel.zipkin.ZipkinTracer"> <property name="serviceName" value="dude"/> - <property name="spanCollector" ref="logSpanCollector"/> + <property name="spanReporter" ref="logSpanReporter"/> </bean> <camelContext xmlns="http://camel.apache.org/schema/spring"> diff --git a/parent/pom.xml b/parent/pom.xml index 4537d98..2ad58fa 100644 --- a/parent/pom.xml +++ b/parent/pom.xml @@ -750,8 +750,8 @@ <yammer-metrics-version>2.2.0</yammer-metrics-version> <zendesk-client-version>0.6.2</zendesk-client-version> <zipkin-libthrift-version>0.9.3</zipkin-libthrift-version> - <zipkin-reporter-version>2.3.1</zipkin-reporter-version> - <zipkin-version>2.4.5</zipkin-version> + <zipkin-reporter-version>2.7.3</zipkin-reporter-version> + <zipkin-version>2.9.3</zipkin-version> <zjsonpatch-version>0.3.0</zjsonpatch-version> <zookeeper-version>3.4.10</zookeeper-version> <zookeeper-guava-version>16.0</zookeeper-guava-version> diff --git a/platforms/karaf/features/src/main/resources/features.xml b/platforms/karaf/features/src/main/resources/features.xml index 6f5f31f..c932b7e 100644 --- a/platforms/karaf/features/src/main/resources/features.xml +++ b/platforms/karaf/features/src/main/resources/features.xml @@ -2483,12 +2483,10 @@ <feature name='camel-zipkin' version='${project.version}' resolver='(obr)' start-level='50'> <feature version='${project.version}'>camel-core</feature> <bundle dependency='true'>mvn:io.zipkin.brave/brave-core/${brave-zipkin-version}</bundle> - <bundle dependency='true'>mvn:io.zipkin.brave/brave-spancollector-scribe/${brave-zipkin-version}</bundle> - <!-- io.zipkin.brave/brave-core depends on both versions of zipkin, io.zipkin.brave/brave does not --> - <bundle dependency='true'>mvn:io.zipkin.java/zipkin/${zipkin-version}</bundle> <bundle dependency='true'>mvn:io.zipkin.zipkin2/zipkin/${zipkin-version}</bundle> <bundle dependency='true'>mvn:io.zipkin.reporter2/zipkin-reporter/${zipkin-reporter-version}</bundle> <bundle dependency='true'>mvn:io.zipkin.reporter2/zipkin-sender-urlconnection/${zipkin-reporter-version}</bundle> + <bundle dependency='true'>mvn:io.zipkin.reporter2/zipkin-sender-libthrift/${zipkin-reporter-version}</bundle> <bundle dependency='true'>mvn:org.apache.thrift/libthrift/${zipkin-libthrift-version}</bundle> <bundle>mvn:org.apache.camel/camel-zipkin/${project.version}</bundle> </feature> diff --git a/platforms/spring-boot/components-starter/camel-zipkin-starter/pom.xml b/platforms/spring-boot/components-starter/camel-zipkin-starter/pom.xml index 5df742c..c36a565 100644 --- a/platforms/spring-boot/components-starter/camel-zipkin-starter/pom.xml +++ b/platforms/spring-boot/components-starter/camel-zipkin-starter/pom.xml @@ -38,6 +38,14 @@ <groupId>org.apache.camel</groupId> <artifactId>camel-zipkin</artifactId> <version>${project.version}</version> + <!--START OF GENERATED CODE--> + <exclusions> + <exclusion> + <groupId>commons-logging</groupId> + <artifactId>commons-logging</artifactId> + </exclusion> + </exclusions> + <!--END OF GENERATED CODE--> </dependency> <!--START OF GENERATED CODE--> <dependency> -- To stop receiving notification emails like this one, please contact acosent...@apache.org.