Partilhar via


Controle de dependência no Application Insights

Uma dependência é um componente chamado pela sua aplicação. Normalmente, é um serviço chamado usando HTTP, um banco de dados ou um sistema de arquivos. O Application Insights mede a duração das chamadas de dependência e se está falhando ou não, e coleta informações como o nome da dependência. Você pode investigar chamadas de dependência específicas e correlacioná-las a solicitações e exceções.

Dependências rastreadas automaticamente

Esta seção vincula a listas de chamadas de dependência que são detetadas automaticamente como dependências sem exigir qualquer modificação adicional no código do seu aplicativo. Essas dependências são visualizadas nas visualizações Application Insights Application map e Transaction diagnostics .

Se sua dependência não estiver na lista, você ainda poderá rastreá-la manualmente, consulte Controlar dependências manualmente.

Para obter uma lista de todas as dependências coletadas automaticamente, consulte as guias específicas do idioma em Adicionar e modificar o Azure Monitor OpenTelemetry para aplicativos .NET, Java, Node.jse Python.

Como funciona o monitoramento automático de dependência?

As dependências são coletadas automaticamente usando uma das seguintes técnicas, dependendo do método de coleta de telemetria.

  • As bibliotecas de instrumentação OpenTelemetry são usadas para coletar automaticamente dependências, como chamadas HTTP, SQL e SDK do Azure. Essas bibliotecas se conectam a estruturas suportadas e bibliotecas de clientes usando DiagnosticSource mecanismos ou equivalentes.

  • Em ambientes com suporte, como os Serviços de Aplicativo do Azure, a autoinstrumentação está disponível e habilitada por padrão, injetando coletores de telemetria em tempo de execução sem alterações de código.

  • Em outros ambientes, os desenvolvedores podem configurar manualmente a instrumentação usando os pacotes Azure.Monitor.OpenTelemetry.* e APIs OpenTelemetry para controlar quais dependências são rastreadas e como elas são enriquecidas ou filtradas.

Controlar manualmente as dependências

Você pode rastrear manualmente as dependências quando a coleta automática não atende às suas necessidades.

Sugestão

Para novos projetos, recomendamos o uso do OpenTelemetry para melhor flexibilidade e compatibilidade futura.

Para saber como controlar manualmente as dependências, consulte Adicionar e modificar o Azure Monitor OpenTelemetry para aplicativos .NET, Java, Node.jse Python.

Onde encontrar dados de dependência

As seguintes ferramentas e exibições no Application Insights facilitam a exploração e a análise da telemetria de dependência:

Visualizações Descrição
Mapa de Aplicação Oferece uma representação visual das dependências do seu aplicativo e seus relacionamentos com serviços externos.
Diagnóstico da Transação Exibe detalhes de transação de ponta a ponta, correlacionando operações do lado do servidor com chamadas de dependência.
Guia Navegador em exibições de falhas e desempenho Destaca chamadas AJAX de navegadores clientes.
Guia Servidor em exibições de falhas e desempenho Permite detalhar solicitações de servidor lentas ou com falha e inspecionar chamadas de dependência relacionadas.

Veja exemplos de rastreamento de solicitações para dependências e solicitações com falha associadas a chamadas com falha para dependências.
Registos do Azure Monitor Permite consultas e análises avançadas em telemetria de dependência.

Veja exemplos para controlar dependências usando o KQL.

Diagnosticar solicitações lentas

Cada evento de solicitação é associado às chamadas de dependência, exceções e outros eventos rastreados durante o processamento da solicitação. Então, se algumas solicitações estão indo mal, você pode descobrir se é por causa de respostas lentas de uma dependência.

Rastrear de solicitações para dependências

Selecione a guia Desempenho à esquerda e selecione a guia Dependências na parte superior.

Selecione um Nome da dependência em Geral. Depois de selecionar uma dependência, ele mostra um gráfico da distribuição de durações dessa dependência.

Captura de ecrã que mostra o separador Dependências aberto para selecionar um Nome de Dependência no gráfico.

Selecione o botão Amostras no canto inferior direito. Em seguida, selecione um exemplo para ver os detalhes da transação de ponta a ponta.

Captura de tela que mostra a seleção de uma amostra para ver os detalhes da transação de ponta a ponta.

Crie o perfil do seu site ao vivo

O .NET Profiler rastreia chamadas HTTP para seu site ativo e mostra as funções em seu código que levaram mais tempo.

Pedidos com falhas

Solicitações com falha também podem estar associadas a chamadas com falha para dependências.

Selecione a guia Falhas à esquerda e, em seguida, selecione a guia Dependências na parte superior.

Captura de ecrã que mostra a seleção do gráfico de pedidos falhados.

Aqui você vê a contagem de dependência com falha. Para obter mais informações sobre uma ocorrência com falha, selecione um Nome de Dependência na tabela inferior. Selecione o botão Dependências no canto inferior direito para ver os detalhes da transação de ponta a ponta.

Registos (Analytics)

Na linguagem de consulta Kusto, pode rastrear dependências. Eis alguns exemplos.

  • Encontre quaisquer chamadas de dependência com falha:

    dependencies | where success != "True" | take 10
    
  • Encontre chamadas AJAX:

    dependencies | where client_Type == "Browser" | take 10
    
  • Encontre chamadas de dependência associadas a solicitações:

    dependencies
    | where timestamp > ago(1d) and  client_Type != "Browser"
    | join (requests | where timestamp > ago(1d))
        on operation_Id  
    
  • Encontre chamadas AJAX associadas a visualizações de página:

    dependencies
    | where timestamp > ago(1d) and  client_Type == "Browser"
    | join (browserTimings | where timestamp > ago(1d))
        on operation_Id
    

SDK de código aberto

Como todo SDK do Application Insights, o módulo de coleta de dependência também é de código aberto. Leia e contribua para o código ou relate problemas no repositório oficial do GitHub.

Próximos passos