Todos os produtos
Search
Central de documentação

Application Real-Time Monitoring Service:Dependências

Última atualização: Jun 27, 2026

A página Dependencies exibe como sua aplicação interage com chamadas externas, bancos de dados e filas de mensagens. Use este recurso para identificar chamadas downstream lentas, localizar a origem de erros e rastrear problemas de desempenho até dependências específicas.

Importante

O Application Monitoring oferece uma nova página de detalhes da aplicação para usuários que ativaram o novo modo de faturamento. Caso ainda não tenha ativado o novo modo de faturamento, clique em Switch to New Version na página Application List para acessar a nova página de detalhes da aplicação.

Pré-requisitos

A aplicação deve ter um agente do ARMS instalado.

Visualizar dependências

  1. Faça login no console do ARMS. No painel de navegação à esquerda, escolha Application Monitoring > Application List.

  2. Selecione uma região na barra de navegação superior e clique em uma aplicação.

  3. Na barra de navegação superior, clique em Dependencies.

image.png

A página contém três seções:

  • Filtro rápido (ícone 1): Refine os gráficos e os dados de dependência por Request Type, Request Destination e Host.

  • Gráficos de tendência (ícone 2): Séries temporais de contagem de requisições, contagem de erros e duração média durante o período selecionado. Clique no ícone image.png para visualizar dados de métricas de um intervalo de tempo específico ou comparar métricas entre datas diferentes. Use o ícone image.png para alternar entre gráfico de colunas e gráfico de tendência.

  • Lista de serviços (ícone 3): Nome, tipo e métricas do Método RED (taxa, erros e duração) para cada dependência. Na lista de serviços:

    • Clique no nome da dependência ou em Details, SQL Analysis ou Exceptions na coluna Actions para abrir os detalhes da dependência. Consulte Detalhes da dependência.

    • Clique em Traces na coluna Actions para visualizar os traces de uma dependência. Consulte Trace Explorer.

Frameworks suportados

Detalhes da dependência

Chamadas externas

Visão geral

A aba Overview apresenta a contagem de requisições, a contagem de erros e a duração média de um endpoint ou serviço, além de uma série temporal de chamadas lentas.

image.png

Trace Explorer

Combine condições de filtro e dimensões de agregação para analisar em tempo real os dados de trace armazenados. Para mais informações, consulte Trace Explorer.

Span data

Publicação de mensagens

Nota

Os dados de publicação de mensagens não estão disponíveis para aplicações Python.

Visão geral

A aba Overview exibe a contagem de requisições, a contagem de erros e a duração média de uma mensagem, juntamente com uma série temporal de chamadas lentas.

image

Estatísticas de envio

A aba Sending Statistics fornece detalhes sob a perspectiva do remetente da mensagem, incluindo contagem de requisições, contagem de erros e duração por tópico.

image

Trace Explorer

Combine condições de filtro e dimensões de agregação para analisar em tempo real os dados de trace armazenados. Para mais informações, consulte Trace Explorer.

Span data

Chamadas de banco de dados

Nota

Os dados de chamadas de banco de dados não estão disponíveis para aplicações Python.

Visão geral

A aba Overview mostra a contagem de requisições, a contagem de erros e a duração média de cada instância de banco de dados chamada pela aplicação, além de uma série temporal de chamadas lentas.

image.png

Análise de SQL

A aba SQL Analysis apresenta tendências de contagem de requisições, contagem de erros e duração média para uma instância de banco de dados, além de uma série temporal de instruções SQL individuais. Utilize esta aba para identificar instruções SQL que causam respostas lentas.

Nota

O campo Return Size está disponível apenas para MySQL v5.x e requer o agente do ARMS v2.7.1.3 ou posterior.

Para visualizar o trace de uma instrução SQL específica, clique em Traces na coluna Actions. Para mais informações, consulte Trace Explorer.

image.png

Exceções

A aba Exceptions lista as exceções lançadas durante chamadas de banco de dados no período selecionado, incluindo a contagem de ocorrências e detalhes. Para mais informações, consulte Análise de exceções.

image.png

