通过 Prometheus 查询度量指标

本任务介绍如何通过 Prometheus 查询 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.109.160.254   <none>        9090/TCP   4m
    
  2. 向网格发送流量。

    以 Bookinfo 为例,在 web 浏览器中访问 http://$GATEWAY_URL/productpage 或执行如下命令:

    $ curl "http://$GATEWAY_URL/productpage"
    
  3. 打开 Prometheus UI。

    在 Kubernetes 环境中,执行如下命令:

    $ istioctl dashboard prometheus
    

    点击标题中 Prometheus 右侧的 Graph

  4. 执行一个 Prometheus 查询。

    在 web 页面顶部的 “Expression” 对话框中,输入文本:

    istio_requests_total
    

    然后点击 Execute 按钮。

结果类似于:

Prometheus 查询结果
Prometheus 查询结果

您还可以通过选择 Execute 按钮下方的 “图形” 选项卡以图形方式查看查询结果。

Prometheus 查询结果 - Graphical
Prometheus 查询结果 - Graphical

其他查询尝试:

  • 请求 productpage 服务的总次数:

    istio_requests_total{destination_service="productpage.default.svc.cluster.local"}
    
  • 请求 reviews 服务 v3 版本的总次数:

    istio_requests_total{destination_service="reviews.default.svc.cluster.local", destination_version="v3"}
    

    该查询返回所有请求 reviews 服务 v3 版本的当前总次数。

  • 过去 5 分钟 productpage 服务所有实例的请求频次:

    rate(istio_requests_total{destination_service=~"productpage.*", response_code="200"}[5m])
    

关于 Prometheus 插件

Prometheus 插件是预先配置抓取 Istio 端点收集指标的 Prometheus 服务器。它提供了一种持久存储和查询 Istio 指标的机制。

有关查询Prometheus的更多信息,请阅读他们的查询文档

清除

  • 使用 control-C 或以下命令删除可能仍在运行的所有 istioctl 进程:

    $ killall istioctl
    
  • 如果您不打算探索任何后续任务,请参阅 Bookinfo 清理说明 清理说明关闭应用程序。

这些信息有用吗?
Do you have any suggestions for improvement?

Thanks for your feedback!