Zipkin
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
Follow the Zipkin installation documentation to deploy Zipkin into your cluster.
Deploy the Bookinfo sample application.
Configure Istio for distributed tracing
Configure an extension provider
Install Istio with an extension provider referring to the Zipkin service:
$ cat <<EOF > ./tracing.yaml
apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
spec:
meshConfig:
enableTracing: true
defaultConfig:
tracing: {} # disable legacy MeshConfig tracing options
extensionProviders:
- name: zipkin
zipkin:
service: zipkin.istio-system.svc.cluster.local
port: 9411
EOF
$ istioctl install -f ./tracing.yaml --skip-confirmation
Enable tracing
Enable tracing by applying the following configuration:
$ kubectl apply -f - <<EOF
apiVersion: telemetry.istio.io/v1
kind: Telemetry
metadata:
name: mesh-default
namespace: istio-system
spec:
tracing:
- providers:
- name: zipkin
EOF
Accessing the dashboard
The Remotely Accessing Telemetry Addons task details how to configure access to the Istio addons through a gateway.
For testing (and temporary access), you may also use port-forwarding. Use the following, assuming you’ve deployed Zipkin to the istio-system
namespace:
$ istioctl dashboard zipkin
Generating traces using the Bookinfo sample
When the Bookinfo application is up and running, access
http://$GATEWAY_URL/productpage
one or more times to generate trace information.Para ver los datos de seguimiento, debes enviar solicitudes a tu servicio. El número de solicitudes depende de la tasa de muestreo de Istio y se puede configurar mediante la API de Telemetría. Con la tasa de muestreo predeterminada del 1%, debes enviar al menos 100 solicitudes antes de que el primer seguimiento sea visible. Para enviar 100 solicitudes al servicio
productpage
, usa el siguiente comando:$ for i in $(seq 1 100); do curl -s -o /dev/null "http://$GATEWAY_URL/productpage"; done
From the search panel, click on the plus sign. Select
serviceName
from the first drop-down list,productpage.default
from second drop-down, and then click the search icon:Tracing Dashboard Click on the
ISTIO-INGRESSGATEWAY
search result to see the details corresponding to the latest request to/productpage
:Detailed Trace View The trace is comprised of a set of spans, where each span corresponds to a Bookinfo service, invoked during the execution of a
/productpage
request, or internal Istio component, for example:istio-ingressgateway
.
Cleanup
Remove any
istioctl
processes 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.