After completing this task, you understand how to have your application participate in tracing with Zipkin, regardless of the language, framework, or platform you use to build your application.
This task uses the Bookinfo sample as the example application.
To learn how Istio handles tracing, visit this task’s overview.
Before you begin
To set up Istio, follow the instructions in the Installation guide and then configure:
a) a demo/test environment by setting the
--set values.tracing.provider=zipkininstall options to enable tracing “out of the box”
b) a production environment by referencing an existing Zipkin instance and then setting the
--set values.global.tracer.zipkin.address=<zipkin-collector-service>.<zipkin-collector-namespace>:9411install option.
Deploy the Bookinfo sample application.
Accessing the dashboard
Remotely Accessing Telemetry Addons details how to configure access to the Istio addons through a gateway. Alternatively, to use a Kubernetes ingress, specify the option
--set values.tracing.ingress.enabled=true during install.
For testing (and temporary access), you may also use port-forwarding. Use the following, assuming you’ve deployed Zipkin to the
$ istioctl dashboard zipkin
Generating traces using the Bookinfo sample
When the Bookinfo application is up and running, access
http://$GATEWAY_URL/productpageone or more times to generate trace information.
To see trace data, you must send requests to your service. The number of requests depends on Istio’s sampling rate. You set this rate when you install Istio. The default sampling rate is 1%. You need to send at least 100 requests before the first trace is visible. To send a 100 requests to the
productpageservice, use the following command:
$ for i in `seq 1 100`; do curl -s -o /dev/null http://$GATEWAY_URL/productpage; done
From the top panel, select a service of interest (or ‘all’) from the Service Name drop-down list and click Find Traces:
Click on the most recent trace at the top to see the details corresponding to the latest request to the
The trace is comprised of a set of spans, where each span corresponds to a Bookinfo service, invoked during the execution of a
/productpagerequest, or internal Istio component, for example:
istioctlprocesses that may still be running using control-C or:
$ killall istioctl
If you are not planning to explore any follow-on tasks, refer to the Bookinfo cleanup instructions to shutdown the application.