O Managed Service for Prometheus oferece uma interface padrão de leitura remota que permite consultar, em uma instância Prometheus autogerenciada, os dados de monitoramento armazenados no Managed Service for Prometheus.
O modo Remote Read do Prometheus transfere um grande volume de dados brutos de séries temporais para o mecanismo local do Prometheus para processamento. Essa abordagem apresenta diversas limitações de uso. Por isso, recomendamos utilizar diretamente o protocolo de consulta da API HTTP fornecido pelo Managed Service for Prometheus.
O Managed Service for Prometheus disponibiliza uma API de consulta completa e compatível com o Prometheus. O servidor processa as consultas e retorna apenas os resultados finais, garantindo desempenho muito superior ao do Remote Read. Essa API permite enviar consultas diretamente via HTTP e integrar ferramentas como o Grafana sem precisar de um mecanismo local do Prometheus. Para mais detalhes sobre a configuração, consulte Connect Grafana or self-managed applications to Prometheus data by using an HTTP API endpoint.
As principais limitações da abordagem Remote Read incluem:
Custos elevados de infraestrutura para manter um mecanismo de computação local do Prometheus.
Alta latência de ponta a ponta, pois cada consulta exige a transferência de grandes volumes de dados brutos pela rede.
service limits restritos, facilmente excedidos durante consultas a grandes conjuntos de dados.
Limitações
A interface de leitura remota não oferece suporte a HTTP/2.
Pré-requisitos
Crie uma instância do Managed Service for Prometheus. Para mais informações, consulte Create an instance.
(Opcional) Etapa 1: Conceder permissões de leitura e gravação do CMS a um usuário RAM
Se você criou a instância Prometheus com a conta principal da Alibaba Cloud e deseja usar as credenciais de um usuário RAM (AccessKey ID e AccessKey Secret) para leitura e gravação remotas, conceda primeiro as permissões de leitura e gravação no CloudMonitor a esse usuário RAM.
Faça login no console RAM com sua conta principal da Alibaba Cloud ou como administrador do RAM. No painel de navegação à esquerda, escolha .
-
Na página Authorization, clique em Create Authorization. Na página Create Authorization, configure os parâmetros conforme descrito na tabela a seguir.
Parâmetro
Descrição
Resource Scope
Selecione o escopo de recursos adequado às suas necessidades.
Principal
Escolha o usuário RAM que receberá as permissões.
Policy
Adicione uma das seguintes permissões ao usuário RAM, conforme necessário:
-
AliyunCloudMonitorFullAccess: concede acesso total ao CloudMonitor. O usuário RAM pode visualizar, editar, excluir e executar todas as demais operações nas instâncias de todos os subprodutos. -
AliyunCloudMonitorReadOnlyAccess: concede acesso somente leitura ao CloudMonitor. O usuário RAM pode visualizar informações das instâncias de todos os subprodutos, mas não pode modificá-las nem excluí-las.
-
Clique em OK e, em seguida, clique em Close.
Etapa 2: Obter o endereço de leitura remota
Faça login no console do Cloud Monitor. No painel de navegação à esquerda, escolha . A página Instances será exibida.
Na barra de navegação superior, selecione a região onde a instância está localizada. Localize a instância desejada e clique em Actions na coluna Settings.
-
Na aba Settings, copie o endereço de leitura remota da rede pública ou da rede privada, conforme sua necessidade.
O endereço de rede pública segue o formato
http://cn-{region}.arms.aliyuncs.com:9090/api/v1/prometheus/{token}. O endereço de rede privada utiliza o formatohttp://cn-{region}-intranet.arms.aliyuncs.com:9090/api/v1/prometheus/{token}. Cada URL inclui um token de autenticação ao final.
Etapa 3: Configurar o Prometheus open source
Instale o Prometheus. Para instruções de instalação, consulte a página de download do Prometheus open source.
-
Edite o arquivo de configuração Prometheus.yml. Adicione o conteúdo abaixo ao final do arquivo. Substitua a URL de
remote_readpelo endereço obtido na Etapa 2. Em seguida, salve o arquivo.global: scrape_interval: 15s evaluation_interval: 15s scrape_configs: - job_name: 'prometheus' static_configs: - targets: ['localhost:9090'] remote_read: # Replace with your remote read address. - url: "http://cn-{region}.arms.aliyuncs.com:9090/api/v1/prometheus/{token}" read_recent: true Reinicie o service do Prometheus open source.
Etapa 4: Visualizar dados no Prometheus autogerenciado
-
Em um navegador web, abra o seguinte endereço para acessar o Prometheus autogerenciado:
http://localhost:9090 Na página Prometheus, clique em Graph na barra de navegação superior.
-
Na aba Graph, insira uma consulta na caixa de expressão e clique em Execute.
Por exemplo, para consultar a utilização da CPU de um endereço IP específico:
100 - (avg by (instance) (rate(node_cpu_seconds_total{instance=":9100", mode="idle"}[5m])) * 100)
Perguntas frequentes
A consulta não retorna dados nem erros
Para instâncias do Prometheus V1, a leitura remota não exige AccessKey. Caso nenhum dado seja retornado após configurar a leitura remota, verifique se external_labels está definido na configuração local do Prometheus. Essa definição pode fazer com que a leitura remota filtre os dados esperados.
[xxx prometheus]# head prometheus.yml
global:
scrape_interval: 60s
evaluation_interval: 15s
external_labels:
cloud: xxx
cluster: xxx