Origem da requisição

A aba source of Request exibe o tempo de resposta, a contagem de requisições e a contagem de erros das interfaces upstream a partir das quais a aplicação chama este banco de dados.

image.png

Trace Explorer

Combine condições de filtro e dimensões de agregação para analisar em tempo real os dados de trace armazenados. Para mais informações, consulte Trace Explorer.

Span data

Perguntas frequentes

Bancos de dados

Por que as chamadas de banco de dados não apresentam dados?

Existem duas causas comuns:

  • O ARMS não suporta o banco de dados. Verifique a lista de componentes suportados.

  • O agente do ARMS é anterior à versão v4.x, que não suporta bancos de dados chamados de forma assíncrona ou sem um ponto de entrada.

Por que o ARMS mostra chamadas lentas de banco de dados que o servidor de banco de dados não relata?

O ARMS mede a duração no lado do cliente — todo o ciclo completo, desde o momento em que a aplicação envia a requisição, passando pela transmissão de rede e processamento no servidor, até a chegada da resposta. Pausas para coleta de lixo (garbage collection) e latência de rede podem inflar esses números além do que o servidor de banco de dados registra.

O ARMS também utiliza seu próprio Slow SQL Threshold (padrão: 500 ms), configurado na página Custom Configuration. Esse limiar pode diferir das configurações do servidor de banco de dados.

image

Por que o volume de chamadas de banco de dados no ARMS difere dos dados de monitoramento do servidor de banco de dados?

O ARMS exibe apenas o volume de chamadas da aplicação atualmente monitorada. Se várias aplicações acessarem o mesmo banco de dados, o ARMS não agregará o tráfego delas.

Por que algumas chamadas externas não são registradas?

Isso geralmente afeta o agente 3.x, por dois motivos:

  • Sem ponto de entrada: O agente 3.x captura apenas chamadas externas executadas dentro do fluxo de processamento de interfaces HTTP, interfaces RPC, tarefas agendadas e consumo de mensagens. Chamadas externas acionadas diretamente por meio de um pool de threads em um agendamento não são capturadas.

  • Troca de threads: O agente 3.x não suporta propagação automática de contexto assíncrono. Se a chamada externa real for executada em uma thread diferente, não haverá contexto de trace após a troca, e a chamada será ignorada.

Ambos os problemas são resolvidos ao atualizar o agente para a versão v4.x.

Por que as chamadas externas mostram dados "undefined"?

As versões 3.1.x e anteriores do agente possuem um defeito na instrumentação do Dubbo que impede a captura do endereço IP do par. Isso foi corrigido na versão v3.2.x.

Por que as chaves de chamadas Redis exibem texto corrompido?

Um problema de instrumentação do framework Lettuce causa valores de chave incorretos. A parte corrompida pode ser ignorada — as partes restantes são válidas.

Por que não há dados ao navegar de uma instrução SQL para o Trace Explorer?

Por padrão, o agente do ARMS compacta spans para reduzir o volume de dados. Quando vários spans filhos de um span pai compartilham o mesmo SpanName, apenas um span filho é retido. Os atributos desse span registram a contagem, a duração total e a duração mínima/máxima dos spans compactados. Instruções SQL em spans compactados não podem ser consultadas na página Trace Explorer.

image.png

Para resolver isso, desative a compactação de traces.

Nota

Desativar a compactação aumenta o volume de dados para aplicações que realizam muitas operações de banco de dados ou Redis. A lógica de amostragem de erros e chamadas lentas também perde a eficácia.

Publicação de mensagens

Qual é a diferença entre os dados da página de Publicação de Mensagens e os dados de monitoramento da instância de fila de mensagens?

As páginas Message Subscription e Message Publishing mostram métricas de desempenho sob a perspectiva do cliente — como a aplicação selecionada se comporta como consumidora ou produtora. Já o painel de monitoramento da instância de fila de mensagens exibe métricas no nível do tópico sob a perspectiva do servidor.

Quais são os formatos de SpanName para envio e recebimento de mensagens?

Tipo de mensagem

Agente do ARMS anterior à v4.x

