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 範例產生追蹤

  1. 當 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
        
  2. 從「一般服務」面板中,您可以看到服務列表。

    Service List
    服務列表
  3. 在主要內容中選取「追蹤」標籤。您可以在左側邊欄中看到追蹤列表,並在右側面板中看到追蹤詳細資料

    Trace View
    追蹤檢視
  4. 追蹤是由一組 span 組成,其中每個 span 都對應於在執行 /productpage 請求期間所呼叫的 Bookinfo 服務,或內部 Istio 元件,例如:istio-ingressgateway

探索 SkyWalking 的官方示範應用程式

在本教學中,我們使用 Bookinfo 範例應用程式,在此範例應用程式中,沒有安裝 SkyWalking agent 到服務中,所有追蹤皆由 sidecar 代理產生。

如果您想進一步探索 SkyWalking 的語言代理,SkyWalking 團隊也提供 示範應用程式,該應用程式已與語言代理整合,您可以獲得更詳細的追蹤以及其他語言代理特定功能,例如分析。

清除

  1. 使用 control-C 或

    $ killall istioctl
    
  2. 如果您不打算探索任何後續任務,請參閱 Bookinfo 清理 指示來關閉應用程式。

此資訊是否有用?
您有任何改進建議嗎?

感謝您的回饋!