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 個請求才能看到第一個追蹤。若要傳送 100 個請求至
productpage
服務,請使用下列指令$ for i in $(seq 1 100); do curl -s -o /dev/null "http://$GATEWAY_URL/productpage"; done
從「一般服務」面板中,您可以看到服務列表。
服務列表 在主要內容中選取「追蹤」標籤。您可以在左側邊欄中看到追蹤列表,並在右側面板中看到追蹤詳細資料
追蹤檢視 追蹤是由一組 span 組成,其中每個 span 都對應於在執行
/productpage
請求期間所呼叫的 Bookinfo 服務,或內部 Istio 元件,例如:istio-ingressgateway
。
探索 SkyWalking 的官方示範應用程式
在本教學中,我們使用 Bookinfo 範例應用程式,在此範例應用程式中,沒有安裝 SkyWalking agent 到服務中,所有追蹤皆由 sidecar 代理產生。
如果您想進一步探索 SkyWalking 的語言代理,SkyWalking 團隊也提供 示範應用程式,該應用程式已與語言代理整合,您可以獲得更詳細的追蹤以及其他語言代理特定功能,例如分析。
清除
使用 control-C 或
$ killall istioctl
如果您不打算探索任何後續任務,請參閱 Bookinfo 清理 指示來關閉應用程式。