Zipkin

要了解 Istio 如何处理追踪,请查看这个任务的概述

开始之前

  1. 按照安装指南中的说明安装 Istio。

使用如下的 Helm 安装选项以启用追踪,选项选择 zipkin 作为追踪提供者: * --set tracing.enabled=true * --set tracing.provider=zipkin

  1. 部署 Bookinfo 示例应用程序。

访问仪表盘

  1. 要配置到追踪仪表盘的访问,请使用端口转发:

    $ kubectl -n istio-system port-forward $(kubectl -n istio-system get pod -l app=istio-ingressgateway -o jsonpath='{.items[0].metadata.name}') 15032:15032 &
    

    打开浏览器访问 http://localhost:15032

  2. 要使用 Kubernetes ingress,请指定 Helm chart 选项 --set tracing.ingress.enabled=true

使用 Bookinfo 示例产生追踪

  1. 当 Bookinfo 应用程序启动并运行时,访问 http://$GATEWAY_URL/productpage 一次或多次以生成追踪信息。

    要查看追踪数据,您必须向您的服务发送请求。请求的数量取决于 Istio 的采样率。 您在安装 Istio 时设置过这个采样速率参数,默认采样率为 1%。 在第一个追踪可见之前,您需要发送至少 100 个请求。 要向 productpage 服务发送 100 个请求,请使用以下命令:

    $ for i in `seq 1 100`; do curl -s -o /dev/null http://$GATEWAY_URL/productpage; done
    
  2. 从顶部面板的 Service Name 下拉列表中选择一个感兴趣的 service (或 ‘all’),并点击 Find Traces

追踪仪表盘
追踪仪表盘
  1. 点击位于最上面的最近一次追踪,查看对应最近一次访问 /productpage 的详细信息:

    latest request to the /productpage:

    详细追踪视图
    详细追踪视图
  2. 追踪信息由一组 span 组成,每个 span 对应一个 Bookinfo service。这些 service 在执行 /productpage 请求时被调用,或是 Istio 内部组件,例如:istio-ingressgatewayistio-mixer,、istio-policy

清理

  1. 停止任何可能还在运行的 kubectl port-forward 进程:

    $ killall kubectl
    
  2. 如果您没有计划探索任何接下来的任务,请参考 Bookinfo 清理中的说明,关闭整个应用程序。