使用 Grafana 可視化指標
此任務說明如何設定和使用 Istio 儀表板來監控網格流量。在此任務中,您將使用 Grafana Istio 附加元件和基於網頁的介面來檢視服務網格流量資料。
整個此任務中,Bookinfo 範例應用程式將作為範例應用程式。
開始之前
- 在您的叢集中安裝 Istio。
- 安裝Grafana 附加元件。
- 安裝Prometheus 附加元件。
- 部署Bookinfo 應用程式。
檢視 Istio 儀表板
驗證
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
驗證 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
透過 Grafana UI 開啟 Istio 儀表板。
在 Kubernetes 環境中,執行下列命令
$ istioctl dashboard grafana
在您的網頁瀏覽器中訪問 https://#:3000/d/G8wLrJIZk/istio-mesh-dashboard。
Istio 儀表板的外觀會類似於
Istio 儀表板 傳送流量到網格。
對於 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 儀表板 這提供了網格的全局視圖,以及網格中的服務和工作負載。您可以透過導航到其特定的儀表板來取得有關服務和工作負載的更多詳細資訊,如下所述。
視覺化服務儀表板。
從 Grafana 儀表板左上角的導覽選單中,您可以導航到 Istio 服務儀表板,或在您的網頁瀏覽器中訪問 https://#:3000/d/LJ_uJAvmk/istio-service-dashboard。
Istio 服務儀表板的外觀會類似於
Istio 服務儀表板 這提供了有關服務指標的詳細資訊,以及該服務的客戶端工作負載(呼叫此服務的工作負載)和服務工作負載(提供此服務的工作負載)。
視覺化工作負載儀表板。
從 Grafana 儀表板左上角的導覽選單中,您可以導航到 Istio 工作負載儀表板,或在您的網頁瀏覽器中訪問 https://#:3000/d/UbsSZTDik/istio-workload-dashboard。
Istio 工作負載儀表板的外觀會類似於
Istio 工作負載儀表板 這提供了有關每個工作負載指標的詳細資訊,以及該工作負載的入站工作負載(向此工作負載發送請求的工作負載)和出站服務(此工作負載向其發送請求的服務)。
關於 Grafana 儀表板
Istio 儀表板包含三個主要部分
網格摘要視圖。此部分提供網格的全局摘要視圖,並顯示網格中的 HTTP/gRPC 和 TCP 工作負載。
個別服務視圖。此部分提供網格中每個個別服務的請求和回應指標(HTTP/gRPC 和 TCP)。這也提供了有關此服務的客戶端和服務工作負載的指標。
個別工作負載視圖:此部分提供網格中每個個別工作負載的請求和回應指標(HTTP/gRPC 和 TCP)。這也提供了有關此工作負載的入站工作負載和出站服務的指標。
有關如何建立、配置和編輯儀表板的更多資訊,請參閱 Grafana 文件。
清除
移除任何可能正在執行的
kubectl port-forward
程序$ killall kubectl
如果您不打算探索任何後續任務,請參考 Bookinfo 清理 指示以關閉應用程式。