Visão geral do monitoramento de aplicativos para o Serviço de Aplicativo do Azure

Agora é mais fácil do que nunca habilitar o monitoramento em seus aplicativos Web com base no ASP.NET, ASP.NET Core, Java e Node.js em execução no Serviço de Aplicativos do Azure. Anteriormente, era necessário instrumentar manualmente seu aplicativo, mas agora a extensão/agente mais recente é compilado na imagem do Serviço de Aplicativo por padrão.

Habilitar o Application Insights

Há duas maneiras de habilitar o monitoramento para aplicativos hospedados no Serviço de Aplicativo:

  • Monitoramento de aplicativo de instrumentação automática (ApplicationInsightsAgent).

    Esse método é o mais fácil de habilitar, e nenhuma alteração de código ou configurações avançadas são necessárias. Ele é geralmente chamado de monitoramento de "tempo de execução". No Serviço de Aplicativo, recomendamos que, no mínimo, você habilite esse nível de monitoramento. Com base em seu cenário específico, pode avaliar se o monitoramento mais avançado por meio de instrumentação manual é necessário.

    Quando você habilita a instrumentação automática, ele habilita o Application Insights com uma configuração padrão (incluindo amostragem também). Mesmo se você definir no Azure AppInsights: Amostragem: todos os dados 100%, essa configuração será ignorada.

    Para obter uma lista completa dos cenários de autoinstrumentação suportados, confira Ambientes, linguagens e provedores de recursos suportados.

    As seguintes plataformas são compatíveis com o monitoramento automático de instrumentação:

  • Instrumentar manualmente o aplicativo por meio do código instalando o SDK do Application insights.

    Essa abordagem é muito mais personalizável, mas requer as seguintes abordagens: SDK para .NET Core, .NET, Node.js, Python e um agente autônomo para Java. Esse método também significa que você deve gerenciar as atualizações para a versão mais recente dos pacotes por conta própria.

    Se você precisar fazer chamadas de API personalizadas para rastrear eventos/dependências não capturadas por padrão com o monitoramento da instrumentação automática, você precisa usar este método. Para saber mais, consulte API do Application Insights para métricas e eventos personalizados.

Se tanto o monitoramento da instrumentação automática quanto a instrumentação manual baseada em SDK forem detectados, no .NET apenas as configurações de instrumentação manual serão honradas, enquanto no Java apenas a instrumentação automática estará emitindo dados telemétricos. Essa prática serve para evitar que dados duplicados sejam enviados.

Observação

O Depurador de Instantâneos e o Profiler estão disponíveis apenas no .NET e .Net Core.

Notas de versão

Esta seção contém as notas sobre a versão da Extensão de Aplicativos Web do Azure para instrumentação do runtime com o Application Insights.

Para descobrir qual versão da extensão você está usando no momento, vá para https://<yoursitename>.scm.azurewebsites.net/ApplicationInsights.

Notas de versão

2.8.44

2.8.43

  • Separe o pacote .NET/.NET Core, Java e Node.js em diferentes extensão de site do Windows do Serviço de Aplicativo.

2.8.42

  • Extensão JAVA: atualizado da versão 2.5.1 para Java Agent 3.2.0.
  • Extensão Node.js: atualização do SDK de IA da versão 2.1.7 para 2.1.8. Adicionado suporte para identidades atribuídas pelo usuário e pelo sistema gerenciadas pelo Microsoft Entra.
  • .NET Core: implantações autossuportadas adicionadas e suporte de .NET 6.0 ao .NET Startup Hook.

2.8.41

  • Extensão de Node.js: atualização do SDK de IA de 2.1.3 para 2.1.7.
  • .NET Core: remoção das versões sem suporte (2.1). As versões com suporte são 3.1 e 5.0.

2.8.40

  • Extensão JAVA: atualização de 3.0.2 para Java Agent 3.1.1 (GA).
  • Extensão de Node.js: atualização do SDK de IA de 1.8.8 para 2.1.3.

2.8.39

  • .NET Core: suporte adicionado ao .NET Core 5.0.

2.8.38

  • Extensão JAVA: atualização de 2.5.1 para Java Agent 3.0.2 (GA).
  • Extensão de Node.js: atualização do SDK de IA de 1.8.7 para 1.8.8.
  • .NET Core: remoção das versões fora de suporte (2,0, 2,2, 3,0). As versões com suporte são 2.1 e 3.1.

2.8.37

  • Extensão do Windows AppSvc: funcionamento do .NET Core com qualquer versão do System.Diagnostics.DiagnosticSource.dll.

2.8.36

  • Extensão do Windows AppSvc: habilitação da interoperabilidade com SDK de IA no .NET Core.

2.8.35

  • Extensão do Windows AppSvc: adição de suporte a .NET Core 3.1.

2.8.33

  • Agentes .NET, .NET Core, Java e Node.js e a Extensão do Windows: suporte para nuvens soberanas. As cadeias de conexão podem ser usadas para enviar dados para as nuvens soberanas.

