Repository: camel Updated Branches: refs/heads/camel-2.18.x 8965cad85 -> 467ded8f3
Minor improvements to camel-zipkin docs Project: http://git-wip-us.apache.org/repos/asf/camel/repo Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/467ded8f Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/467ded8f Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/467ded8f Branch: refs/heads/camel-2.18.x Commit: 467ded8f388e85df728927d0b0c3f7fb87fb89d4 Parents: 8965cad Author: James Netherton <jamesnether...@gmail.com> Authored: Wed Oct 12 09:22:15 2016 +0100 Committer: Andrea Cosentino <anco...@gmail.com> Committed: Wed Oct 12 11:45:59 2016 +0200 ---------------------------------------------------------------------- .../camel-zipkin/src/main/docs/zipkin.adoc | 72 ++++++++++---------- 1 file changed, 35 insertions(+), 37 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/467ded8f/components/camel-zipkin/src/main/docs/zipkin.adoc ---------------------------------------------------------------------- diff --git a/components/camel-zipkin/src/main/docs/zipkin.adoc b/components/camel-zipkin/src/main/docs/zipkin.adoc index 369517b..b8eaaab 100644 --- a/components/camel-zipkin/src/main/docs/zipkin.adoc +++ b/components/camel-zipkin/src/main/docs/zipkin.adoc @@ -10,7 +10,7 @@ outgoing Camel messages using http://zipkin.io/[zipkin]. Events (span) are captured for incoming and outgoing messages being sent to/from Camel. -This means you need to configure which which Camel endpoints that maps +This means you need to configure which Camel endpoints map to zipkin service names. The mapping can be configured using: @@ -18,20 +18,20 @@ The mapping can be configured using: * route id - A Camel route id * endpoint url - A Camel endpoint url -For both kinds you can use wildcards and regular expressions to match, -which is using the rules from link:intercept.html[Intercept]. +For both kinds you can match using wildcards and regular expressions, +using the rules from link:intercept.html[Intercept]. To match all Camel messages you can use * in the pattern and configure that to the same service name. -If no mapping has been configured then Camel will fallback and use +If no mapping has been configured, Camel will fallback and use endpoint uri's as service names. + -However its recommended to configure service mappings so you can use -human logic names instead of Camel endpoint uris in the names. +However, it's recommended to configure service mappings so you can use +human-readable names instead of Camel endpoint uris in the names. -Camel will auto-configure a ScribeSpanCollector if no SpanCollector -explicit has been configured, and if the hostname and port to the span -collector has been configured as environment variables: +Camel will auto-configure a ScribeSpanCollector if no spanCollector has been +explicitly configured, or if the following SpanCollector hostname and port environment variables +have been configured: * ZIPKIN_COLLECTOR_THRIFT_SERVICE_HOST - The hostname * ZIPKIN_COLLECTOR_THRIFT_SERVICE_PORT - The port number @@ -69,7 +69,7 @@ value is the service name. The pattern uses the rules from link:intercept.html[I messages that matches the pattern. The content is a Set<String> where the key is a pattern. The pattern uses the rules from link:intercept.html[Intercept]. -|includeMessageBody |false |Whether to include the Camel message body in the zipkin traces. +|includeMessageBody |false |Whether to include the Camel message body in the zipkin traces. This is not recommended for production usage, or when having big payloads. You can limit the size by configuring the link:how-do-i-set-the-max-chars-when-debug-logging-messages-in-camel.html[max @@ -92,18 +92,17 @@ To enable camel-zipkin you need to configure first [source,java] -------------------------------------------------------------------------------------------------- ZipkinTracer zipkin = new ZipkinTracer(); -// configure the scribe span collector with the hostname and port for the Zipkin Collector Server +// configure the scribe span collector with the hostname and port for the Zipkin Collector Server zipkin.setSpanCollector(new ScribeSpanCollector("192.168.90.100", 9410); // and then add zipkin to the CamelContext zipkin.init(camelContext); -------------------------------------------------------------------------------------------------- -The configuration about will the trace all incoming and outgoing +The configuration above will trace all incoming and outgoing messages in Camel routes. -To use ZipinTracer in XML all you need to do is to setup scribe an the -zipkin tracer as <bean> and then they are automatic discovered and used -by Camel. +To use ZipkinTracer in XML, all you need to do is to define scribe and +zipkin tracer beans. Camel will automatically discover and use them. [source,xml] --------------------------------------------------------------------------------------------------------- @@ -124,7 +123,7 @@ by Camel. ServiceName +++++++++++ -However if you want to map Camel endpoints to human friendly logical +However, if you want to map Camel endpoints to human friendly logical names, you can add mappings * ServiceName * @@ -138,8 +137,8 @@ zipkin.setServiceName("invoices"); ---------------------------------- This will use the same service name for all incoming and outgoing zipkin -traces. So if your application uses different services, you need to map -them more fine grained into client vs server mappings +traces. If your application uses different services, you should map +them to more finely grained client / server service mappings [[camel-zipkin-ClientandServerServiceMappings]] Client and Server Service Mappings @@ -148,9 +147,9 @@ Client and Server Service Mappings * ClientServiceMappings * ServerServiceMappings -So if your application hosts a service that others can call, you can map -the Camel route endpoint to a server service mapping. For example -support your Camel application has the following route +If your application hosts a service that others can call, you can map +the Camel route endpoint to a server service mapping. For example, +suppose your Camel application has the following route: [source,java] ---------------------------------- @@ -160,7 +159,7 @@ from("activemq:queue:inbox") ---------------------------------- And you want to make that as a server service, you can add the following -mapping +mapping: [source,java] ----------------------------------------------------------------- @@ -168,7 +167,7 @@ zipkin.addServerServiceMapping("activemq:queue:inbox", "orders"); ----------------------------------------------------------------- Then when a message is consumed from that inbox queue, it becomes a -zipkin server event with the service name orders. +zipkin server event with the service name 'orders'. Now suppose that the call to http:someserver/somepath is also a service, which you want to map to a client service name, which can be done as: @@ -181,8 +180,8 @@ zipkin.addClientServiceMapping("http:someserver/somepath", "audit"); Then in the same Camel application you have mapped incoming and outgoing endpoints to different zipkin service names. -You can use wildcards in the service mapping, so to match all outgoing -calls the same HTTP server you can do +You can use wildcards in the service mapping. To match all outgoing +calls to the same HTTP server you can do: ------------------------------------------------------------ zipkin.addClientServiceMapping("http:someserver*", "audit"); @@ -197,11 +196,11 @@ The service name mapping for server occurs using the following rules 1. Is there an exclude pattern that matches the endpoint uri of the from endpoint? If yes then skip. 2. Is there a match in the serviceServiceMapping that matches the -endpoint uri of the from endpoint? If yes the use the found service name +endpoint uri of the from endpoint? If yes, then use the found service name 3. Is there a match in the serviceServiceMapping that matches the route -id of the current route? If yes the use the found service name +id of the current route? If yes, then use the found service name 4. Is there a match in the serviceServiceMapping that matches the -original route id where the exchange started? If yes the use the found +original route id where the exchange started? If yes, then use the found service name 5. No service name was found, the exchange is not traced by zipkin @@ -210,12 +209,12 @@ The service name mapping for client occurs using the following rules 1. Is there an exclude pattern that matches the endpoint uri of the from endpoint? If yes then skip. 2. Is there a match in the clientServiceMapping that matches the -endpoint uri of endpoint where the message is being sent to? If yes the +endpoint uri of endpoint where the message is being sent to? If yes, then use the found service name 3. Is there a match in the clientServiceMapping that matches the route -id of the current route? If yes the use the found service name +id of the current route? If yes, then use the found service name 4. Is there a match in the clientServiceMapping that matches the -original route id where the exchange started? If yes the use the found +original route id where the exchange started? If yes, then use the found service name 5. No service name was found, the exchange is not traced by zipkin @@ -224,10 +223,10 @@ No client or server mappings ++++++++++++++++++++++++++++ If there has been no configuration of client or server service mappings, -then CamelZipkin runs in a fallback mode, where it uses the endpoint +CamelZipkin runs in a fallback mode, and uses endpoint uris as the service name. -So in the example above that would mean the service names would be, as +In the example above, this would mean the service names would be defined as if you add the following code yourself: [source,java] @@ -236,10 +235,9 @@ zipkin.addServerServiceMapping("activemq:queue:inbox", "activemq:queue:inbox"); zipkin.addClientServiceMapping("http:someserver/somepath", "http:someserver/somepath"); --------------------------------------------------------------------------------------- -This is not a recommended approach but gets you up and running quickly -without doing any service name mappings. However when you have multiple -systems across your infrastructure, then you should consider using human -logic service names, that you map to instead of using the camel endpoint +This is not a recommended approach, but gets you up and running quickly +without doing any service name mappings. However, when you have multiple +systems across your infrastructure, then you should consider using human-readable service names, that you map to instead of using the camel endpoint uris. [[camel-zipkin-camel-zipin-starter]]