View a markdown version of this page

QueryMetrics - Amazon CloudWatch

QueryMetrics

A operação QueryMetrics avalia uma consulta instantânea do PromQL em um único momento ou em um intervalo de tempo.

Verbos HTTP válidos:

GET, POST

URIs válidos

/api/v1/query: avalia uma consulta instantânea em um único momento.

/api/v1/query_range: avalia uma consulta em um intervalo de tempo.

O URL completo da solicitação combina o host de monitoramento do CloudWatch para a região da AWS com o caminho da operação, por exemplo https://monitoring.AWS Region.amazonaws.com/api/v1/query. Para obter mais informações sobre endpoints, assinaturas e as permissões necessárias do IAM, consulte Consultas do PromQL.

Parâmetros da consulta de URL

Os parâmetros a seguir são transmitidos na string de consulta de URL para solicitações GET ou como campos de corpo codificados em formulário para solicitações POST.

Parâmetro Aplica-se a Descrição

query

Ambos

Obrigatório. A string da expressão PromQL a ser avaliada. A expressão deve selecionar uma métrica pelo nome — por exemplo, {"http.server.active_requests"} ou {__name__="http.server.active_requests"}. A seleção de séries somente por rótulos, sem um nome de métrica, não é suportada.

time

/api/v1/query

Opcional. Carimbo de data e hora de avaliação como carimbo de data e hora RFC 3339 ou Unix. O padrão é a hora atual do servidor.

start

/api/v1/query_range

Obrigatório. Início do intervalo de tempo, como um carimbo de data e hora RFC 3339 ou Unix.

end

/api/v1/query_range

Obrigatório. Fim do intervalo de tempo, como um carimbo de data e hora RFC 3339 ou Unix.

step

/api/v1/query_range

Obrigatório. Largura da etapa de resolução da consulta em formato duration ou como número de segundos em ponto flutuante.

limit

Ambos

Opcional. Número máximo de séries temporais exclusivas a serem retornadas, de 1 a 500. Caso você não especifique limit, o CloudWatch retornará até o máximo (500). Consulte Limite de resultados.

Duração

A duration em uma API compatível com o Prometheus é um número, seguido imediatamente por uma das seguintes unidades:

  • ms milissegundos

  • s segundos

  • m minutos

  • h horas

  • d dias, supondo que um dia sempre tenha 24h

  • w semanas, supondo que uma semana sempre tenha 7 dias

  • y anos, supondo que um ano sempre tenha 365 dias

Permissões obrigatórias do IAM

Para chamar QueryMetrics, a identidade de chamada deve ter as duas ações do IAM a seguir:

  • cloudwatch:GetMetricData

  • cloudwatch:ListMetrics

Para obter o mapeamento completo das ações do IAM para todas as operações do PromQL, consulte Permissões do IAM para o PromQL.

Limite de resultados

Uma única resposta /api/v1/query ou /api/v1/query_range pode retornar até 500 séries temporais exclusivas. Para solicitar menos resultados, passe o parâmetro limit com um valor de 1 para 500. Caso você não especifique limit, o CloudWatch retornará até o máximo.

Quando as séries correspondentes excedem o limite, a resposta é truncada e uma mensagem é incluída no campo warnings padrão do Prometheus. O código de status do HTTP permanece em 200.

Para obter a lista completa dos limites do PromQL, incluindo TPS, simultaneidade e janelas de verificação de 24 horas, consulte Limites e restrições do PromQL.

Exemplo de solicitação

A solicitação POST a seguir passa a expressão PromQL em um corpo codificado em formulário. Caracteres especiais como {, } e " são codificados por porcentagem.

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)

A mesma chamada com 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"})'

Exemplo de resposta

Uma resposta bem-sucedida usa o envelope JSON padrão do Prometheus:

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" ] } ] } }

Quando o conjunto de resultados excede o limite por chamada, o CloudWatch retorna uma matriz result truncada e inclui uma mensagem no campo 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" ] }