Todos os produtos
Search
Central de documentação

Managed Service for Prometheus:Access Prometheus monitoring data through HTTP API URLs

Última atualização: Oct 21, 2026

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

  • Grafana autogerenciado: Adicione a URL da API HTTP como uma fonte de dados do Prometheus para visualizar métricas em sua própria instância do Grafana.

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

Autenticação

O Managed Service for Prometheus oferece suporte a 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 sua conta; o usuário RAM associado deve ter a permissão AliyunPrometheusMetricReadAccess ou AliyunCloudMonitorFullAccess

Importante

Para o Prometheus V2, o acesso aos dados exige tanto o AccessKey ID quanto o AccessKey secret da sua conta, e o usuário RAM associado deve possuir a AliyunPrometheusMetricReadAccess ou AliyunCloudMonitorFullAccess system permission.

Pré-requisitos

Antes de começar, certifique-se de que você possui:

  • Uma instância do Prometheus conectada. Para instruções de configuração, consulte:

  • (Para Grafana) Uma instância do Grafana autogerenciada com acesso de administrador

  • (Para Prometheus V2) Um par de AccessKeys para sua conta, sendo que o usuário RAM associado deve ter as permissões necessárias

Obtenha a URL da API HTTP

  1. Faça logon 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 sua instância do Prometheus está localizada.

  4. Localize sua 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

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

    • Utilize a URL interna se sua instância do Grafana ou aplicação estiver executando na mesma região do 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

Para uma instância do Prometheus V1, após gerar um token, você deve incluí-lo ao configurar a fonte de dados do Grafana. Sem o token, o Grafana não consegue ler os dados de monitoramento da instância.

Configure uma fonte de dados do Grafana autogerenciada

Adicione a fonte de dados

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

  2. Navegue até 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 sua instância do Prometheus.

Prometheus V1

Caso tenha gerado um token, adicione-o como um 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 a opção Basic auth.

  2. Preencha User com seu AccessKey ID.

  3. Preencha Password com 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 alcançar 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, digite 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 está 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 utilizam 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 placeholders pelos valores reais:

Placeholder

Descrição

Exemplo

&lt;your-http-api-url&gt;

A URL da API HTTP obtida na aba Settings

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

&lt;your-token&gt;

O token de autenticação gerado no console

eyJhbGciOi...

Também é possível chamar a API via Python utilizando 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 em step 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 placeholders pelos valores reais:

Placeholder

Descrição

Exemplo

&lt;your-http-api-url&gt;

A URL da API HTTP obtida na aba Settings

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

&lt;your-accesskey-id&gt;

O AccessKey ID da sua conta

LTAI5tXxx...

&lt;your-accesskey-secret&gt;

O AccessKey secret da sua conta

xXxXxXx...

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

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 sua conta, e substitua a URL da API HTTP em api_url pela URL obtida em Get the HTTP API URL. A API também suporta autenticação STS, caso em que 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

Timeout 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.

Connection timeout

Rede inacessível

Se o Grafana estiver fora do Alibaba Cloud, use a URL pública da API HTTP. Se estiver na mesma região, utilize 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 dos targets e se o nome da métrica está correto.

Tópicos relacionados