Agente do ARMS v4.x e posterior

Envio de mensagem RocketMQ/ONS

Nenhum span criado. Apenas pilhas de métodos são registradas.

${topic} + publish

Recebimento de mensagem RocketMQ/ONS

Recv Topic@${topic}

Recv Topic@${topic}

Envio de mensagem Kafka

Nenhum span criado. Apenas pilhas de métodos são registradas.

${topic} + publish

Recebimento de mensagem Kafka

Kafka/topic=${topic}

Kafka/topic=${topic}

Envio de mensagem RabbitMQ

Nenhum span criado. Apenas pilhas de métodos são registradas.

${exchange} + publish

Recebimento de mensagem RabbitMQ

Recv Exchange@${exchange}

Recv Exchange@${exchange}

O agente do ARMS para Java suporta Spring Cloud Alibaba RocketMQ?

Sim, a partir do agente v4.x. Se o seu agente for anterior à v4.x, atualize-o.

O que significa a métrica "Message Delay"?

O atraso da mensagem é o tempo total desde a produção até o consumo da mensagem, medido em milissegundos (ms). Essa métrica é suportada apenas para RocketMQ Client e ONS Client.

Por que a aplicação possui lógica de consumidor, mas não há dados de trace ou métricas de consumidor?

Provavelmente o agente é anterior à v4.x e expressões lambda definem a lógica de consumo dentro do messageListener. Devido a falhas no aprimoramento de classes para expressões lambda nas versões 2.x e 3.x do agente, a lógica de consumo não pode ser instrumentada.

Atualize o agente para a versão v4.x para resolver isso.

Por que recebi um erro "Magic v1 does not support record headers" com Kafka?

O agente do ARMS passa o contexto de trace através do campo Header da mensagem Kafka. Versões do Kafka anteriores a 0.11.0.0 (tanto Client quanto Broker) não suportam campos Header.

Migre para o Kafka 0.11.0.0 ou posterior. Se a migração imediata não for possível:

  • Agente anterior à v4.x: Desative a opção kafka-plugin na seção Probe switch settings da aba Custom Configuration.

  • Agente v4.x e posterior: Adicione o parâmetro JVM -Dotel.instrumentation.kafka.producer-propagation.enabled=false ao iniciar o serviço.

Por que os traces não têm spans para envio ou recebimento de mensagens?

  1. Verifique se o SDK do cliente de fila de mensagens usado pelas suas aplicações produtora e consumidora é suportado pelo ARMS. Consulte Componentes e frameworks Java suportados pelo ARMS.

  2. Confirme se tanto a aplicação produtora quanto a consumidora são monitoradas pelo Application Monitoring ou Managed Service for OpenTelemetry, com as opções de agente e plugin ativadas, e se ambas reportam para a mesma região. Spans de envio de mensagens são gerados pelo produtor, e spans de recebimento são gerados pelo consumidor. Se uma aplicação não estiver devidamente monitorada, os spans correspondentes estarão ausentes.

  3. Se os spans de envio de mensagens estiverem ausentes, verifique a versão do agente da aplicação produtora. Em versões do agente anteriores à v4.x, o envio de uma mensagem não cria um span separado. Em vez disso, ele é registrado na pilha de métodos do span pai. Clique no ícone image à direita do span pai para visualizar a pilha real do método de chamada.

    2024-12-20_15-23-14

  4. Se os spans de recebimento de mensagens estiverem ausentes, verifique se a opção Invalid Interface Filter está ativada na seção Interface Call Configurations da aba Custom Configuration. Essa opção filtra spans que não são relevantes.

Por que há uma grande diferença nos tempos de resposta do Kafka entre o agente v4.x e versões anteriores?

No agente v3.x e anteriores, um lote BatchMessageListener é contado como uma única chamada com todas as durações agregadas. No agente v4.x, cada mensagem é contada individualmente.

Após atualizar da v3.x para a v4.x, a duração relatada por chamada diminui enquanto a contagem de chamadas aumenta proporcionalmente. Esse comportamento é esperado — a v4.x fornece métricas por mensagem mais precisas.