查询 Prometheus 的指标

此任务说明如何使用 Prometheus 查询 Istio 指标, 作为此任务的一部分,使用基于 Web 的界面进行指标查询。

Bookinfo 示例应用程序在整个任务中用作示例应用程序。

前提条件

安装 Istio 在您的集群中并部署应用程序。

查询 Istio 度量标准

  1. 验证 prometheus 服务是否在您的集群中运行(从 0.8 开始, 默认情况下 prometheus 设置包含在 istio.yamlistio-demo-auth.yaml 中)

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

    $ kubectl -n istio-system get svc prometheus
    NAME         CLUSTER-IP     EXTERNAL-IP   PORT(S)    AGE
    prometheus   10.59.241.54   <none>        9090/TCP   2m
  2. 将流量发送到服务网格。

    对于 Bookinfo 示例,请在 Web 浏览器中访问 http://$GATEWAY_URL/productpage 或发出以下命令:

    $ curl http://$GATEWAY_URL/productpage

    $GATEWAY_URLBookinfo 示例中设置的值。

  3. 打开 Prometheus UI。

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

    $ kubectl -n istio-system port-forward $(kubectl -n istio-system get pod -l app=prometheus -o jsonpath='{.items[0].metadata.name}') 9090:9090 &

    在Web浏览器中访问 http://localhost:9090/graph

  4. 执行 Prometheus 查询。

    在网页顶部的 “Expression” 输入框中,输入文本: istio_request_count , 然后,单击 Execute 按钮。

结果将类似于:

Prometheus 查询结果
Prometheus 查询结果

其他查询尝试:

  • productpage 服务的所有请求的总数:

    istio_request_count{destination_service="productpage.default.svc.cluster.local"}
  • reviews 服务的 v3 的所有请求的总数:

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

    此查询返回 reviews 服务 v3 的所有请求的当前总计数。

  • 过去 5 分钟内对所有 productpage 服务的请求率:

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

关于 Prometheus 的附加组件

Mixer 中内置了 Prometheus 适配器,这一适配器将生成的指标值以端点的形式公开出来;Prometheus 插件则是一个预配置的 Prometheus 服务器,他一方面从上述 Mixer 端点抓取 Istio 指标,另一方面还为 Istio 指标提供了持久化存储和查询的服务。

配置好的 Prometheus 插件会抓取以下三个端点:

  1. istio-mesh (istio-mixer.istio-system:42422): 所有 Mixer 生成的网格指标。
  2. mixer (istio-mixer.istio-system:9093): 所有特定于 Mixer 的指标, 用于监控 Mixer 本身。
  3. envoy (istio-mixer.istio-system:9102): envoy 生成的原始统计数据(并从 statsd 转换为 prometheus )。

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

清理

  • 删除任何可能仍在运行的 kubectl port-forward 进程:

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

See also

本任务展示了如何配置 Istio 进行 TCP 服务的指标收集。

演示如何使用 Istio Mixer 和 Istio sidecar 获取指标和日志,并在不同的服务间进行跟踪。

这一任务讲述如何配置 Istio,进行指标和日志的收集工作。

概要说明 Mixer 的插件架构。

如何进行代理配置将跟踪请求发送给 Zipkin 或 Jaeger。

此任务说明如何设置和使用 Istio 仪表板来监视网格流量。