2.8.31

  • O agente ASP.NET Core corrigiu um problema com o SDK do Application Insights. Se o runtime carregar a versão incorreta do System.Diagnostics.DiagnosticSource.dll, a extensão sem código não travará o aplicativo e recuará. Para corrigir o problema, os clientes precisam remover System.Diagnostics.DiagnosticSource.dll da pasta de compartimento ou usar a versão mais antiga da extensão definindo ApplicationInsightsAgent_EXTENSIONVERSION=2.8.24. Se não o fizerem, o monitoramento de aplicativos não será habilitado.

2.8.26

  • Agente ASP.NET Core: correção do problema relacionado ao SDK atualizado do Application Insights. O agente não tentará carregar AiHostingStartup se ApplicationInsights.dll já estiver presente na pasta de compartimento. Ele resolve problemas relacionados à reflexão por meio do Assembly<AiHostingStartup>.GetTypes().
  • Problemas conhecidos: a exceção System.IO.FileLoadException: Could not load file or assembly 'System.Diagnostics.DiagnosticSource, Version=4.0.4.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51' pode ser lançada, se outra versão do DiagnosticSource dll for carregada. Isso pode acontecer, por exemplo, se System.Diagnostics.DiagnosticSource.dll estiver presente na pasta publicar. Como atenuante, use a versão anterior da extensão definindo as configurações do aplicativo nos serviços de aplicativos: ApplicationInsightsAgent_EXTENSIONVERSION=2.8.24.

2.8.24

  • Recriação de pacote da versão 2.8.21.

2.8.23

  • Adição do suporte a monitoramento sem código ASP.NET Core 3.0.
  • Atualização do SDK do ASP.NET Core para 2.8.0 nas versões de runtime 2.1, 2.2 e 3.0. Os aplicativos destinados ao .NET Core 2.0 continuam a usar a versão 2.1.1 do SDK.

2.8.14

  • Atualização da versão do SDK do ASP.NET Core de 2.3.0 para a mais recente (2.6.1) nos aplicativos destinados ao .NET Core 2,1, 2,2. Os aplicativos destinados ao .NET Core 2.0 continuam a usar a versão 2.1.1 do SDK.

2.8.12

  • Suporte para aplicativos ASP.NET Core 2.2.

  • Correção de um bug na extensão ASP.NET Core causando uma injeção de SDK, mesmo quando o aplicativo já foi instrumentado com o SDK. Para os aplicativos 2.1 e 2.2, agora a presença do ApplicationInsights.dll na pasta do aplicativo faz com que a extensão volte a ser desativada. Para aplicativos 2.0, a extensão recua apenas se o ApplicationInsights for habilitado com uma chamada UseApplicationInsights().

  • Correção permanente para resposta de HTML incompleta dos aplicativos ASP.NET Core. Agora essa correção está estendida para funcionar com aplicativos .NET Core 2.2.

  • Adição de suporte para desativar a injeção de JavaScript para aplicativos ASP.NET Core (APPINSIGHTS_JAVASCRIPT_ENABLED=false appsetting). Para ASP.NET Core, a injeção de JavaScript está no modo "Recusar" por padrão, salvo se explicitamente desativada. (A configuração padrão é feita para manter o comportamento atual.)

  • Corrigido o bug da extensão ASP.NET Core que causou a injeção mesmo se a ikey não estivesse presente.

  • Correção de um bug na lógica de prefixo da versão do SDK que causou uma versão incorreta do SDK na telemetria.

  • Adição do prefixo de versão do SDK nos aplicativos ASP.NET Core para identificar como a telemetria foi coletada.

  • Correção da página SCM-ApplicationInsights para mostrar corretamente a versão da extensão pré-instalada.

2.8.10

  • Correção para resposta de HTML incompleta dos aplicativos ASP.NET Core.

Perguntas frequentes

Esta seção fornece respostas para perguntas comuns.

O que o Application Insights modifica no meu projeto?

Os detalhes dependem do tipo de projeto. Para um aplicativo Web:

  • Adiciona estes arquivos ao seu projeto:
    • ApplicationInsights.config
    • ai.js
  • Instala estes pacotes NuGet:
    • API do Application Insights: a API principal
    • API do Application Insights para Aplicativos Web: usada para enviar telemetria do servidor
    • API do Application Insights para Aplicativos JavaScript: usada para enviar telemetria do cliente
  • Os pacotes incluem os seguintes assemblies:
    • Microsoft.ApplicationInsights
    • Microsoft.ApplicationInsights.Platform
  • Insere itens em:
    • Web.config
    • packages.config
  • (Apenas para novos projetos, você adiciona manualmente o Application Insights a um projeto existente). Insere snippets no código do cliente e do servidor para inicializá-los com a ID de recurso do Application Insights. Por exemplo, em um aplicativo MVC, o código é inserido na página principal Views/Shared/_Layout.cshtml.

Próximas etapas

Saiba como habilitar o monitoramento de aplicativos de instrumentação automática para os aplicativos .NET Core, .NET, Java, Node.js ou Python em execução no Serviço de Aplicativo.