QueryMetrics
QueryMetrics 操作会在单个时间点评估 PromQL 即时查询,或在一段时间范围内评估查询。
- 有效的 HTTP 动词
-
GET,POST - 有效的 URI
-
/api/v1/query:在单个时间点评估即时查询。/api/v1/query_range:在一段时间范围内评估查询。
完整的请求 URL 由 AWS 区域的 CloudWatch 监控主机与操作路径组合而成,例如 https://monitoring.。有关端点、签名和所需 IAM 权限的信息,请参阅 PromQL 查询。AWS Region.amazonaws.com/api/v1/query
URL 查询参数
以下参数在 GET 请求的 URL 查询字符串中传递,或在 POST 请求中作为表单编码的请求体字段传递。
| 参数 | 适用于 | 说明 |
|---|---|---|
|
二者 |
必需。要评估的 PromQL 表达式字符串。表达式必须按名称选择指标,例如 |
|
|
可选。评估时间戳,格式为 RFC 3339 时间戳或 Unix 时间戳。默认为当前服务器时间。 |
|
|
必需。时间范围的开始时间,格式为 RFC 3339 时间戳或 Unix 时间戳。 |
|
|
必需。时间范围的结束时间,格式为 RFC 3339 时间戳或 Unix 时间戳。 |
|
|
必需。查询解析步长,格式为 |
|
二者 |
可选。要返回的唯一时间序列的数量上限,范围为 |
Duration
与 Prometheus 兼容的 API 中的 duration 是一个数值,后面紧跟以下单位之一:
ms毫秒s秒m分钟h小时d天,假设一天始终是 24 小时w周,假设一周总始终是 7 天y年,假设一年始终是 365 天
所需的 IAM 权限
要调用 QueryMetrics,调用身份必须同时具有以下 IAM 操作:
cloudwatch:GetMetricDatacloudwatch:ListMetrics
有关所有 PromQL 操作的完整 IAM 操作映射,请参阅 PromQL的 IAM 权限。
结果限制
单个 /api/v1/query 或 /api/v1/query_range 响应最多可返回 500 个唯一时间序列。要请求更少的结果,请传递 limit 参数,其值范围为 1 到 500。如果未指定 limit,CloudWatch 会返回数量上限。
如果匹配的系列超出上限,响应会被截断,并在标准的 Prometheus warnings 字段中包含一条消息。HTTP 状态码保持为 200。
有关 PromQL 限制的完整列表,包括 TPS、并发和 24 小时扫描窗口,请参阅 PromQL 限额和限制。
示例请求
以下 POST 请求在表单编码的请求体中传递 PromQL 表达式。{、} 和 " 等特殊字符采用百分比编码。
POST /api/v1/query HTTP/1.1 Host: monitoring.us-east-1.amazonaws.com Content-Type: application/x-www-form-urlencoded Authorization: AUTHPARAMS X-Amz-Date: 20260605T193725Z User-Agent: awscurl/0.36 query=sum(%7B%22http.server.active_requests%22%7D)
使用 awscurl 进行相同的调用:
awscurl --service monitoring --region us-east-1 \ -X POST 'https://monitoring.us-east-1.amazonaws.com/api/v1/query' \ -H 'Content-Type: application/x-www-form-urlencoded' \ -d 'query=sum({"http.server.active_requests"})'
示例响应
成功的响应使用标准的 Prometheus JSON 信封格式:
HTTP/1.1 200 OK x-amzn-RequestId: 12345678-abcd-4442-b8c5-262b45e9b535 Content-Type: application/json { "status": "success", "data": { "resultType": "vector", "result": [ { "metric": {}, "value": [ 1780000000.000, "42" ] } ] } }
如果结果集超出每次调用的上限,CloudWatch 会返回被截断的 result 数组,并在 warnings 字段中包含一条消息:
HTTP/1.1 200 OK Content-Type: application/json { "status": "success", "data": { "resultType": "vector", "result": [ ... up to 500 series ... ] }, "warnings": [ "result truncated to the maximum of 500 series; refine the query or use the limit parameter" ] }