Use o Application Real-Time Monitoring Service (ARMS) para monitorar aplicações Python implantadas em um cluster do Alibaba Cloud Container Service for Kubernetes (ACK). Os frameworks compatíveis incluem Django, Flask, FastAPI, LlamaIndex e Langchain. O ARMS fornece topologia de aplicação, análise de rastreamento, análise de chamadas de API, detecção de anomalias e rastreamento detalhado de interações com modelos de linguagem grandes (LLM).
Escolha um caminho de instalação
O ARMS oferece duas formas de instrumentar sua aplicação Python. Escolha uma opção com base na versão do ack-onepilot:
|
Caminho |
Quando usar |
Etapas necessárias |
|
Manual agent installation (esta página) |
A versão do ack-onepilot é anterior à 5.0.0 ou você deseja controle total sobre a instalação do agente |
Etapas 1–5 |
|
Auto-instrumentação |
A versão do ack-onepilot é posterior à 5.0.0 e você prefere uma configuração sem alterações no Dockerfile |
Pule a Etapa 3. Na Etapa 4, adicione os três rótulos e |
Pré-requisitos
Antes de começar, verifique se você tem:
Um namespace no cluster ACK. Este guia usa um namespace chamado
arms-demo. Consulte Gerenciar namespaces e cotas de recursos.Python 3.8 ou superior. O ARMS não é compatível com versões anteriores do Python.
ARMS ativado. Consulte Ativar o ARMS.
Etapa 1: Instale o complemento ack-onepilot
O ack-onepilot substitui o componente obsoleto arms-pilot e mantém total compatibilidade com ele. Nenhuma alteração na configuração da aplicação é necessária.
Faça login no console do ACK. No painel de navegação à esquerda, clique em console do ACKconsole do ACKconsole do ACKconsole do ACKClusters.
Na página Clusters, clique em nome do cluster de destino. No painel de navegação à esquerda, clique em Add-ons.
Na seção Logs and Monitoring, localize ack-onepilot e clique em Install. Na caixa de diálogo exibida, mantenha os valores padrão e clique em OK.
Use a versão 3.2.4 ou superior do ack-onepilot. Por padrão, o ack-onepilot suporta até 1.000 pods. Para cada 1.000 pods adicionais, aumente a CPU do ack-onepilot em 0,5 núcleo e a memória em 512 MB.
Após a instalação, atualize, configure ou desinstale o ack-onepilot na página Add-ons.
Para migrar do arms-pilot, consulte Como desinstalo o arms-pilot e instalo o ack-onepilot?
Etapa 2: Autorizar o ARMS a acessar recursos
O ARMS usa addon.arms.token para autorização sem senha. A maioria dos clusters gerenciados do ACK inclui esse secret por padrão, mas alguns clusters mais antigos podem não incluí-lo.
Verifique se o cluster possui o token:
Se o token estiver ausente, conceda as permissões manualmente:
Faça login no console do ACK. No painel de navegação à esquerda, clique em Clusters.
Na página Clusters, clique em nome do cluster de destino. No painel de navegação à esquerda, clique em Cluster Information.
Na aba Basic Information, em Cluster Resources, clique em link ao lado de Worker RAM Role.
Na aba Permissions, clique em Grant Permission.
Selecione a política AliyunARMSFullAccess e clique em Grant permissions.
Se o cluster estiver conectado a uma Elastic Container Instance (ECI), acesse a página de Autorização Rápida do RAM e conclua a autorização. Em seguida, reinicie os pods criados para o ack-onepilot.
Etapa 3: Integrar o agente Python ao Dockerfile
Modifique o Dockerfile para instalar e iniciar o agente Python. As alterações envolvem três linhas:
**Instale
aliyun-bootstrapvia PyPI** — ferramenta de instalação do agente Python do ARMS.Execute o instalador do agente — baixa e configura o agente usando o ID da região da Alibaba Cloud.
Alterar o comando de inicialização — envolva a aplicação com
aliyun-instrumentpara ativar o monitoramento.
Para instalar uma versão específica do agente, executealiyun-bootstrap -a install -v <version>em vez dealiyun-bootstrap -a install. Para ver as versões disponíveis, consulte as Notas de lançamento do agente Python .
Após editar o Dockerfile, construa a imagem e envie-a para o registro.
Etapa 4: Ative o monitoramento de aplicações do ARMS
Adicione rótulos ao modelo de pod do Deployment para ativar o monitoramento.
Faça login no console do ACK. No painel de navegação à esquerda, clique em Clusters.
Na página Clusters, clique em nome do cluster de destino. No painel de navegação à esquerda, escolha Workloads > Deployments.
Na página Deployments, clique em
> Edit YAML da aplicação de destino.-
Em
spec.template.metadata, adicione os seguintes rótulos:labels: aliyun.com/app-language: python # Required. Identifies this as a Python application. armsPilotAutoEnable: 'on' armsPilotCreateAppName: "deployment-name" # The display name of the application in ARMS.Substitua
deployment-namepelo nome a ser exibido no console do ARMS.
Se a versão do ack-onepilot for posterior à 5.0.0, ele baixa e injeta o agente Python automaticamente. Nenhuma alteração no Dockerfile é necessária. Caso já tenha instalado o agente manualmente no contêiner (Etapa 3), desative a injeção automática adicionando o seguinte rótulo:
armsAutoInstrumentationEnable: "off"
O YAML a seguir cria dois Deployments (arms-python-client e arms-python-server) e dois Services no namespace arms-demo, com o monitoramento do ARMS ativado.
Etapa 5: Visualize dados de monitoramento
Após cerca de um minuto, a aplicação aparecerá no console do ARMS.
-
Acesse o console do ARMS e acesse Application Monitoring > Application List.

Clique em nome da aplicação para visualizar métricas detalhadas. Para obter uma descrição completa da página de monitoramento, consulte Visão Geral da Aplicação.
Solução de problemas
Se a aplicação não aparecer no console do ARMS após um minuto, verifique os itens a seguir:
Confirme se os pods estão em execução e se os rótulos foram aplicados:
kubectl get pods -n arms-demo
kubectl describe pod <pod-name> -n arms-demo | grep -A 10 "Labels:"
Verifique se os rótulos do pod incluem armsPilotAutoEnable: on e aliyun.com/app-language: python.
Causas comuns para ausência de dados de monitoramento:
|
Sintoma |
Causa provável |
Correção |
|
Aplicação não aparece no console do ARMS |
Rótulos ausentes ou incorretos |
Verifique novamente os nomes dos rótulos no YAML do Deployment |
|
Aplicação listada, mas sem dados |
Versão do Python inferior à 3.8 |
Atualize para Python 3.8 ou superior |
|
Aplicação listada, mas sem dados |
Agente não instalado (caminho manual) |
Confirme se o Dockerfile inclui tanto a linha de instalação do |
|
Erros de autorização nos logs do pod |
|
Conclua a Etapa 2 e reinicie os pods afetados |
(Opcional) Liberar recursos
Para interromper o monitoramento, desinstale o agente Python. Consulte Desinstalar o agente Python.
Próximos passos
Visão Geral da Aplicação — explore métricas, rastreamentos e topologia no ARMS
Notas de lançamento do agente Python — acompanhe as atualizações de versão do agente
O que é o Application Real-Time Monitoring Service? — saiba mais sobre os recursos do ARMS