全部产品
Search
文档中心

容器服务 Kubernetes 版 ACK:通过PromQL查询Prometheus监控数据

更新时间:Mar 01, 2024

您可以通过PromQL查询Prometheus监控数据,验证报警规则的正确性和时效性。本文介绍如何通过PromQL查询Prometheus监控数据。

索引

通过控制台获取Prometheus监控数据

通过控制台获取阿里云Prometheus监控数据

  1. 登录ARMS控制台

  2. 在左侧导航栏选择Prometheus监控 > 实例列表,进入可观测监控 Prometheus 版的实例列表页面。

  3. 实例列表页面左上角,选择容器服务K8s集群所在的地域,单击目标实例名称。

  4. 在左侧导航栏,单击大盘列表,在右侧页面,单击对应大盘名称。

  5. 在大盘左侧导航栏,单击大盘图标,在页面顶部选择datasource,然后输入PromQL查询对应的监控数据。

通过控制台获取开源Prometheus监控数据

  1. 执行以下命令,将集群中的Prometheus映射到本地9090端口。

    kubectl port-forward svc/ack-prometheus-operator-prometheus 9090:9090 -n monitoring
  2. 在浏览器输入localhost:9090,在控制台首页通过PromQL查询对应监控数据。

通过API获取Prometheus监控数据

通过API获取阿里云Prometheus监控数据

  1. 登录ARMS控制台
  2. 在左侧导航栏选择Prometheus监控 > 实例列表,进入可观测监控 Prometheus 版的实例列表页面。

  3. 实例列表页面顶部,选择Prometheus实例所在的地域,并在目标集群右侧的操作列,单击设置

  4. 设置页面HTTP API地址(Grafana 读取地址)区域,根据需求复制公网或内网的HTTP API地址。

    pg_pm_settings_tab_agent_settings

  5. 可选:如果您需要提高Grafana数据读取的安全性,可以单击生成token,获取Prometheus实例的鉴权Token。

    重要

    生成Token后,在Grafana中添加数据源时必须配置Token,否则无法读取Prometheus监控数据。

    复制Token

  6. 使用HTTP API调用阿里云Prometheus监控数据。

    调用阿里云Prometheus监控数据的请求示例如下。更多使用HTTP API获取Prometheus监控数据的操作,请参见HTTP API

    GET <HTTP API>/api/v1/query
    
    Accept: application/json
    Content-Type: application/json
    Authorization: <Token>
    
    {
      "query":"arms_prometheus_target_interval_length_seconds_sum",
      "time":"1635302655",
      "timeout":"1000"
    
    }
                            

通过API获取开源Prometheus监控数据

  1. 获取HTTP API地址。

    如果您是在集群内访问开源Prometheus监控,默认ack-prometheus-operator的数据请求Service地址为http://ack-prometheus-operator-prometheus.monitoring:9090。

    如果您使用公网访问开源Prometheus监控,需要为ack-prometheus-operator的数据请求Service绑定SLB。操作如下。

    1. 登录容器服务管理控制台,在左侧导航栏选择集群

    2. 集群列表页面,单击目标集群名称,然后在左侧导航栏,选择网络 > 服务

    3. 服务页面顶部,设置命名空间monitoring,然后在ack-prometheus-operator-prometheus右侧操作列,单击更新

    4. 更新服务对话框,设置类型负载均衡公网访问,在端口映射右侧,单击添加,输入端口名称,设置服务端口9090容器端口9090协议TCP,单击更新

      服务页面ack-prometheus-operator-prometheus右侧外部端点列,获取负载均衡公网IP,即HTTP API地址。

  2. 使用HTTP API调用阿里云Prometheus监控数据。

    • 获取瞬时监控数据。请求参数如下。

      GET {HTTP API}/api/v1/query
      
      Headers:
      Accept: application/json
      Content-Type: application/json
      Param:
      {
        "query":"{{PromQL}}",
        "time":"1635302655",
        "timeout":"1000"
      
      }
      • time:设置查询监控数据的具体时间点。

      • timeout:设置超过这个时间,将直接返回结果。单位:毫秒。

    • 查询某个时间范围的监控数据。

      GET {HTTP API}/api/v1/query_range
      
      Headers:
      Accept: application/json
      Content-Type: application/json
      Param:
      {
        "query":"{{PromQL}}",
        "start": 1673946024,
        "end": 1673949624,
          "step": 30
      }
      • start:设置查询监控数据开始时间。

      • end:设置查询监控数据结束时间。

      • step:返回监控数据时,数据间隔的时间步长。

相关文档