Todos os produtos
Search
Central de documentação

Application Real-Time Monitoring Service:Acesse dados de monitoramento do Prometheus por URLs de API HTTP

Última atualização: Aug 27, 2026

O Managed Service for Prometheus disponibiliza URLs de API HTTP que permitem consultar dados de monitoramento fora do console da Alibaba Cloud. Dois casos de uso comuns:

  • Grafana autogerenciado: adicione a URL da API HTTP como fonte de dados do Prometheus para visualizar métricas na sua instância do Grafana.

  • Aplicações personalizadas: chame a API HTTP compatível com Prometheus diretamente para recuperar métricas programaticamente.

Autenticação

O Managed Service for Prometheus oferece duas versões de instância, cada uma com um método de autenticação diferente.

Versão da instância

Método de autenticação

Credenciais

Prometheus V1

Baseado em token (opcional)

Token de autenticação gerado no console

Prometheus V2

Basic auth (obrigatório)

AccessKey ID e AccessKey secret da conta; o usuário RAM associado deve ter a permissão AliyunPrometheusMetricReadAccess ou AliyunCloudMonitorFullAccess

Importante

No Prometheus V2, o acesso aos dados exige o AccessKey ID e o AccessKey secret da conta. Além disso, o usuário RAM associado deve ter a permissão do sistema AliyunPrometheusMetricReadAccess ou AliyunCloudMonitorFullAccess.

Pré-requisitos

Antes de começar, verifique se você tem:

Obtenha a URL da API HTTP

  1. Faça login no console do CloudMonitor.

  2. No painel de navegação à esquerda, escolha Managed Service for Prometheus > Instances.

  3. Na barra de navegação superior, selecione a região onde a instância do Prometheus está localizada.

  4. Localize a instância do Prometheus e clique em Settings na coluna Actions.

  5. Na aba Settings, copie a URL da API HTTP. HTTP API URL on the Settings tab

    • Use a URL pública se a instância do Grafana ou a aplicação estiver fora da rede interna da Alibaba Cloud.

    • Use a URL interna se a instância do Grafana ou a aplicação estiver na mesma região da Alibaba Cloud e puder acessar endpoints internos.

  6. (Apenas Prometheus V1) Clique em Generate Token para criar um token de autenticação. Salve este token para uso posterior.

Importante

Em instâncias do Prometheus V1, após gerar o token, inclua-o ao configurar a fonte de dados no Grafana. Sem o token, o Grafana não consegue ler os dados de monitoramento da instância.

Configure uma fonte de dados no Grafana autogerenciado

Adicione a fonte de dados

  1. Faça login na instância do Grafana como administrador.

  2. Acesse Connections > Data sources.

    Este menu é visível apenas para administradores do Grafana. No Grafana 8 e versões anteriores, acesse Configuration > Data sources . O menu Connections está disponível no Grafana 9 e versões posteriores.
  3. Clique em + Add data source e selecione Prometheus.

  4. No campo Name, insira um nome descritivo para a fonte de dados.

  5. No campo Prometheus server URL (na seção HTTP), cole a URL da API HTTP copiada anteriormente.

Configure a autenticação

Siga as etapas correspondentes à versão da instância do Prometheus.

Prometheus V1

Se você gerou um token, adicione-o como cabeçalho HTTP personalizado:

  1. Na seção Custom HTTP Headers, clique em + Add header.

  2. Defina Header como Authorization.

  3. Defina Value como o token de autenticação.

Custom HTTP header configuration for Prometheus V1

Prometheus V2

  1. Ative Basic auth.

  2. Defina User como seu AccessKey ID.

  3. Defina Password como seu AccessKey secret.

Basic auth configuration for Prometheus V2

Salve e teste

Clique em Save & test. Uma mensagem de sucesso confirma que o Grafana consegue acessar a fonte de dados do Prometheus.

Verifique a fonte de dados no Grafana

  1. No Grafana, acesse Dashboards e clique em New > New dashboard.

  2. Clique em + Add visualization e selecione a fonte de dados configurada.

  3. Na página Edit Panel, abra a aba Query. Na seção A, insira o nome de uma métrica no campo Metrics (por exemplo, arms_prometheus_target_interval_length_seconds_sum) e configure os Label filters conforme necessário.

  4. Clique em Run queries.

Se um gráfico for renderizado com dados de métricas, a fonte de dados estará funcionando corretamente. Caso nenhum gráfico apareça, verifique se a URL da API ou o token são válidos e se a fonte de dados possui informações de monitoramento. Para obter ajuda adicional, consulte Solução de problemas.

Consulte a API HTTP programaticamente

Os exemplos abaixo usam o endpoint /api/v1/query para consultas instantâneas. Para consultas de intervalo (/api/v1/query_range), metadados de séries e outros endpoints, consulte a referência da API HTTP do Prometheus.

Prometheus V1

curl -G '<your-http-api-url>/api/v1/query' \
  -H 'Authorization: <your-token>' \
  -H 'Accept: application/json' \
  --data-urlencode 'query=arms_prometheus_target_interval_length_seconds_sum' \
  --data-urlencode 'time=1635302655' \
  --data-urlencode 'timeout=1000'

Substitua os seguintes espaços reservados pelos valores reais:

Espaço reservado

