使用 Grafana 可视化指标
本任务向您展示如何设置和使用 Istio 仪表盘来监控网格流量。在本任务中,您将使用 Grafana Istio 附加组件和基于 Web 的界面来查看服务网格流量数据。
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
在您的 Web 浏览器中访问 https://127.0.0.1:3000/d/G8wLrJIZk/istio-mesh-dashboard。
Istio 仪表盘将类似于
Istio 仪表盘 向网格发送流量。
对于 Bookinfo 示例,在您的 Web 浏览器中访问
http://$GATEWAY_URL/productpage
或发出以下命令要查看跟踪数据,您必须向您的服务发送请求。请求数量取决于 Istio 的采样率,可以使用 遥测 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://127.0.0.1:3000/d/LJ_uJAvmk/istio-service-dashboard。
Istio 服务仪表板看起来类似于
Istio 服务仪表板 这提供了有关服务指标的详细信息,然后是客户端工作负载(调用此服务的负载)和服务工作负载(提供此服务的负载)的详细信息。
可视化工作负载仪表板。
从 Grafana 仪表板的左上角导航菜单中,您可以导航到 Istio 工作负载仪表板或在您的网络浏览器中访问 https://127.0.0.1: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 清理 指示以关闭应用程序。