O Managed Service for Prometheus oferece um endpoint de Remote Read padrão. Adicione esse endpoint à configuração do seu Prometheus autogerenciado para consultar métricas da sua instância na nuvem. Este tópico descreve como configurar um servidor Prometheus autogerenciado para ler métricas de uma instância do Managed Service for Prometheus.
O modo Remote Read do Prometheus transfere um grande volume de dados brutos de séries temporais para processamento no mecanismo local do Prometheus, o que impõe diversas limitações de uso. Por isso, recomendamos usar 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 para o Prometheus. Ela processa as consultas no servidor e retorna apenas os resultados finais, oferecendo desempenho muito superior ao do Remote Read. Essa API permite enviar consultas diretamente via HTTP e conectar ferramentas como o Grafana sem precisar de um mecanismo local do Prometheus. Para mais detalhes sobre a configuração, consulte Conectar o Grafana ou aplicações autogerenciadas aos dados do Prometheus usando um endpoint de API HTTP.
As limitações da abordagem com 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.
Limites de serviço restritos, facilmente excedidos durante consultas a grandes conjuntos de dados.
Limitações
O endpoint de Remote Read não oferece suporte a HTTP/2.
Pré-requisitos
Crie uma instância do Managed Service for Prometheus. Para mais informações, consulte Criar uma instância.
(Opcional) Etapa 1: Conceder permissões de leitura e gravação do CMS a um usuário RAM
Se a sua instância do Prometheus na Alibaba Cloud foi criada por uma conta Alibaba Cloud e você precisa usar o AccessKey ID e o AccessKey Secret de um usuário RAM para operações remotas de leitura e gravação, conceda primeiro as permissões de leitura e gravação do CMS a esse usuário RAM.
Acesse o console RAM com uma conta Alibaba Cloud ou como administrador do RAM. No painel de navegação à esquerda, escolha .
-
Na página Authorize, clique em Create Authorization. Na página Create Authorization, configure os parâmetros conforme descrito abaixo.
Parâmetro
Descrição
Resource Range
Selecione o escopo de recursos conforme necessário.
Principal
Especifique o principal. O principal é o usuário RAM que receberá as permissões.
Policy
Adicione as seguintes permissões ao usuário RAM conforme necessário:
-
AliyunCloudMonitorFullAccess: Permissões completas para o CMS. Um usuário RAM com essa permissão tem acesso total para visualizar, editar e excluir instâncias de todos os subprodutos. -
AliyunCloudMonitorReadOnlyAccess: Permissões somente leitura para o CMS. Um usuário RAM com essa permissão pode apenas visualizar informações das instâncias de todos os subprodutos. Não é possível modificar ou excluir instâncias.
-
Clique em Confirm e, em seguida, clique em Delete.
Etapa 2: Obter o endpoint de Remote Read
Acesse o console CloudMonitor. No painel de navegação à esquerda, escolha Prometheus Monitoring para acessar a página Instance List.
Na barra de menu superior, selecione a região da instância. Na coluna Actions do cluster desejado, clique em Modify.
-
Na aba Modify, copie o endpoint de Remote Read público ou interno conforme necessário.
O formato do endpoint público é
http://{region}.arms.aliyuncs.com:9090/api/v1/prometheus/xxx. O formato do endpoint interno éhttp://{region}-intranet.arms.aliyuncs.com:9090/api/v1/prometheus/xxx. A parte xxx corresponde à credencial de autenticação gerada pelo sistema.
Etapa 3: Configurar o Prometheus autogerenciado
Instale o Prometheus. Para mais informações, consulte a página de download do Prometheus.
-
Edite o arquivo de configuração Prometheus.yml. Adicione o conteúdo abaixo ao final do arquivo. Substitua a URL de
remote_readpelo endpoint 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 this with your Remote Read endpoint. - url: "http://ts-xxxxxxxxxxxx.hitsdb.rds.aliyuncs.com:3242/api/prom_read" read_recent: true Reinicie o serviço do Prometheus autogerenciado.
Etapa 4: Visualizar dados do Prometheus da Alibaba Cloud no seu Prometheus autogerenciado
-
Acesse o seu Prometheus autogerenciado pelo navegador.
http://localhost:9090 Na página Prometheus, clique em Graph na barra de menu no topo da página.
-
Na aba Graph, insira uma expressão de consulta na caixa de pesquisa e clique em Execute à direita da caixa.
Por exemplo, consulte a utilização de CPU de um endereço IP específico.
100 - (avg by (instance) (rate(node_cpu_seconds_total{instance="your_IP_address:9100", mode="idle"}[5m])) * 100)
Perguntas frequentes
Consultas não retornam dados nem erros após a configuração do Remote Read
Se as consultas não retornarem dados após a configuração, verifique se a configuração local do seu Prometheus contém external_labels. Essa definição pode impedir que o Remote Read consulte os dados esperados. Execute o comando abaixo para visualizar a configuração de external_labels no arquivo de configuração do Prometheus e confirme se os rótulos cloud e cluster estão definidos corretamente.
[xxx prometheus]# head prometheus.yml
global:
scrape_interval: 60s
evaluation_interval: 15s
external_labels:
cloud: xxx
cluster: xxx