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 em ASP.NET, ASP.NET Core, Java e Node.js em execução no Serviço de Aplicativo do Azure. Anteriormente, você precisava instrumentar manualmente seu aplicativo, mas a extensão/agente mais recente agora está incorporada à imagem do Serviço de Aplicativo por padrão.
Ativar o Application Insights
Há duas maneiras de habilitar o monitoramento de aplicativos hospedados no Serviço de Aplicativo:
Monitoramento de aplicativos de autoinstrumentação (ApplicationInsightsAgent).
Este método é o mais fácil de habilitar, e nenhuma alteração de código ou configurações avançadas são necessárias. É muitas vezes referido como monitoramento de "tempo de execução". Para o Serviço de Aplicativo, recomendamos que, no mínimo, você habilite esse nível de monitoramento. Com base no seu cenário específico, você pode avaliar se é necessário um monitoramento mais avançado por meio de instrumentação manual.
Quando você habilita a instrumentação automática, ela habilita o Application Insights com uma configuração padrão (também inclui amostragem). 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, consulte Ambientes suportados, idiomas e provedores de recursos.
As seguintes plataformas são suportadas para monitoramento de autoinstrumentação:
Instrumentar manualmente o aplicativo por meio de 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ê mesmo deve gerenciar as atualizações para a versão mais recente dos pacotes.
Se você precisar fazer chamadas de API personalizadas para rastrear eventos/dependências não capturados por padrão com o monitoramento de autoinstrumentação, precisará usar esse método. Para saber mais, consulte API do Application Insights para eventos e métricas personalizados.
Se o monitoramento de autoinstrumentação e a instrumentação manual baseada em SDK forem detetados, no .NET e no NodeJS somente as configurações de instrumentação manual serão respeitadas, enquanto no Java somente a autoinstrumentação emitirá a telemetria. Em Python, você só deve usar autoinstrumentação se não estiver usando instrumentação manual. Esta prática consiste em evitar o envio de dados duplicados.
Nota
O Depurador de Instantâneo e o Profiler só estão disponíveis no .NET e no .NET Core.
Notas de versão
Esta seção contém as notas de versão do Azure Web Apps Extension para instrumentação de tempo de execução com o Application Insights.
Para encontrar 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
- .NET/.NET Core: Atualizado para o SDK .NET do ApplicationInsights para 2.20.1.
2.8.43
- Separe o pacote .NET/.NET Core, Java e Node.js em diferentes Extensões de Site do Windows do Serviço de Aplicativo.
2.8.42
- Extensão JAVA: Atualizado para o Java Agent 3.2.0 a partir da versão 2.5.1.
- Node.js extensão: AI SDK atualizado para 2.1.8 a partir de 2.1.7. Adicionado suporte para identidades gerenciadas do Microsoft Entra atribuídas a usuários e sistemas.
- .NET Core: Adicionadas implantações independentes e suporte ao .NET 6.0 usando o .NET Startup Hook.
2.8.41
- Node.js extensão: AI SDK atualizado para 2.1.7 de 2.1.3.
- .NET Core: Versão fora de suporte removida (2.1). As versões suportadas são 3.1 e 5.0.
2.8.40
- Extensão JAVA: Atualizado para o Java Agent 3.1.1 (GA) a partir do 3.0.2.
- Node.js extensão: AI SDK atualizado para 2.1.3 de 1.8.8.
2.8.39
- .NET Core: Adicionado suporte ao .NET Core 5.0.
2.8.38
- Extensão JAVA: atualizado para Java Agent 3.0.2 (GA) a partir do 2.5.1.
- Node.js extensão: AI SDK atualizado para 1.8.8 de 1.8.7.
- .NET Core: versões fora de suporte removidas (2.0, 2.2, 3.0). As versões suportadas são 2.1 e 3.1.
2.8.37
- Extensão AppSvc para Windows: Fez o .NET Core funcionar com qualquer versão do System.Diagnostics.DiagnosticSource.dll.
2.8.36
- Extensão AppSvc para Windows: Ativado Inter-op com AI SDK no .NET Core.
2.8.35
- Extensão AppSvc para Windows: adicionado suporte ao .NET Core 3.1.
2.8.33
- Agentes .NET, .NET core, Java e Node.js e a Extensão Windows: Suporte para nuvens soberanas. As cadeias de conexões podem ser usadas para enviar dados para nuvens soberanas.
2.8.31
- O agente ASP.NET Core corrigiu um problema com o SDK do Application Insights. Se o tempo de execução carregou a versão incorreta do
System.Diagnostics.DiagnosticSource.dll
, a extensão sem código não trava o aplicativo e recua. Para corrigir o problema, os clientes devem removerSystem.Diagnostics.DiagnosticSource.dll
da pasta bin ou usar a versão mais antiga da extensão definindoApplicationInsightsAgent_EXTENSIONVERSION=2.8.24
. Caso contrário, o monitoramento de aplicativos não será habilitado.
2.8.26
- ASP.NET Agente principal: corrigido o problema relacionado ao SDK do Application Insights atualizado. O agente não tenta carregar
AiHostingStartup
se o ApplicationInsights.dll já estiver presente na pasta bin. Resolve questões relacionadas com a reflexão via 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 daDiagnosticSource
dll for carregada. Pode acontecer, por exemplo, seSystem.Diagnostics.DiagnosticSource.dll
estiver presente na pasta de publicação. Como atenuação, use a versão anterior da extensão definindo as configurações do aplicativo nos serviços do aplicativo: ApplicationInsightsAgent_EXTENSIONVERSION=2.8.24.
2.8.24
- Versão reempacotada da versão 2.8.21.
2.8.23
- Adicionado suporte ASP.NET monitoramento sem código Core 3.0.
- Atualizado ASP.NET Core SDK para 2.8.0 para versões de tempo de execução 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
- Versão atualizada do ASP.NET Core SDK da versão 2.3.0 para a mais recente (2.6.1) para 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.
Corrigido um bug na extensão ASP.NET Core que causava a injeção do SDK mesmo quando o aplicativo já estava instrumentado com o SDK. Para aplicativos 2.1 e 2.2, a presença de ApplicationInsights.dll na pasta do aplicativo agora faz com que a extensão recue. Para aplicativos 2.0, a extensão recua somente se o ApplicationInsights estiver habilitado com uma
UseApplicationInsights()
chamada.Correção permanente para resposta HTML incompleta para aplicativos ASP.NET Core. Essa correção agora é estendida para funcionar para aplicativos .NET Core 2.2.
Adicionado suporte para desativar a injeção de JavaScript para aplicativos ASP.NET Core (
APPINSIGHTS_JAVASCRIPT_ENABLED=false appsetting
). Para ASP.NET núcleo, a injeção de JavaScript está no modo "Opt-Out" por padrão, a menos que explicitamente desativada. (A configuração padrão é feita para manter o comportamento atual.)Corrigido ASP.NET bug de extensão Core que causava a injeção mesmo que o ikey não estivesse presente.
Corrigido um bug na lógica de prefixo da versão do SDK que causava uma versão incorreta do SDK na telemetria.
Adicionado prefixo de versão do SDK para aplicativos ASP.NET Core para identificar como a telemetria foi coletada.
Corrigida a página SCM- ApplicationInsights para mostrar corretamente a versão da extensão pré-instalada.
2.8.10
- Correção para resposta HTML incompleta para aplicativos ASP.NET Core.
Perguntas mais frequentes
Esta secção fornece respostas a perguntas comuns.
O que o Application Insights modifica no meu projeto?
Os detalhes dependem do tipo de projeto. Para uma aplicação 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 estes assemblies:
- Microsoft.ApplicationInsights
- Microsoft.ApplicationInsights.Platform
- Insere itens em:
- Web.config
- pacotes.config
- (Apenas para novos projetos, você adiciona o Application Insights a um projeto existente manualmente.) Insere trechos no código do cliente e do servidor para inicializá-los com a ID do recurso do Application Insights. Por exemplo, em um aplicativo MVC, o código é inserido na página principal Views/Shared/_Layout.cshtml.
Próximos passos
Saiba como habilitar o monitoramento de aplicativos de autoinstrumentação para seu aplicativo .NET Core, .NET, Java, Nodejs ou Python em execução no Serviço de Aplicativo.