使用 Grafana 可视化指标

本任务向您展示如何设置和使用 Istio 仪表盘来监控网格流量。在本任务中,您将使用 Grafana Istio 附加组件和基于 Web 的界面来查看服务网格流量数据。

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
    

    在您的 Web 浏览器中访问 https://127.0.0.1:3000/d/G8wLrJIZk/istio-mesh-dashboard

    Istio 仪表盘将类似于

    Istio Dashboard
    Istio 仪表盘
  4. 向网格发送流量。

    对于 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 Dashboard With Traffic
    带有流量的 Istio 仪表板

    这提供了网格的全局视图以及网格中的服务和工作负载。您可以通过导航到其特定仪表板来获取有关服务和工作负载的更多详细信息,如下所述。

  5. 可视化服务仪表板。

    从 Grafana 仪表板的左上角导航菜单中,您可以导航到 Istio 服务仪表板或在您的网络浏览器中访问 https://127.0.0.1:3000/d/LJ_uJAvmk/istio-service-dashboard

    Istio 服务仪表板看起来类似于

    Istio Service Dashboard
    Istio 服务仪表板

    这提供了有关服务指标的详细信息,然后是客户端工作负载(调用此服务的负载)和服务工作负载(提供此服务的负载)的详细信息。

  6. 可视化工作负载仪表板。

    从 Grafana 仪表板的左上角导航菜单中,您可以导航到 Istio 工作负载仪表板或在您的网络浏览器中访问 https://127.0.0.1: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 清理 指示以关闭应用程序。

这些信息有用吗?
您有什么改进建议吗?

感谢您的反馈!