QueryMetrics
The QueryMetrics operation evaluates a PromQL instant query at a single point
in time, or evaluates a query over a range of time.
- Valid HTTP verbs
-
GET,POST - Valid URIs
-
/api/v1/query— evaluates an instant query at a single point in time./api/v1/query_range— evaluates a query over a range of time.
The full request URL combines the CloudWatch monitoring host for the AWS Region with the
operation path, for example
https://monitoring..
For information about endpoints, signing, and required IAM permissions, see PromQL querying.AWS Region.amazonaws.com/api/v1/query
URL query parameters
The following parameters are passed in the URL query string for GET
requests, or as form-encoded body fields for POST requests.
| Parameter | Applies to | Description |
|---|---|---|
|
Both |
Required. The PromQL expression string to evaluate. The
expression must select a metric by name — for example,
|
|
|
Optional. Evaluation timestamp as an RFC 3339 timestamp or a Unix timestamp. Defaults to the current server time. |
|
|
Required. Start of the time range, as an RFC 3339 timestamp or a Unix timestamp. |
|
|
Required. End of the time range, as an RFC 3339 timestamp or a Unix timestamp. |
|
|
Required. Query resolution step width, in |
|
Both |
Optional. Maximum number of unique time series to return, from
|
Duration
A duration in a Prometheus-compatible API is a number, followed
immediately by one of the following units:
msmillisecondsssecondsmminuteshhoursddays, assuming a day always has 24hwweeks, assuming a week always has 7dyyears, assuming a year always has 365d
Required IAM permissions
To call QueryMetrics, the calling identity must have both of the
following IAM actions:
cloudwatch:GetMetricDatacloudwatch:ListMetrics
For the complete IAM action mapping for all PromQL operations, see IAM permissions for PromQL.
Result limit
A single /api/v1/query or /api/v1/query_range response can
return up to 500 unique time series. To request fewer
results, pass the limit parameter with a value from 1 to
500. If you do not specify limit, CloudWatch returns up to the
maximum.
When the matching series exceed the cap, the response is truncated and a message is
included in the standard Prometheus warnings field. The HTTP status code
remains 200.
For the full list of PromQL limits, including TPS, concurrency, and 24-hour scan windows, see PromQL limits and restrictions.
Sample request
The following POST request passes the PromQL expression in a
form-encoded body. Special characters such as {, }, and
" are percent-encoded.
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)
The same call with 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"})'
Sample response
A successful response uses the standard Prometheus JSON envelope:
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" ] } ] } }
When the result set exceeds the per-call cap, CloudWatch returns a truncated
result array and includes a message in the warnings
field:
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" ] }