istio.io/content/zh/docs/tasks/observability/distributed-tracing/skywalking/index.md

4.0 KiB
Raw Permalink Blame History

title description weight keywords owner test
Apache SkyWalking 学习如何配置代理将链路追踪请求发送到 Apache SkyWalking。 10
telemetry
tracing
skywalking
span
port-forwarding
istio/wg-policies-and-telemetry-maintainers yes

完成本任务之后,您将明白如何使用 Apache SkyWalking 追踪应用,这与用于构建应用的语言、框架或平台无关。

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

若要学习 Istio 如何处理跟踪,请查阅分布式链路追踪概述一节。

配置链路追踪

如果您使用了 IstioOperator CR 来安装 Istio请将以下字段添加到您的配置

{{< text yaml >}} 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 {{< /text >}}

采用此配置来安装 Istio 时,将使用 SkyWalking Agent 作为默认的追踪器, 链路数据会被发送到 SkyWalking 后端。

在默认的配置文件中,采样率为 1% 使用 Telemetry API 将其提高到 100%

{{< text bash >}} $ kubectl apply -f - <<EOF apiVersion: telemetry.istio.io/v1 kind: Telemetry metadata: name: mesh-default namespace: istio-system spec: tracing:

  • randomSamplingPercentage: 100.00 EOF {{< /text >}}

部署 SkyWalking 采集器

遵循 SkyWalking 安装文档将 SkyWalking 部署到集群中。

部署 Bookinfo 应用

部署 Bookinfo 示例应用。

访问仪表板

远程访问遥测插件详细说明了如何配置通过 Gateway 访问 Istio 插件。

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

{{< text bash >}} $ istioctl dashboard skywalking {{< /text >}}

使用 Bookinfo 示例生成链路

  1. 当 Bookinfo 应用启动且运行时,访问一次或多次 http://$GATEWAY_URL/productpage 以生成链路信息:

    {{< boilerplate trace-generation >}}

  2. 从 "General Service" 面板中,您可以看到服务列表:

    {{< image link="./istio-service-list-skywalking.png" caption="Service List" >}}

  3. 在主要内容中选择 Trace 页签。您可以在左侧栏中看到链路列表,在右面板中看到链路详情:

    {{< image link="./istio-tracing-list-skywalking.png" caption="Trace View" >}}

  4. 链路由一组 span 组成,每个 span 对应在执行 /productpage 期间调用的一个 Bookinfo 服务, 或对应 istio-ingressgateway 这种内部 Istio 组件。

探索 SkyWalking 官方的演示应用

在本教程中,我们使用 Bookinfo 示例应用。 在这个示例应用中,没有安装到服务的 SkyWalking 代理,所有链路均由 Sidecar 代理生成。

如果您想探索有关 SkyWalking 语言代理的更多信息, SkyWalking 团队也提供了集成语言代理的演示应用 您可以从中了解到更详细的链路以及其他语言代理特定的特性,例如配置文件分析。

清理

  1. 使用 Ctrl-C 或以下命令移除可能仍在运行的所有 istioctl 进程:

    {{< text bash >}} $ killall istioctl {{< /text >}}

  2. 如果您未计划探索后续的任务,请参阅 Bookinfo 清理指示说明, 以关闭该应用。