Descrição

Exemplo

<your-http-api-url>

A URL da API HTTP obtida na aba Settings

https://cn-hangzhou.arms.aliyuncs.com/...

<your-token>

O token de autenticação gerado no console

eyJhbGciOi...

Também é possível chamar a API via Python usando a biblioteca requests:

import requests

token = "your-token"
api_url = "https://your-prometheus-api-url"

response = requests.get(
    f"{api_url}/api/v1/query",
    params={"query": "up"},
    headers={"Authorization": f"Bearer {token}"}
)

data = response.json()
for result in data["data"]["result"]:
    print(f"Metric: {result['metric']}")
    print(f"Value: {result['value']}")
Nota

Substitua token pelo token de autenticação gerado na etapa 1 e api_url pela sua URL da API HTTP.

Prometheus V2

curl -G '<your-http-api-url>/api/v1/query' \
  -u '<your-accesskey-id>:<your-accesskey-secret>' \
  -H 'Accept: application/json' \
  --data-urlencode 'query=arms_prometheus_target_interval_length_seconds_sum' \
  --data-urlencode 'time=1635302655' \
  --data-urlencode 'timeout=1000'

Substitua os seguintes espaços reservados pelos valores reais:

Espaço reservado

Descrição

Exemplo

<your-http-api-url>

A URL da API HTTP obtida na aba Settings

https://cn-hangzhou.arms.aliyuncs.com/...

<your-accesskey-id>

O AccessKey ID da sua conta

LTAI5tXxx...

<your-accesskey-secret>

O AccessKey secret da sua conta

xXxXxXx...

A flag -u codifica automaticamente o AccessKey ID e o AccessKey secret como um cabeçalho Base64 Authorization: Basic .

Além do curl, você pode chamar a API com a biblioteca Python requests usando Basic Auth:

import requests
import time

# Obtain the HTTP API URL from the console.
api_url = 'http://cn-hangzhou.arms.aliyuncs.com:9090/api/v1/prometheus/{token}/{user_id}/{cluster_id}/{region}'

# Use the AccessKey ID as the username and the AccessKey secret as the password.
ak_id = 'your_access_key_id'
ak_secret = 'your_access_key_secret'

# Query a metric.
resp = requests.get(f'{api_url}/api/v1/query', params={'query': 'up'}, auth=(ak_id, ak_secret))
print(resp.json())

# Range query (the last 1 hour).
end = int(time.time())
start = end - 3600
resp = requests.get(f'{api_url}/api/v1/query_range', params={'query': 'up', 'start': start, 'end': end, 'step': '60s'}, auth=(ak_id, ak_secret))
print(resp.json())
Nota

Substitua ak_id e ak_secret pelo AccessKey ID e AccessKey secret da conta. Substitua também a URL da API HTTP em api_url pela URL obtida em Obtenha a URL da API HTTP. A API também suporta autenticação STS; nesse caso, o formato do segredo é {secret}${STS Token}. Para mais informações, consulte What is STS?.

Parâmetros de consulta

Parâmetro

Obrigatório

Descrição

query

Sim

Expressão PromQL a ser avaliada

time

Não

Timestamp de avaliação (timestamp Unix ou RFC 3339). O padrão é a hora atual do servidor

timeout

Não

Tempo limite de avaliação em milissegundos

Resposta de exemplo

Uma consulta bem-sucedida retorna uma resposta JSON semelhante à seguinte:

{
    "status": "success",
    "data": {
        "resultType": "vector",
        "result": [
            {
                "metric": {
                    "__name__": "arms_prometheus_target_interval_length_seconds_sum",
                    "instance": "localhost:9335",
                    "interval": "15s",
                    "job": "_arms-prom/kubelet/1"
                },
                "value": [
                    1635302655,
                    "146655.24420603***"
                ]
            },
            {
                "metric": {
                    "__name__": "arms_prometheus_target_interval_length_seconds_sum",
                    "instance": "localhost:9335",
                    "interval": "30s",
                    "job": "_arms-prom/kubelet/1"
                },
                "value": [
                    1635302655,
                    "879810.747346***"
                ]
            },
            {
                "metric": {
                    "__name__": "arms_prometheus_target_interval_length_seconds_sum",
                    "instance": "localhost:9335",
                    "interval": "20s",
                    "job": "_arms-prom/kubelet/1"
                },
                "value": [
                    1635302655,
                    "73320.13578499***"
                ]
            }
        ]
    }
}

Solução de problemas

Sintoma

Causa possível

Solução

HTTP 401 Unauthorized

Credenciais inválidas ou ausentes

Verifique o token (V1) ou o par de AccessKeys (V2). Gere novamente se estiverem expirados.

HTTP 403 Forbidden

Permissões insuficientes

Conceda ao usuário RAM a permissão AliyunPrometheusMetricReadAccess ou AliyunCloudMonitorFullAccess.

Tempo limite de conexão

Rede inacessível

Se o Grafana estiver fora da Alibaba Cloud, use a URL pública da API HTTP. Se estiver na mesma região, use a URL interna.

Sem dados no gráfico do Grafana

Nenhum dado ingerido para a métrica consultada

Confirme se a instância do Prometheus está coletando ativamente os alvos e se o nome da métrica está correto.

Tópicos relacionados