Compartilhar via


Acompanhamento de dependências no Application Insights

Uma dependência é um componente chamado pelo seu aplicativo. Normalmente, ele é 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, independentemente de ocorrer uma falha 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 acompanhadas automaticamente

Esta seção traz links para listas de chamadas de dependência que são detectadas automaticamente como dependências, sem a necessidade de qualquer modificação adicional no código do aplicativo. Essas dependências são visualizadas nas exibições Mapa do aplicativo e Diagnóstico de transação do Application Insights.

Se a sua dependência não estiver na lista, você ainda poderá acompanhá-la manualmente. Veja Acompanhar dependências manualmente.

Para obter uma lista de todas as dependências selecionadas automaticamente, veja as guias específicas da linguagem em Adicionar e modificar o OpenTelemetry do Azure Monitor para aplicativos .NET, Java, Node.js e Python.

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

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

  • As bibliotecas de instrumentação do OpenTelemetry são usadas para coletar automaticamente dependências como chamadas HTTP, SQL e SDK do Azure. Essas bibliotecas se conectam a estruturas com suporte e bibliotecas de clientes usando a DiagnosticSource ou mecanismos 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 runtime sem alterações de código.

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

Acompanhar dependências manualmente

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

Dica

Para novos projetos, recomendamos usar o OpenTelemetry para obter melhor flexibilidade e compatibilidade futura.

Para saber como acompanhar dependências manualmente, veja Adicionar e modificar o OpenTelemetry do Azure Monitor para aplicativos .NET, Java, Node.js e Python.

Onde encontrar dados de dependência

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

Visões Descrição
Mapa do aplicativo Oferece uma representação visual das dependências do aplicativo e das respectivas relações com serviços externos.
Diagnóstico de Transação Exibe detalhes da transação de ponta a ponta, correlacionando operações do lado do servidor com chamadas de dependência.
Guia Navegador em falhas e exibições de desempenho Realça as chamadas AJAX em navegadores cliente.
Guia Servidor em falhas e exibições de desempenho Permite analisar solicitações de servidor lentas ou com falha e inspecionar chamadas de dependência relacionadas.

Veja exemplos de rastreamento de solicitações a dependências e solicitações com falha associadas a chamadas com falha para dependências.
Logs do Azure Monitor Habilita a consulta e a análise avançadas na telemetria de dependência.

Veja exemplos para acompanhar dependências usando o KQL.

Diagnosticar solicitações lentas

Cada evento de solicitação está associado às chamadas de dependência, exceções e outros eventos que são acompanhados durante o processamento da solicitação. Então, se algumas solicitações estão com baixo desempenho, você pode descobrir se é devido à lentidão nas respostas de uma dependência.

Rastreamento de solicitações de dependências

Selecione a guia Desempenho do lado esquerdo e selecione a guia Dependências na parte superior.

Selecione um Nome de Dependência em Geral. Após você selecionar uma dependência, ela mostrará um grafo da distribuição de durações dessa dependência.

Captura de tela que mostra a guia Dependências aberta para selecionar um Nome de dependência no gráfico.

Selecione o botão Amostras na parte inferior direita. Em seguida, selecione uma amostra para ver os detalhes da transação de ponta a ponta.

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

Perfil de seu site ativo

O .NET Profiler rastreia chamadas HTTP para seu site ativo e mostra as funções mais demoradas no seu código.

Solicitações com falhas

As solicitações com falha também podem ser associadas a chamadas com falha para as dependências.

Selecione a guia Falhas do lado esquerdo e, a seguir, selecione a guia Dependências na parte superior.

Captura de tela que mostra a seleção do gráfico de solicitações com falha.

Aqui você verá o número de dependências 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 na parte inferior direita para visualizar os detalhes da transação de ponta a ponta.

Logs (Análise)

Você pode rastrear dependências na Linguagem de Consulta Kusto. Aqui estão alguns exemplos.

  • Localize todas as chamadas de dependência com falha:

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

    dependencies | where client_Type == "Browser" | take 10
    
  • Localize as 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  
    
  • Localize as chamadas AJAX associadas a exibições de página:

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

SDK do código-fonte aberto

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

Próximas etapas