== Zipkin Example

=== Introduction

This example shows how to use Camel with Zipkin to trace/timing all
incoming and outgoing Camel messages.

The example requires a running Zipkin Server.

The example includes three sub maven modules that implement

* client
* service1
* service2

Where client -> service1 -> service2 using HTTP.

=== Configuration

This example assumes you will run Zipkin on the same host using the
default collector port of 9410. If you wish to change those, you can do
so using these files:

Service1 is configured in the
`+src/main/resources/application.properties+` properties file. Service2
is configured in the `+src/main/java/sample/camel/Service2Route.java+`
source file. Client is configured in the
`+src/main/java/sample/camel/ClientApplication.java+` source file.

=== Build

First, start Zipkin as described below in the
link:%22Installing%20Zipkin%20Server%22[Installing Zipkin Server]
section

Then compile this example:

[source,sh]
----
$ mvn compile
----

=== Run the example

Then using three different shells and run service1 and service2 before
the client.

[source,sh]
----
$ cd service1
$ mvn compile spring-boot:run
----

When service1 is ready then start service2

[source,sh]
----
$ cd service2
$ mvn compile camel:run
----

And then start the client that calls service1 every 30th seconds.

[source,sh]
----
$ cd client
$ mvn compile camel:run
----

=== Zipkin UI

You should be able to visualize the traces and timings from this example
using the Zipkin UI. The services are named `+service1+` and
`+service2+`.

In the screen shot below we are showing a trace of a client calling
service1 and service2.

image:images/zipkin-web-console-1.png[Zipkin UI Trace
Details,title="Detail of a trace"]

You can then click on each span and get annotated data from the Camel
exchange and about the requests as shown:

image:images/zipkin-web-console-2.png[Zipkin UI Span
Details,title="Detail of the span"]

=== Installing Zipkin Server

The quickest way to get Zipkin started is to fetch the
https://search.maven.org/remote_content?g=io.zipkin&a=zipkin-server&v=LATEST&c=exec[latest
released server] as a self-contained executable jar.

[source,bash]
----
curl -sSL https://zipkin.io/quickstart.sh | bash -s
----

.. and then run it

[source,bash]
----
java -jar zipkin.jar
----

Finally, browse to http://localhost:9411 to find traces!

=== Installing Zipkin Server using Docker

If you want to try Zipkin locally then you quickly try that using
Docker.

There is a https://zipkin.io/pages/quickstart.html[quickstart guide at
zipkin] that has further instructions. Remember to configure the IP
address and port number in the `+application.properties+` file.

You can find the IP using `+docker-machine ls+`

=== Help and contributions

If you hit any problem using Camel or have some feedback, then please
https://camel.apache.org/support.html[let us know].

We also love contributors, so
https://camel.apache.org/contributing.html[get involved] :-)

The Camel riders!
