Skywalking 追蹤
Skywalking 追蹤沙盒示範了 Envoy 的請求追蹤功能,使用 Skywalking 作為追蹤提供者。
在此範例中,提供 2 個後端服務
service-1
service-2
還提供了 3 個 Envoy 代理來將請求路由到它們
envoy-front-proxy
(envoy-front-proxy.yaml
)envoy-1
(envoy-1.yaml
)envoy-2
(envoy-2.yaml
)
在這些服務中,只有 Envoy front-proxy
服務在 composition
之外公開,並在 port 10000
上。
對於 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 追蹤器產生的 span 傳播到 Skywalking OAP 叢集。
每個 span 都記錄了上游 API 呼叫的延遲,以及將 span 與其他相關 span 關聯所需的信息(例如,追蹤 ID)。
用於檢視收集的追蹤的 Skywalking Web UI 在 port 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
發出請求
現在向 service-1
發送請求,方法是呼叫 https://127.0.0.1:10000/trace/1。
這將通過 2 個 Envoy 代理路由
front-proxy
envoy-1
$ curl localhost:10000/trace/1
Hello from behind Envoy (service 1)!
步驟 3:向 service-2
發出請求
現在向 service-2
發送請求,方法是呼叫 https://127.0.0.1:10000/trace/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 服務。

從這裡,您可以探索 skywalking 提供的指標和視圖,例如 Topology

您也可以檢視您發出請求的追蹤資訊

另請參閱
- 請求追蹤
深入瞭解如何使用 Envoy 的請求追蹤。
- Envoy 管理員快速入門指南
Envoy 管理介面的快速入門指南。
- Apache SkyWalking
SkyWalking 可觀測性分析平台和應用程式效能管理系統。