使用 Grafana 可視化指標

此任務說明如何設定和使用 Istio 儀表板來監控網格流量。在此任務中,您將使用 Grafana Istio 附加元件和基於網頁的介面來檢視服務網格流量資料。

整個此任務中,Bookinfo 範例應用程式將作為範例應用程式。

開始之前

檢視 Istio 儀表板

  1. 驗證 prometheus 服務是否在您的叢集中執行。

    在 Kubernetes 環境中,執行下列命令

    $ kubectl -n istio-system get svc prometheus
    NAME         TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)    AGE
    prometheus   ClusterIP   10.100.250.202   <none>        9090/TCP   103s
    
  2. 驗證 Grafana 服務是否在您的叢集中執行。

    在 Kubernetes 環境中,執行下列命令

    $ kubectl -n istio-system get svc grafana
    NAME      TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)    AGE
    grafana   ClusterIP   10.103.244.103   <none>        3000/TCP   2m25s
    
  3. 透過 Grafana UI 開啟 Istio 儀表板。

    在 Kubernetes 環境中,執行下列命令

    $ istioctl dashboard grafana
    

    在您的網頁瀏覽器中訪問 https://#:3000/d/G8wLrJIZk/istio-mesh-dashboard

    Istio 儀表板的外觀會類似於

    Istio Dashboard
    Istio 儀表板
  4. 傳送流量到網格。

    對於 Bookinfo 範例,請在您的網頁瀏覽器中訪問 http://$GATEWAY_URL/productpage,或執行以下命令

    要查看追蹤資料,您必須向您的服務發送請求。請求的數量取決於 Istio 的取樣率,並且可以使用 Telemetry API 進行配置。在預設 1% 的取樣率下,您需要發送至少 100 個請求,才能看到第一個追蹤。要向 productpage 服務發送 100 個請求,請使用以下命令

    $ for i in $(seq 1 100); do curl -s -o /dev/null "http://$GATEWAY_URL/productpage"; done
        

    重新整理頁面幾次(或多次執行該命令)以產生少量流量。

    再次查看 Istio 儀表板。它應該會反映產生的流量。它會看起來類似於

    Istio Dashboard With Traffic
    帶有流量的 Istio 儀表板

    這提供了網格的全局視圖,以及網格中的服務和工作負載。您可以透過導航到其特定的儀表板來取得有關服務和工作負載的更多詳細資訊,如下所述。

  5. 視覺化服務儀表板。

    從 Grafana 儀表板左上角的導覽選單中,您可以導航到 Istio 服務儀表板,或在您的網頁瀏覽器中訪問 https://#:3000/d/LJ_uJAvmk/istio-service-dashboard

    Istio 服務儀表板的外觀會類似於

    Istio Service Dashboard
    Istio 服務儀表板

    這提供了有關服務指標的詳細資訊,以及該服務的客戶端工作負載(呼叫此服務的工作負載)和服務工作負載(提供此服務的工作負載)。

  6. 視覺化工作負載儀表板。

    從 Grafana 儀表板左上角的導覽選單中,您可以導航到 Istio 工作負載儀表板,或在您的網頁瀏覽器中訪問 https://#:3000/d/UbsSZTDik/istio-workload-dashboard

    Istio 工作負載儀表板的外觀會類似於

    Istio Workload Dashboard
    Istio 工作負載儀表板

    這提供了有關每個工作負載指標的詳細資訊,以及該工作負載的入站工作負載(向此工作負載發送請求的工作負載)和出站服務(此工作負載向其發送請求的服務)。

關於 Grafana 儀表板

Istio 儀表板包含三個主要部分

  1. 網格摘要視圖。此部分提供網格的全局摘要視圖,並顯示網格中的 HTTP/gRPC 和 TCP 工作負載。

  2. 個別服務視圖。此部分提供網格中每個個別服務的請求和回應指標(HTTP/gRPC 和 TCP)。這也提供了有關此服務的客戶端和服務工作負載的指標。

  3. 個別工作負載視圖:此部分提供網格中每個個別工作負載的請求和回應指標(HTTP/gRPC 和 TCP)。這也提供了有關此工作負載的入站工作負載和出站服務的指標。

有關如何建立、配置和編輯儀表板的更多資訊,請參閱 Grafana 文件

清除

  • 移除任何可能正在執行的 kubectl port-forward 程序

    $ killall kubectl
    
  • 如果您不打算探索任何後續任務,請參考 Bookinfo 清理 指示以關閉應用程式。

這些資訊對您有幫助嗎?
您有任何改進建議嗎?

感謝您的回饋!