可通过PromQL(Prometheus Query Language)查询Prometheus监控数据,以验证报警规则的正确性和时效性。
通过控制台查询Prometheus监控数据
阿里云Prometheus
关于如何部署和使用阿里云Prometheus监控,请参见使用阿里云Prometheus监控。
- 登录ARMS控制台。 
- 在左侧导航栏选择。 
- 在Prometheus监控页面左上角,选择容器服务K8s集群所在的地域,单击目标实例的grafana工作区所在列的共享版。 
- 在大盘左侧导航栏,单击  图标,然后在左上角的Explore右侧下拉列表选择对应的数据源。 图标,然后在左上角的Explore右侧下拉列表选择对应的数据源。
- 在Metric右侧文本框输入PromQL查询语句,然后单击Run query。 
开源Prometheus
关于如何基于ACK集群部署开源Prometheus监控,请参见开源Prometheus监控。
- 登录容器服务管理控制台,在左侧导航栏选择集群列表。 
- 在集群列表页面,单击目标集群名称,然后在左侧导航栏,选择。 
- 在服务页面选择ack-prometheus-operator部署的命名空间(默认为monitoring),单击ack-prometheus-operator-prometheus操作列下的更新。 
- 在对话框中,选择负载均衡(LoadBalancer)作为服务类型。选择新建资源,将访问方式配置为公网访问;计费方式配置为按量计费(PayByCLCU),按照页面提示提交配置的修改。 - 关于CLB的计费说明,请参见CLB计费概述。 
- 更新完成后,复制其外部IP地址,然后在浏览器中通过 - IP地址:端口号(如- 47.XX.XX.12:9090)访问Prometheus。
- 在Prometheus控制台,单击Graph页签,然后在文本框输入PromQL查询语句,单击Execute。 
通过API查询Prometheus监控数据
阿里云Prometheus
- 登录ARMS控制台。 
- 在左侧导航栏选择,进入可观测监控 Prometheus 版的实例列表页面。 
- 在实例列表页面顶部,选择Prometheus实例所在的地域,并在目标集群右侧的操作列,单击设置。 
- 在设置页面HTTP API地址(Grafana 读取地址)区域,根据需求复制公网或内网的HTTP API地址。 
- 可选(仅适用于V1版本实例):如果您需要提高V1版本Prometheus实例的Grafana数据读取的安全性,可以单击生成token,获取Prometheus实例的鉴权Token。 重要- V1版本:生成Token后,在Grafana中添加数据源时必须配置Token,否则无法读取Prometheus的监控数据。 
- V2版本:默认必须使用账号的AcessKey和SecretKey才能访问数据,且AcessKey 所属的RAM 用户需拥有AliyunPrometheusMetricReadAccess 或 AliyunCloudMonitorFullAccess 系统角色权限。 
 
- 使用HTTP API调用阿里云Prometheus监控数据。 - 调用阿里云Prometheus监控数据的请求示例如下。更多使用HTTP API获取Prometheus监控数据的操作,请参见HTTP API。 - V1版本- 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" }- V2版本- GET {HTTP API}/api/v1/query Accept: application/json Content-Type: application/json Authorization: Basic <base64Encode(<accessKey:secretKey>)> { "query":"arms_prometheus_target_interval_length_seconds_sum", "time":"1635302655", "timeout":"1000" }
开源Prometheus
- 获取HTTP API地址。 - 如果您是在集群内访问开源Prometheus监控,默认ack-prometheus-operator的数据请求Service地址为 - http://ack-prometheus-operator-prometheus.monitoring:9090。- 如果您使用公网访问开源Prometheus监控,需要为ack-prometheus-operator的数据请求Service绑定SLB。操作如下。 - 登录容器服务管理控制台,在左侧导航栏选择集群列表。 
- 在集群列表页面,单击目标集群名称,然后在左侧导航栏,选择。 
- 在服务页面顶部,设置命名空间为monitoring,然后在ack-prometheus-operator-prometheus右侧操作列,单击更新。 
- 在更新服务对话框,设置如下参数后单击更新。 - 配置项 - 配置 - 服务类型 - 设置服务类型为负载均衡(LoadBalancer),并设置访问方式公网访问。 - 端口映射 - 输入端口名称,设置服务端口为9090,容器端口为9090,协议为TCP 
- 在服务页面单击ack-prometheus-operator-prometheus服务,在基本信息表格获取外部 IP 地址(External IP),即HTTP API地址。 
 
- 使用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:返回监控数据时,数据间隔的时间步长。 
 
 
相关文档
如需了解如何使用自定义PromQL来创建告警规则,请参见使用Prometheus配置报警规则的最佳实践。