CAMEL-9795: camel-zipkin - Reuse existing span for complex eips like multicast.
Project: http://git-wip-us.apache.org/repos/asf/camel/repo Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/22b7b17c Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/22b7b17c Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/22b7b17c Branch: refs/heads/master Commit: 22b7b17cba5cd6f7d4c0859168f80019a73fc91f Parents: d90a3f9 Author: Claus Ibsen <davscl...@apache.org> Authored: Tue Apr 5 10:31:01 2016 +0200 Committer: Claus Ibsen <davscl...@apache.org> Committed: Tue Apr 5 13:20:49 2016 +0200 ---------------------------------------------------------------------- .../zipkin/starter/ZipkinAutoConfiguration.java | 1 + .../starter/ZipkinConfigurationProperties.java | 16 ++++++++++++++++ .../main/java/sample/camel/ClientApplication.java | 6 +++++- .../src/main/resources/application.properties | 4 ++-- .../src/main/java/sample/camel/Service2Route.java | 6 ++++++ 5 files changed, 30 insertions(+), 3 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/22b7b17c/components/camel-zipkin-starter/src/main/java/org/apache/camel/zipkin/starter/ZipkinAutoConfiguration.java ---------------------------------------------------------------------- diff --git a/components/camel-zipkin-starter/src/main/java/org/apache/camel/zipkin/starter/ZipkinAutoConfiguration.java b/components/camel-zipkin-starter/src/main/java/org/apache/camel/zipkin/starter/ZipkinAutoConfiguration.java index 56b2280..e0e8ed7 100644 --- a/components/camel-zipkin-starter/src/main/java/org/apache/camel/zipkin/starter/ZipkinAutoConfiguration.java +++ b/components/camel-zipkin-starter/src/main/java/org/apache/camel/zipkin/starter/ZipkinAutoConfiguration.java @@ -53,6 +53,7 @@ public class ZipkinAutoConfiguration { zipkin.setServerServiceMappings(config.getServerServiceMappings()); } zipkin.setIncludeMessageBody(config.isIncludeMessageBody()); + zipkin.setIncludeMessageBodyStreams(config.isIncludeMessageBodyStreams()); // register the bean into CamelContext zipkin.init(camelContext); http://git-wip-us.apache.org/repos/asf/camel/blob/22b7b17c/components/camel-zipkin-starter/src/main/java/org/apache/camel/zipkin/starter/ZipkinConfigurationProperties.java ---------------------------------------------------------------------- diff --git a/components/camel-zipkin-starter/src/main/java/org/apache/camel/zipkin/starter/ZipkinConfigurationProperties.java b/components/camel-zipkin-starter/src/main/java/org/apache/camel/zipkin/starter/ZipkinConfigurationProperties.java index a342a69..5a45f57 100644 --- a/components/camel-zipkin-starter/src/main/java/org/apache/camel/zipkin/starter/ZipkinConfigurationProperties.java +++ b/components/camel-zipkin-starter/src/main/java/org/apache/camel/zipkin/starter/ZipkinConfigurationProperties.java @@ -49,6 +49,14 @@ public class ZipkinConfigurationProperties { private boolean includeMessageBody; /** + * Whether to include message bodies that are stream based in the zipkin traces. + * + * This is not recommended for production usage, or when having big payloads. + * You can limit the size by configuring camel.springboot.log-debug-max-chars option. + */ + private boolean includeMessageBodyStreams; + + /** * To use a global service name that matches all Camel events */ private String serviceName; @@ -104,6 +112,14 @@ public class ZipkinConfigurationProperties { this.includeMessageBody = includeMessageBody; } + public boolean isIncludeMessageBodyStreams() { + return includeMessageBodyStreams; + } + + public void setIncludeMessageBodyStreams(boolean includeMessageBodyStreams) { + this.includeMessageBodyStreams = includeMessageBodyStreams; + } + public String getServiceName() { return serviceName; } http://git-wip-us.apache.org/repos/asf/camel/blob/22b7b17c/examples/camel-example-zipkin/client/src/main/java/sample/camel/ClientApplication.java ---------------------------------------------------------------------- diff --git a/examples/camel-example-zipkin/client/src/main/java/sample/camel/ClientApplication.java b/examples/camel-example-zipkin/client/src/main/java/sample/camel/ClientApplication.java index e2a0f7f..4b83104 100644 --- a/examples/camel-example-zipkin/client/src/main/java/sample/camel/ClientApplication.java +++ b/examples/camel-example-zipkin/client/src/main/java/sample/camel/ClientApplication.java @@ -31,8 +31,12 @@ public class ClientApplication { zipkin.setHostName("192.168.99.100"); zipkin.setPort(9410); zipkin.addClientServiceMapping("http://localhost:9090/service1", "service1"); + // capture 100% of all the events + zipkin.setRate(1.0f); + // include message bodies in the traces (not recommended for production) + zipkin.setIncludeMessageBodyStreams(true); - // add zipkin to CamelContext + // register zipkin to CamelContext zipkin.init(event.getContext()); } http://git-wip-us.apache.org/repos/asf/camel/blob/22b7b17c/examples/camel-example-zipkin/service1/src/main/resources/application.properties ---------------------------------------------------------------------- diff --git a/examples/camel-example-zipkin/service1/src/main/resources/application.properties b/examples/camel-example-zipkin/service1/src/main/resources/application.properties index 9a5d71c..351d0a3 100644 --- a/examples/camel-example-zipkin/service1/src/main/resources/application.properties +++ b/examples/camel-example-zipkin/service1/src/main/resources/application.properties @@ -27,8 +27,8 @@ camel.zipkin.port=9410 camel.zipkin.server-service-mappings.*=service1 camel.zipkin.client-service-mappings.*=service2 -# include the message body in the zipkin traces -camel.zipkin.include-message-body=true +# include message bodies in the traces (not recommended for production) +camel.zipkin.include-message-body-streams=true # logging to see the zipkin traces logging.level.org.apache.camel.zipkin=debug http://git-wip-us.apache.org/repos/asf/camel/blob/22b7b17c/examples/camel-example-zipkin/service2/src/main/java/sample/camel/Service2Route.java ---------------------------------------------------------------------- diff --git a/examples/camel-example-zipkin/service2/src/main/java/sample/camel/Service2Route.java b/examples/camel-example-zipkin/service2/src/main/java/sample/camel/Service2Route.java index 264f78c..edc5146 100644 --- a/examples/camel-example-zipkin/service2/src/main/java/sample/camel/Service2Route.java +++ b/examples/camel-example-zipkin/service2/src/main/java/sample/camel/Service2Route.java @@ -23,10 +23,16 @@ public class Service2Route extends RouteBuilder { @Override public void configure() throws Exception { + // create zipkin ZipkinTracer zipkin = new ZipkinTracer(); zipkin.setHostName("192.168.99.100"); zipkin.setPort(9410); + // set the service name zipkin.setServiceName("service2"); + // capture 100% of all the events + zipkin.setRate(1.0f); + // include message bodies in the traces (not recommended for production) + zipkin.setIncludeMessageBodyStreams(true); // add zipkin to CamelContext zipkin.init(getContext());