Apache SkyWalking
完成此任务后,您将了解如何让您的应用程序参与使用 Apache SkyWalking 进行跟踪,无论您使用哪种语言、框架或平台来构建它。
此任务使用 Bookinfo 示例作为示例应用程序。
要了解 Istio 如何处理跟踪,请访问 分布式跟踪概述 部分。
配置跟踪
如果您使用 IstioOperator
CR 安装 Istio,请将以下字段添加到您的配置中
apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
spec:
meshConfig:
defaultProviders:
tracing:
- "skywalking"
enableTracing: true
extensionProviders:
- name: "skywalking"
skywalking:
service: tracing.istio-system.svc.cluster.local
port: 11800
使用此配置,Istio 将安装 SkyWalking Agent 作为默认跟踪器。跟踪数据将发送到 SkyWalking 后端。
在默认配置文件中,采样率为 1%。使用 遥测 API 将其提高到 100%
$ kubectl apply -f - <<EOF
apiVersion: telemetry.istio.io/v1
kind: Telemetry
metadata:
name: mesh-default
namespace: istio-system
spec:
tracing:
- randomSamplingPercentage: 100.00
EOF
部署 SkyWalking 收集器
按照 SkyWalking 安装 文档将 SkyWalking 部署到您的集群中。
部署 Bookinfo 应用程序
部署 Bookinfo 示例应用程序。
访问仪表板
远程访问遥测插件 详细介绍了如何通过网关配置对 Istio 插件的访问。
为了测试(和临时访问),您也可以使用端口转发。假设您已将 SkyWalking 部署到 istio-system
命名空间,请使用以下命令
$ istioctl dashboard skywalking
使用 Bookinfo 示例生成跟踪
当 Bookinfo 应用程序启动并运行后,访问
http://$GATEWAY_URL/productpage
一次或多次以生成跟踪信息。要查看跟踪数据,您必须向您的服务发送请求。请求数量取决于 Istio 的采样率,可以使用 遥测 API 进行配置。使用默认的 1% 采样率,您需要发送至少 100 个请求才能看到第一个跟踪。要向
productpage
服务发送 100 个请求,请使用以下命令$ for i in $(seq 1 100); do curl -s -o /dev/null "http://$GATEWAY_URL/productpage"; done
从“常规服务”面板中,您可以看到服务列表。
服务列表 在主内容中选择“跟踪”选项卡。您可以在左侧边栏中看到跟踪列表,在右侧面板中看到跟踪详细信息
跟踪视图 跟踪由一组跨度组成,每个跨度对应于 Bookinfo 服务,在执行
/productpage
请求期间调用,或内部 Istio 组件,例如:istio-ingressgateway
。
探索 SkyWalking 的官方演示应用程序
在本教程中,我们使用了 Bookinfo 示例应用程序,在这个示例应用程序中,没有安装 SkyWalking 代理到服务中,所有跟踪都是由 sidecar 代理生成的。
如果您想了解更多关于 SkyWalking 的语言代理 的信息,SkyWalking 团队还提供了 一个演示应用程序,它与语言代理集成在一起,您可以拥有更详细的跟踪以及其他语言代理特定功能,例如分析。
清理
使用 Ctrl+C 删除任何可能仍在运行的
istioctl
进程,或者$ killall istioctl
如果您不打算探索任何后续任务,请参考 Bookinfo 清理 指令来关闭应用程序。