Skywalking 追踪

Skywalking 追踪沙盒演示了 Envoy 的 请求跟踪 功能,使用 Skywalking 作为跟踪提供程序。

在此示例中,提供了 2 个后端服务

  • service-1

  • service-2

还提供了 3 个 Envoy 代理来将请求路由到它们

在这些服务中,只有 Envoy front-proxy 服务在端口 10000 上公开在 composition 之外。

对于 service-1,请求根据请求路径 trace/1 路由,如下所示

用户 -> Envoy(envoy-front-proxy) -> Envoy(envoy-1) -> service-1

对于 service-2,请求根据请求路径 trace/2 路由,如下所示

用户 -> Envoy(envoy-front-proxy) -> Envoy(envoy-1) -> Envoy(envoy-2) -> service-2

所有 Envoy 代理都配置为收集请求跟踪,如它们的配置中所示,将 Skywalking 跟踪器生成的跨度传播到 Skywalking OAP 集群。

每个跨度记录上游 API 调用的延迟,以及将跨度与其他相关跨度关联起来所需的信息(例如,跟踪 ID)。

用于查看已收集跟踪的 Skywalking Web UI 可在端口 8080 上访问。

步骤 1:构建沙盒

将目录更改为 Envoy 存储库中的 examples/skywalking

要构建此沙盒示例,并启动示例服务,请运行以下命令

$ pwd
envoy/examples/skywalking
$ docker compose pull
$ docker compose up --build -d
$ docker compose ps
Name                           Command                  State                          Ports
---------------------------------------------------------------------------------------------------------------------------
skywalking_elasticsearch_1       /bin/tini -- /usr/local/bi ... Up (healthy)   9200/tcp, 9300/tcp
skywalking_envoy-1_1             /docker-entrypoint.sh /usr ... Up             10000/tcp
skywalking_envoy-2_1             /docker-entrypoint.sh /usr ... Up             10000/tcp
skywalking_envoy-front-proxy_1   /docker-entrypoint.sh /usr ... Up             0.0.0.0:10000->10000/tcp,:::10000->10000/tcp
skywalking_service-1_1           python3 /code/service.py       Up (healthy)
skywalking_service-2_1           python3 /code/service.py       Up (healthy)
skywalking_skywalking-oap_1      bash docker-entrypoint.sh      Up (healthy)   11800/tcp, 1234/tcp, 12800/tcp
skywalking_skywalking-ui_1       bash docker-entrypoint.sh      Up (healthy)   0.0.0.0:8080->8080/tcp,:::8080->8080/tcp

步骤 2:向 service-1 发出请求

现在,通过调用 https://127.0.0.1:10000/trace/1service-1 发送请求。

这将通过 2 个 Envoy 代理进行路由

  • front-proxy

  • envoy-1

$ curl localhost:10000/trace/1
Hello from behind Envoy (service 1)!

步骤 3:向 service-2 发出请求

现在,通过调用 https://127.0.0.1:10000/trace/2service-2 发送请求。

这将通过所有 3 个 Envoy 代理进行路由

  • front-proxy

  • envoy-1

  • envoy-2

$ curl localhost:10000/trace/2
Hello from behind Envoy (service 2)!

步骤 4:在 Skywalking UI 中查看跟踪

将您的浏览器指向 https://127.0.0.1:8080

您应该看到 Skywalking 仪表板。

您可能需要等待片刻才能添加跟踪,但单击 General Service > Services,您应该看到 Envoy 服务的列表。

../../_images/skywalking-services.png

从这里,您可以探索 Skywalking 提供的指标和视图,例如 Topology

../../_images/skywalking-topology.png

您还可以查看您发出的请求的跟踪信息

../../_images/skywalking-trace.png

另请参阅

请求跟踪

了解有关使用 Envoy 的请求跟踪的更多信息。

Envoy 管理员快速入门指南

Envoy 管理员界面的快速入门指南。

Apache SkyWalking

SkyWalking 可观测性分析平台和应用性能管理系统。