链路追踪Tracing Analysis为分布式应用的开发者提供了完整的调用链路还原、调用请求量统计、链路拓扑、应用依赖分析等工具。本文介绍了如何在Knative上实现Tracing分布式追踪,以帮助开发者快速分析和诊断Knative中部署的应用服务。

前提条件

操作步骤

  1. 部署Istio。
    请参见部署Istio
    部署时需要关注以下几点:
    • Pilot设置跟踪采样百分比,推荐设置大一些(例如,100),便于数据采样。部署istio
    • 选择启用阿里云链路追踪服务。若未开通,点击立即开通开通链路追踪服务
    • 在链路追踪开通页面,查看token选择为on,客户端采集工具选择zipkin (目前仅支持使用zipkin的/api/v1/spans 接口访问),选择集群所在Region的接入点(推荐使用内网接入地址),以华南1 Region为例如下。启用链路
    • 选择启用链路追踪,设置链路追踪服务地址。设置地址
  2. 执行如下命令,选择命名空间设置如下标签启用Sidecar自动注入istio-injection=enabled
    通过这种方式就注入了Istio的envoy代理(proxy)容器,Istio的envoy代理拦截流量后会主动上报trace系统。以设置default命名空间为例:
    kubectl label namespace default istio-injection=enabled
  3. 部署Knative Service服务。
    请参见部署Serving Hello World应用
    完成后,您可以通过如下命令,访问Hello World示例服务。
    curl -H "Host: helloworld-go.default.example.com" http://112.124.XX.XX
    Hello Knative!
  4. 登录链路追踪服务控制台,选择应用列表,可以查看对应应用的tracing信息。
    应用列表
  5. 选择应用,单击查看应用详情,可以看到服务调用的平均响应时间。
    knative

总结

在Knative中,推荐开启阿里云链路追踪服务。通过Tracing Analysis不仅有助于复杂应用服务之间的问题排查,同时也是Knative的最佳实践方式。