Zipkin

通过本任务,您将了解如何使应用程序可被 Zipkin 追踪, 而无需考虑应用程序使用何种开发语言、框架或平台。

本任务使用 Bookinfo 作为示例应用程序。

要了解 Istio 如何处理追踪,请访问此任务的概述

开始之前

  1. 参考 Zipkin 安装文档将 Zipkin 安装到您的集群中。

  2. 启用追踪时,您可以设置 Istio 用于追踪的 Sampling Rate。 安装时使用 meshConfig.defaultConfig.tracing.sampling 设置 Sampling Rate, 默认的 Sampling Rate 为 1%。

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

访问仪表盘

远程访问遥测插件详细介绍了如何通过网关配置对 Istio 插件的访问。

对于测试(或临时访问),您也可以使用端口转发。假设已将 Zipkin 部署到 istio-system 命名空间,请使用以下内容:

  1. $ istioctl dashboard zipkin

使用 Bookinfo 示例产生追踪

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

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

    1. $ for i in $(seq 1 100); do curl -s -o /dev/null "http://$GATEWAY_URL/productpage"; done
  2. 在搜索面板中,点击 + 号,从第一个下拉列表中选择 serviceName, 从第二个下拉列表中选择 productpage.default,再点击搜索图标:

    Tracing Dashboard

    Tracing Dashboard

  3. 点击 ISTIO-INGRESSGATEWAY 的搜索结果,查看与之对应的最新的 /productpage 请求的详细信息:

    Detailed Trace View

    Detailed Trace View

  4. 追踪由一组 Span 组成,其中每个 Span 对应一个 Bookinfo Service,这些服务在执行 /productpage 请求或 Istio 内部组件时被调用,例如:istio-ingressgateway

清理

  1. 使用 Control-C 或删除任何可能仍在运行的 istioctl 进程:

    1. $ killall istioctl
  2. 如果您不打算继续深入探索任何后续任务,请参考 Bookinfo 清理说明,关闭应用程序。