O console do ARMS oferece suporte completo a soluções open source. Para cenários que exigem alto grau de personalização, como a criação de painéis de observabilidade personalizados, este tópico explica como usar o Grafana e o Prometheus. Também apresenta exemplos de como escrever instruções de consulta personalizadas para recuperar dados.
Informações básicas
O Managed Service for Prometheus integra a fonte de dados do Application Monitoring por padrão. Use o Managed Service for Prometheus para obter dados de monitoramento de aplicações, visualizar painéis pré-construídos e personalizá-los conforme necessário.
O Application Monitoring cria automaticamente uma instância gratuita do Alibaba Cloud Prometheus em cada região. Todas as métricas do Application Monitoring na região China (Hangzhou) são armazenadas na instância arms_metrics_cn-hangzhou_cloud_hangzhou do Managed Service for Prometheus na mesma região.
Cenários
Crie painéis com base nas métricas do Application Monitoring.
Para operações e manutenção diárias, crie painéis dedicados combinando métricas do Application Monitoring com métricas de componentes específicos em outras fontes de dados.
Antes de picos de tráfego no site, crie painéis específicos para o cenário integrando métricas do Application Monitoring com métricas de componentes upstream e downstream em outras fontes de dados.
Visualize dados do Application Monitoring, obtidos via monitoramento do Prometheus, em seu Grafana autogerenciado.
Desenvolva soluções adicionais com base nos dados do Application Monitoring obtidos pelo monitoramento do Prometheus.
Pré-requisitos
Instale um agente na sua aplicação. Para mais informações, consulte Visão geral da integração do Application Monitoring.
Instale o Grafana em seu ambiente local ou crie um Managed Service for Grafana workspace.
Personalizar um painel de visualização
Etapa 1: Adicionar a fonte de dados do Application Monitoring
O Managed Service for Prometheus integra a fonte de dados do Application Monitoring por padrão. Portanto, basta adicionar a instância correspondente do Managed Service for Prometheus como fonte de dados no Grafana.
Self-managed Grafana
-
Obtenha o endpoint da API HTTP do Prometheus.
-
No console do ARMS, acesse a página . Na barra de menu superior, selecione a região onde sua aplicação está implantada.
Uma instância do tipo Prometheus for Application Monitoring é a instância integrada padrão para o Application Monitoring.
-
Clique em no nome da instância do Application Monitoring e clique em Settings no painel de navegação à esquerda para visualizar o endpoint da API HTTP.
Na parte inferior da página Settings, na seção HTTP API Address (Grafana Read Address), localize as URLs públicas e internas.
-
(Opcional) Para proteger as leituras de dados do Grafana, clique em Generate Token para obter um token de autenticação da instância do Prometheus.
ImportanteApós gerar um token, configure-o ao adicionar a fonte de dados no Grafana. Caso contrário, o Grafana não conseguirá ler os dados de monitoramento do Prometheus.
-
-
Adicione a fonte de dados do Prometheus no Grafana.
Esta seção usa o Grafana 10.x como exemplo. Para informações sobre como adicionar uma fonte de dados em outras versões do Grafana, consulte a documentação oficial do Grafana.
Faça login no seu Grafana autogerenciado como administrador.
Clique em no ícone
no canto superior esquerdo da página e escolha .Clique em + Add new data source e selecione Prometheus como o tipo de fonte de dados.
Na aba Settings, insira um nome personalizado no campo Name e cole o endpoint da API HTTP da etapa anterior no campo Prometheus server URL.
(Opcional) Na seção Custom HTTP Headers, clique em +Add header, defina o Header como Authorization e o Value como seu token de autenticação.
Na parte inferior da aba, clique em Save & Test.
Managed Service for Grafana
O Alibaba Cloud Managed Service for Grafana permite integrar fontes de dados e painéis do Application Monitoring com um único clique.
No console do ARMS, acesse e clique em no ID do seu workspace.
Na página Workspace Information, na seção Cloud Service Integration, clique em ARMS Application Monitoring Service e, em seguida, clique em Integrations à direita da instância na região correspondente.
Na caixa de diálogo, clique em Confirm.
Após a conclusão da sincronização, clique em no ícone Folder à direita.
-
No Grafana, na aba Dashboards, clique em no nome de um painel para visualizar os painéis padrão pré-construídos do Application Monitoring.
Os painéis padrão pré-construídos do Application Monitoring incluem quatro painéis: DB, Application, API e Host.
-
Clique em no ícone
no canto superior esquerdo da página e escolha para visualizar a fonte de dados do Application Monitoring adicionada.Após a adição bem-sucedida da fonte de dados, uma fonte de dados do Prometheus aparece na lista. O nome é semelhante a
arms_metrics_cn-hangzhou_cloud_hangzhou_xxx, e a URL correspondente éhttp://cn-hangzhou.arms.aliyuncs.com:9090/api/v1/prometheus/<InstanceID>.
Etapa 2: Configurar um painel personalizado
No Grafana, clique em no ícone
no canto superior esquerdo da página e clique em Dashboards.Na página Dashboards, escolha . Na página New dashboard, clique em Add visualization para criar um painel.
-
Na caixa de diálogo Select data source exibida, selecione a fonte de dados do Application Monitoring. O nome da fonte de dados é arms_metrics_{regionid}_cloud por padrão.
ImportanteCertifique-se de que existam dados na fonte de dados atual.
-
No editor de consultas na aba A, defina a métrica de consulta.
PromQL query
No modo Code, insira uma instrução de consulta PromQL à direita de Metrics browser.
No console do ARMS, na página de detalhes de monitoramento do Application Monitoring, clique em no ícone
para visualizar a instrução PromQL correspondente a uma métrica. Para mais informações, consulte Instruções de consulta.Por exemplo, após expandir o painel da métrica Request Count, visualize a instrução de consulta correspondente no editor de consultas PromQL, como
sum by (callType,)(sum_over_time_lorc(arms_app_requests_count_ign_destid_endpoint_ppid_prpc{pid="...",callKind=~"http|rpc|custom_entry|server|consumer|schedule",source="apm"}[1m])).Para mais informações sobre como usar instruções de consulta PromQL, consulte a documentação oficial do Prometheus.
Application Monitoring metrics
No modo Builder, selecione uma métrica específica na lista suspensa Metric, como
arms_jvm_threads_count, para consultar o número de threads da JVM. Para obter detalhes sobre as métricas suportadas pelo Application Monitoring, consulte Métricas do Application Monitoring.Na seção Label filters, defina as condições de filtragem de rótulos, por exemplo,
host= IP de destino. A instrução de consulta PromQL correspondente é gerada automaticamente, comoarms_jvm_threads_count{host="xxx.xxx.xx.67"}. -
À direita, defina o título do painel e selecione um tipo de gráfico.
NotaPara a mesma métrica, selecione diferentes tipos de gráficos para visualizar dados em diferentes granularidades.
No editor de painéis à direita, defina o tipo de visualização como Time series. Na seção Panel options, insira JVM Threads Count no campo Title.
Após concluir as configurações, clique em Apply no canto superior direito.
Personalizar uma instrução de consulta
Use a API HTTP do Prometheus e as instruções PromQL do console do ARMS para fazer requisições HTTP usando scripts Shell ou código Java e personalizar os dados recuperados.
Por exemplo, se o endpoint da API HTTP do Prometheus for https://cn-hangzhou.arms.aliyuncs.com:9443/api/v1/prometheus/7a8f8e783c66a44a0f6a1dc9a0b8f1/1277589232893727/arms-metrics-99214ff7de7d0b2d/cn-hangzhou, combine-o com uma instrução PromQL no seguinte formato:
{{Prometheus HTTP API}}/api/v1/query_range?query={{PromQL}}&start={{startTime}}&end={{endTime}}&step={{step}}.
A instrução de consulta resultante é a seguinte:
https://cn-hangzhou.arms.aliyuncs.com:9443/api/v1/prometheus/7a8f8e783c66a44a0f6a1dc9a0b8f1/1277589232893727/arms-metrics-99214ff7de7d0b2d/cn-hangzhou/api/v1/query_range?query=sum by (callType,)(sum_over_time_lorc(arms_app_requests_count_ign_destid_endpoint_ppid_prpc{pid="ckv8e2vzfj@7e393063f3fd6ad",serverIp=~".*",callKind=~"http|rpc|custom_entry|server|consumer|schedule",source="apm", }[1m]))&start=1728719399&end=1728722999&step=60s
Dados de resposta de exemplo:
{"status":"success","data":{"resultType":"matrix","result":[{"metric":{"callType":"http"},"values":[[1728719399,"1575"],[1728719459,"1599"],[1728719519,"1593"],[1728719579,"1584"],[1728719639,"1578"],[1728719699,"1568"],[1728719759,"1561"],[1728719819,"1555"],[1728719879,"1547"],[1728719939,"1540"],[1728719999,"1533"],[1728720059,"1524"],[1728720119,"1518"],[1728720179,"1512"],[1728720239,"1503"],[1728720299,"1497"],[1728720359,"1491"],[1728720419,"1482"],[1728720479,"1476"],[1728720539,"1467"],[1728720599,"1464"],[1728720659,"1453"],[1728720719,"1448"],[1728720779,"1443"],[1728720839,"1434"],[1728720899,"1428"],[1728720959,"1419"],[1728721019,"1416"],[1728721079,"1407"],[1728721139,"1401"],[1728721199,"1395"],[1728721259,"1389"],[1728721319,"1381"],[1728721379,"1374"],[1728721439,"1366"],[1728721499,"1367"],[1728721559,"1350"],[1728721619,"1350"],[1728721679,"1344"],[1728721739,"1335"],[1728721799,"1331"],[1728721859,"1324"],[1728721919,"1320"],[1728721979,"1314"],[1728722039,"1305"],[1728722099,"1302"],[1728722159,"1296"],[1728722219,"1287"],[1728722279,"1284"],[1728722339,"1233"],[1728722399,"1272"],[1728722459,"1155"],[1728722519,"1116"],[1728722579,"1110"],[1728722639,"1107"],[1728722699,"1098"],[1728722759,"1095"],[1728722819,"1086"],[1728722879,"1083"],[1728722939,"1077"],[1728722999,"1184"]]}]}}
Perguntas frequentes
Cobrança de consultas
Sim.
Limitação de consultas PromQL
A limitação está ativa, mas os limites não se baseiam em uma contagem simples de consultas por segundo (QPS) no ponto de entrada, pois diferentes consultas consomem quantidades distintas de recursos. Evite consultas de alto consumo, como consultar todas as APIs ou consultar dados em um intervalo de tempo superior a 30 dias, e mantenha a taxa de consultas abaixo de 50 QPS. Se precisar executar consultas sustentadas e de alto consumo, abra um ticket antecipadamente para solicitar um aumento de cota.