Habilitar o monitoramento de aplicativos no Serviço de Aplicativo do Azure para aplicativos .NET, Node.js, Python e Java
Artigo
A autoinstrumentação, também conhecida como monitoramento de tempo de execução , é a maneira mais fácil de habilitar o Application Insights para o Serviço de Aplicativo do Azure sem exigir alterações de código ou configurações avançadas. Com base no seu cenário específico, avalie se você precisa de um monitoramento mais avançado por meio de instrumentação manual.
Nota
A 31 de março de 2025, o suporte da ingestão de chaves de instrumentação terminará. A ingestão de chaves de instrumentação continuará a funcionar, mas não forneceremos mais atualizações ou suporte para o recurso. Transição para cadeias de conexão para aproveitar os novos recursos.
Se o monitoramento de autoinstrumentação e a instrumentação manual baseada em SDK forem detetados, somente as configurações de instrumentação manual serão respeitadas. Esta disposição impede o envio de dados duplicados. Para saber mais, consulte Resolução de problemas.
Nota
Somente versões do .NET Core Long Term Support (LTS) são suportadas.
Selecione Application Insights no menu de navegação esquerdo do seu serviço de aplicativo e, em seguida, selecione Ativar.
Crie um novo recurso ou selecione um recurso existente do Application Insights para este aplicativo.
Nota
Ao selecionar OK para criar um novo recurso, você será solicitado a Aplicar configurações de monitoramento. Selecionar Continuar vincula seu novo recurso do Application Insights ao serviço do aplicativo. Em seguida, o serviço de aplicativo é reiniciado.
Depois de especificar qual recurso usar, você pode escolher como deseja que o Application Insights colete dados por plataforma para seu aplicativo. ASP.NET opções de coleção principal são Recomendado ou Desativado.
Importante
Se o monitoramento de autoinstrumentação e a instrumentação manual baseada em SDK forem detetados, somente as configurações de instrumentação manual serão respeitadas. Esta disposição impede o envio de dados duplicados. Para saber mais, consulte Resolução de problemas.
Nota
A combinação de APPINSIGHTS_JAVASCRIPT_ENABLED e urlCompression não é suportada. Para mais informações, consulte Resolução de Problemas.
Autoinstrumentação no portal do Azure
Selecione Application Insights no menu de navegação esquerdo do seu serviço de aplicativo e, em seguida, selecione Ativar.
Crie um novo recurso ou selecione um recurso existente do Application Insights para este aplicativo.
Nota
Ao selecionar OK para criar um novo recurso, você será solicitado a Aplicar configurações de monitoramento. Selecionar Continuar vincula seu novo recurso do Application Insights ao serviço do aplicativo. Em seguida, o serviço de aplicativo é reiniciado.
Depois de especificar qual recurso usar, você pode escolher como deseja que o Application Insights colete dados por plataforma para seu aplicativo. ASP.NET monitoramento de aplicativos está ativado por padrão com dois níveis diferentes de coleta, Recomendado e Básico.
A tabela a seguir resume os dados coletados para cada rota.
Dados
Recomendado
Básica
Adiciona tendências de utilização da CPU, memória e E/S
Sim
No
Recolhe tendências de utilização e permite a correlação dos resultados de disponibilidade para transações
Sim
Sim
Recolhe exceções sem processamento pelo processo anfitrião
Sim
Sim
Melhora a precisão das métricas de APM sob carga, quando é utilizada a amostragem
Sim
Sim
Correlaciona os microsserviços entre limites de pedidos/dependências
Selecione Application Insights no menu de navegação esquerdo do seu serviço de aplicativo e, em seguida, selecione Ativar.
Crie um novo recurso ou selecione um recurso existente do Application Insights para este aplicativo.
Nota
Ao selecionar OK para criar um novo recurso, você será solicitado a Aplicar configurações de monitoramento. Selecionar Continuar vincula seu novo recurso do Application Insights ao serviço do aplicativo. Em seguida, o serviço de aplicativo é reiniciado.
Importante
Se o monitoramento de autoinstrumentação e a instrumentação manual baseada em SDK forem detetados, somente as configurações de instrumentação manual serão respeitadas. Esta disposição impede o envio de dados duplicados. Para saber mais, consulte a seção Solução de problemas.
Nota
Você pode configurar o agente conectado automaticamente usando a APPLICATIONINSIGHTS_CONFIGURATION_CONTENT variável de ambiente na folha Variável Ambiente do Serviço de Aplicativo. Para obter detalhes sobre as opções de configuração que podem ser passadas por meio dessa variável de ambiente, consulte Configuração Node.js.
O Application Insights for Node.js é integrado ao Serviço de Aplicativo do Azure no Linux - contêineres baseados em código e personalizados, e ao Serviço de Aplicativo no Windows para aplicativos baseados em código. A integração está em pré-visualização pública.
Autoinstrumentação no portal do Azure
Selecione Application Insights no menu de navegação esquerdo do seu serviço de aplicativo e, em seguida, selecione Ativar.
Crie um novo recurso ou selecione um recurso existente do Application Insights para este aplicativo.
Nota
Ao selecionar OK para criar um novo recurso, você será solicitado a Aplicar configurações de monitoramento. Selecionar Continuar vincula seu novo recurso do Application Insights ao serviço do aplicativo. Em seguida, o serviço de aplicativo é reiniciado.
Depois de especificar qual recurso usar, você está pronto para ir.
Use a autoinstrumentação somente no Serviço de Aplicativo se você não estiver usando a instrumentação manual do OpenTelemetry em seu código, como a Distro OpenTelemetry do Azure Monitor ou o Exportador OpenTelemetry do Azure Monitor. Isso é para evitar que dados duplicados sejam enviados. Para saber mais sobre isso, confira a seção de solução de problemas neste artigo.
O Application Insights for Python integra-se com o Serviço de Aplicativo do Azure Linux baseado em código. A integração está em pré-visualização pública e adiciona o Python SDK, que está no GA. Ele instrumenta bibliotecas Python populares em seu código, permitindo que você reúna e correlacione automaticamente dependências, logs e métricas. Para ver quais chamadas e métricas são coletadas, consulte Bibliotecas Python
A telemetria de registro em log é coletada no nível do registrador raiz. Para saber mais sobre a hierarquia de log nativo do Python, visite a documentação de log do Python.
Pré-requisitos
Python versão 3.11 ou anterior.
O Serviço de Aplicativo deve ser implantado como código. Não há suporte para contêineres personalizados.
Autoinstrumentação no portal do Azure
Selecione Application Insights no menu de navegação esquerdo do seu serviço de aplicativo e, em seguida, selecione Ativar.
Crie um novo recurso ou selecione um recurso existente do Application Insights para este aplicativo.
Nota
Ao selecionar OK para criar um novo recurso, você será solicitado a Aplicar configurações de monitoramento. Selecionar Continuar vincula seu novo recurso do Application Insights ao serviço do aplicativo. Em seguida, o serviço de aplicativo é reiniciado.
Você especifica o recurso e ele está pronto para uso.
Bibliotecas Python
Após a instrumentação, você coleta chamadas e métricas destas bibliotecas Python:
Para usar a instrumentação OpenTelemetry Django, você precisa definir a DJANGO_SETTINGS_MODULE variável de ambiente nas configurações do Serviço de Aplicativo para apontar da pasta do aplicativo para o módulo de configurações.
Para obter mais informações, consulte a documentação do Django.
Adicionar uma biblioteca de instrumentação da comunidade
Você pode coletar mais dados automaticamente ao incluir bibliotecas de instrumentação da comunidade OpenTelemetry .
Atenção
Não apoiamos nem garantimos a qualidade das bibliotecas de instrumentação comunitárias. Para sugerir um para a nossa distro, publique ou vote na nossa comunidade de feedback. Esteja ciente, alguns são baseados em especificações experimentais OpenTelemetry e podem introduzir futuras mudanças de rutura.
Para adicionar a biblioteca de instrumentação OpenTelemetry da comunidade, instale-a através do ficheiro da requirements.txt sua aplicação. A autoinstrumentação OpenTelemetry capta e instrumenta automaticamente todas as bibliotecas instaladas. Encontre a lista de bibliotecas comunitárias aqui.
Atualizar manualmente a extensão/agente de monitoramento
Atualização a partir das versões 2.8.9 e superiores
A atualização da versão 2.8.9 acontece automaticamente, sem ações extras. Os novos bits de monitoramento são entregues em segundo plano para o serviço de aplicativo de destino e são captados na reinicialização do aplicativo.
Para verificar qual versão da extensão você está executando, vá para https://yoursitename.scm.azurewebsites.net/ApplicationInsights.
Atualização das versões 1.0.0 - 2.6.5
A partir da versão 2.8.9, a extensão de site pré-instalada é usada. Se estiver a utilizar uma versão anterior, pode atualizar de duas formas:
Atualizar habilitando por meio do portal do Azure: mesmo que você tenha a extensão do Application Insights para Serviço de Aplicativo instalada, a interface do usuário mostra apenas o botão Habilitar . Nos bastidores, a antiga extensão de site privado é removida.
Defina as configurações do aplicativo para habilitar a extensão ApplicationInsightsAgentde site pré-instalada. Para obter mais informações, consulte Habilitar por meio do PowerShell.
Remova manualmente a extensão de site privado chamada extensão do Application Insights para o Serviço de Aplicativo do Azure.
Se a atualização for feita a partir de uma versão anterior à 2.5.1, verifique se as ApplicationInsights DLLs foram removidas da pasta bin do aplicativo. Para mais informações, consulte Resolução de Problemas.
Atualização a partir das versões 2.8.9 e superiores
A atualização da versão 2.8.9 acontece automaticamente, sem ações extras. Os novos bits de monitoramento são entregues em segundo plano para o serviço de aplicativo de destino e são captados na reinicialização do aplicativo.
Para verificar qual versão da extensão você está executando, vá para https://yoursitename.scm.azurewebsites.net/ApplicationInsights.
Atualização das versões 1.0.0 - 2.6.5
A partir da versão 2.8.9, a extensão de site pré-instalada é usada. Se estiver a utilizar uma versão anterior, pode atualizar de duas formas:
Atualizar habilitando por meio do portal do Azure: mesmo que você tenha a extensão do Application Insights para Serviço de Aplicativo instalada, a interface do usuário mostra apenas o botão Habilitar . Nos bastidores, a antiga extensão de site privado é removida.
Defina as configurações do aplicativo para habilitar a extensão ApplicationInsightsAgentde site pré-instalada. Para obter mais informações, consulte Habilitar por meio do PowerShell.
Remova manualmente a extensão de site privado chamada extensão do Application Insights para o Serviço de Aplicativo do Azure.
Se a atualização for feita a partir de uma versão anterior à 2.5.1, verifique se as ApplicationInsights DLLs foram removidas da pasta bin do aplicativo. Para mais informações, consulte Resolução de Problemas.
A versão Java do Application Insights é atualizada automaticamente como parte das atualizações do Serviço de Aplicativo. Se você encontrar um problema que foi corrigido na versão mais recente do agente Java do Application Insights, poderá atualizá-lo manualmente.
Carregue o arquivo jar do agente Java para o Serviço de Aplicativo.
a. Primeiro, obtenha a versão mais recente da CLI do Azure seguindo as instruções aqui.
b. Em seguida, obtenha a versão mais recente do agente Java do Application Insights seguindo as instruções aqui.
c. Em seguida, implemente o arquivo jar do agente Java no Serviço de Aplicativo usando o seguinte comando: az webapp deploy --src-path applicationinsights-agent-{VERSION_NUMBER}.jar --target-path java/applicationinsights-agent-{VERSION_NUMBER}.jar --type static --resource-group {YOUR_RESOURCE_GROUP} --name {YOUR_APP_SVC_NAME}. Como alternativa, você pode usar este guia para implantar o agente por meio do plug-in Maven.
Desative o Application Insights por meio da guia Application Insights no portal do Azure.
Depois que o arquivo jar do agente for carregado, vá para Configurações do Serviço de Aplicativo. Se você precisar usar o Comando de Inicialização para Linux, inclua argumentos JVM:
O Startup Command não honra JAVA_OPTS para JavaSE ou CATALINA_OPTS para Tomcat.
Se você não usar o Comando de Inicialização, crie uma nova variável de ambiente, JAVA_OPTS para JavaSE ou CATALINA_OPTS Tomcat, com o valor -javaagent:{PATH_TO_THE_AGENT_JAR}/applicationinsights-agent-{VERSION_NUMBER}.jar.
Para aplicar as alterações, reinicie o aplicativo.
Nota
Se você definir a JAVA_OPTS variável de ambiente para JavaSE ou CATALINA_OPTS Tomcat, precisará desabilitar o Application Insights no portal do Azure. Como alternativa, se você preferir habilitar o Application Insights no portal do Azure, certifique-se de não definir a JAVA_OPTS variável para JavaSE ou CATALINA_OPTS Tomcat nas configurações do Serviço de Aplicativo.
A versão do Application Insights Node.js é atualizada automaticamente como parte das atualizações do Serviço de Aplicativo e não pode ser atualizada manualmente.
Se você encontrar um problema que foi corrigido na versão mais recente do SDK do Application Insights, poderá remover a autoinstrumentação e instrumentar manualmente seu aplicativo com a versão mais recente do SDK.
A versão Python do Application Insights é atualizada automaticamente como parte das atualizações do Serviço de Aplicativo e não pode ser atualizada manualmente.
Se você encontrar um problema que foi corrigido na versão mais recente do SDK do Application Insights, poderá remover a autoinstrumentação e instrumentar manualmente seu aplicativo com a versão mais recente do SDK.
No momento, não oferecemos opções para configurar a extensão de monitoramento para ASP.NET Core.
Para configurar a amostragem, que anteriormente era possível controlar por meio do arquivo applicationinsights.config , agora você pode interagir com ela por meio das configurações do aplicativo com o prefixo MicrosoftAppInsights_AdaptiveSamplingTelemetryProcessorcorrespondente.
Por exemplo, para alterar a porcentagem de amostragem inicial, você pode criar uma configuração de aplicativo de MicrosoftAppInsights_AdaptiveSamplingTelemetryProcessor_InitialSamplingPercentage e um valor de 100.
Para desativar a amostragem, defina MicrosoftAppInsights_AdaptiveSamplingTelemetryProcessor_MinSamplingPercentage como um valor de 100.
Para obter a lista de configurações e definições do processador de telemetria de amostragem adaptável suportado, consulte o código e a documentação de amostragem.
Depois de especificar qual recurso usar, você pode configurar o agente Java. Se você não configurar o agente Java, as configurações padrão serão aplicadas.
O conjunto completo de configurações está disponível. Você só precisa colar um arquivo json válido. Exclua a cadeia de conexão e todas as configurações que estão em visualização - você pode adicionar os itens que estão atualmente em visualização à medida que eles se tornam disponíveis ao público.
Depois de modificar as configurações por meio do portal do Azure, APPLICATIONINSIGHTS_CONFIGURATION_FILE as variáveis de ambiente são preenchidas automaticamente e aparecem no painel de configurações do Serviço de Aplicativo. Essa variável contém o conteúdo json completo que você colou na caixa de texto de configuração do portal do Azure para seu aplicativo Java.
O agente Node.js pode ser configurado usando JSON. Defina a APPLICATIONINSIGHTS_CONFIGURATION_CONTENT variável de ambiente para a cadeia de caracteres JSON ou defina a APPLICATIONINSIGHTS_CONFIGURATION_FILE variável de ambiente para o caminho do arquivo que contém o JSON.
Se definido como None, desativa a coleta e a exportação da telemetria de registro.
OTEL_METRICS_EXPORTER
Se definido como None, desativa a coleta e a exportação de telemetria métrica.
OTEL_TRACES_EXPORTER
Se definido como None, desativa a coleta e a exportação da telemetria de rastreamento distribuído.
OTEL_BLRP_SCHEDULE_DELAY
Especifica o intervalo de exportação de log em milissegundos. O padrão é 5000.
OTEL_BSP_SCHEDULE_DELAY
Especifica o intervalo de exportação de rastreamento distribuído em milissegundos. O padrão é 5000.
OTEL_TRACES_SAMPLER_ARG
Especifica a proporção de telemetria de rastreamento distribuído a ser amostrada. Os valores aceites variam entre 0 e 1. O padrão é 1.0, o que significa que nenhuma telemetria é amostrada.
OTEL_PYTHON_DISABLED_INSTRUMENTATIONS
Especifica quais instrumentações OpenTelemetry devem ser desabilitadas. Quando desativada, as instrumentações não são executadas como parte da autoinstrumentação. Aceita uma lista separada por vírgulas de nomes de bibliotecas minúsculas. Por exemplo, defina-o para "psycopg2,fastapi" desativar as instrumentações Psycopg2 e FastAPI. O padrão é uma lista vazia, habilitando todas as instrumentações suportadas.
O monitoramento do lado do cliente é habilitado por padrão para aplicativos ASP.NET Core com coleção Recomendado , independentemente de a configuração APPINSIGHTS_JAVASCRIPT_ENABLED do aplicativo estar presente.
Se você quiser desativar o monitoramento do lado do cliente:
Selecione Definições>Configuração.
Em Configurações do aplicativo, crie uma nova configuração do aplicativo com as seguintes informações:
Designação: APPINSIGHTS_JAVASCRIPT_ENABLED
Valor: false
Salve as configurações. Reinicie a aplicação.
O monitoramento do lado do cliente é uma opção para ASP.NET. Para habilitar o monitoramento do lado do cliente:
Selecione Definições>Configuração.
Em Configurações do aplicativo, crie uma nova configuração do aplicativo:
Nome: Digite APPINSIGHTS_JAVASCRIPT_ENABLED.
Valor: insira true.
Salve as configurações e reinicie seu aplicativo.
Para desativar o monitoramento do lado do cliente, remova o par de valores de chave associado das configurações do aplicativo ou defina o valor como false.
Para habilitar o monitoramento do lado do cliente, o agente Java pode injetar o Browser SDK Loader (Preview) nas páginas HTML do seu aplicativo, incluindo a configuração da cadeia de conexão apropriada.
Extensão principal, que controla o monitoramento do tempo de execução.
~2 para Windows ou ~3 Linux
XDT_MicrosoftApplicationInsights_Mode
No modo padrão, apenas recursos essenciais são habilitados para garantir o desempenho ideal.
disabled ou recommended.
XDT_MicrosoftApplicationInsights_PreemptSdk
Apenas para aplicações ASP.NET Core. Permite a interoperabilidade (interoperação) com o SDK do Application Insights. Carrega a extensão lado a lado com o SDK e a usa para enviar telemetria. (Desabilita o SDK do Application Insights.)
1
Definições de configurações do aplicativo
Nome de definição de aplicação
Definição
Value
ApplicationInsightsAgent_EXTENSION_VERSION
Extensão principal, que controla o monitoramento do tempo de execução.
~2
XDT_MicrosoftApplicationInsights_Mode
No modo padrão, apenas recursos essenciais são habilitados para garantir o desempenho ideal.
default ou recommended
InstrumentationEngine_EXTENSION_VERSION
Controla se o mecanismo InstrumentationEngine de regravação binária está ligado. Esta definição tem implicações no desempenho e afeta o tempo de arranque/arranque a frio.
~1
XDT_MicrosoftApplicationInsights_BaseExtensions
Controla se o texto da tabela SQL e do Azure é capturado junto com as chamadas de dependência. Aviso de desempenho: O tempo de inicialização a frio do aplicativo é afetado. Esta configuração requer o InstrumentationEngine.
~1
Definições de configurações do aplicativo
Nome de definição de aplicação
Definição
Value
ApplicationInsightsAgent_EXTENSION_VERSION
Extensão principal, que controla o monitoramento do tempo de execução.
~2 no Windows ou ~3 no Linux.
XDT_MicrosoftApplicationInsights_Java
Sinalize para controlar se o agente Java está incluído.
0 ou 1 (aplicável apenas no Windows).
Nota
O Depurador de Snapshot não está disponível para aplicativos Java.
Definições de configurações do aplicativo
Nome de definição de aplicação
Definição
Value
ApplicationInsightsAgent_EXTENSION_VERSION
Extensão principal, que controla o monitoramento do tempo de execução.
~2 no Windows ou ~3 no Linux.
XDT_MicrosoftApplicationInsights_NodeJS
Sinalize para controlar se Node.js agente está incluído.
0 ou 1 (aplicável apenas no Windows).
Nota
O Depurador de Instantâneo não está disponível para aplicativos Node.js.
Definições de configurações do aplicativo
Nome de definição de aplicação
Definição
Value
APPLICATIONINSIGHTS_CONNECTION_STRING
Cadeia de conexões para seu recurso do Application Insights.
Exemplo: abcd1234-ab12-cd34-abcd1234abcd
ApplicationInsightsAgent_EXTENSION_VERSION
Extensão principal, que controla o monitoramento do tempo de execução.
~3
Nota
O Depurador de Snapshot não está disponível para aplicativos Python.
Configurações do aplicativo do Serviço de Aplicativo com o Azure Resource Manager
As configurações de aplicativo para o Serviço de Aplicativo do Azure podem ser gerenciadas e configuradas com modelos do Azure Resource Manager. Você pode usar esse método ao implantar novos recursos do Serviço de Aplicativo com a automação do Gerenciador de Recursos ou modificar as configurações dos recursos existentes.
A estrutura básica do JSON de configurações do aplicativo para um recurso do Serviço de Aplicativo:
Para obter um exemplo de um modelo do Gerenciador de Recursos com configurações de aplicativo definidas para o Application Insights, esse modelo pode ser útil. Especificamente, consulte a seção que começa na linha 238.
Automatize a criação de um recurso do Application Insights e vincule-o ao recurso do Serviço de Aplicativo recém-criado
Para criar um modelo do Gerenciador de Recursos com as configurações padrão do Application Insights, inicie o processo como se fosse criar um novo aplicativo Web com o Application Insights habilitado.
Crie um novo recurso do Serviço de Aplicativo com as informações do aplicativo Web desejado. Habilite o Application Insights na guia Monitoramento .
Selecione Rever + criar. Em seguida, selecione Baixar um modelo para automação.
Esta opção gera o modelo mais recente do Resource Manager com todas as configurações necessárias configuradas.
No exemplo a seguir, substitua todas as instâncias de pelo nome do AppMonitoredSite site:
Nota
Se estiver usando o Windows, defina ApplicationInsightsAgent_EXTENSION_VERSION como ~2. Se estiver usando Linux, defina ApplicationInsightsAgent_EXTENSION_VERSION como ~3.
Para habilitar o monitoramento de aplicativos por meio do PowerShell, somente as configurações subjacentes do aplicativo devem ser alteradas. O exemplo a seguir habilita o monitoramento de aplicativos para um site chamado AppMonitoredSite no grupo AppMonitoredRGde recursos . Ele configura os dados a serem enviados para a 012345678-abcd-ef01-2345-6789abcd chave de instrumentação.
Se estiver usando o Windows, defina ApplicationInsightsAgent_EXTENSION_VERSION como ~2. Se estiver usando Linux, defina ApplicationInsightsAgent_EXTENSION_VERSION como ~3.
O que o Application Insights modifica no meu projeto?
Os detalhes dependem do tipo de projeto. A lista a seguir é um exemplo de um aplicativo Web.
Adiciona arquivos ao seu projeto:
ApplicationInsights.config
ai.js
Instala 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
Inclui montagens em pacotes:
Microsoft.ApplicationInsights
Microsoft.ApplicationInsights.Platform
Insere itens em:
Web.config
pacotes.config
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. Apenas para novos projetos, você adiciona o Application Insights a um projeto existente manualmente.
Qual é a diferença entre as métricas padrão do Application Insights e as métricas do Serviço de Aplicativo do Azure?
O Application Insights coleta telemetria para as solicitações que chegaram ao aplicativo. Se a falha ocorrer em WebApps/WebServer e a solicitação não chegar ao aplicativo do usuário, o Application Insights não terá nenhuma telemetria sobre isso.
A duração calculada serverresponsetime pelo Application Insights não corresponde necessariamente ao tempo de resposta do servidor observado pelos aplicativos Web. Esse comportamento ocorre porque o Application Insights só conta a duração quando a solicitação realmente chega ao aplicativo do usuário. Se a solicitação estiver presa ou enfileirada no WebServer, o tempo de espera será incluído nas métricas de aplicativos Web, mas não nas métricas do Application Insights.
Resolução de Problemas
Testar a conectividade entre o host do aplicativo e o serviço de ingestão
SDKs e agentes do Application Insights enviam telemetria para serem ingeridos como chamadas REST para nossos pontos de extremidade de ingestão. Você pode testar a conectividade do seu servidor Web ou máquina host de aplicativo para os pontos de extremidade do serviço de ingestão usando clientes REST brutos do PowerShell ou comandos curl. Consulte Solucionar problemas de telemetria de aplicativo ausente no Azure Monitor Application Insights.
Quando você cria um aplicativo Web com os ASP.NET Core tempos de execução no Serviço de Aplicativo, ele implanta uma única página HTML estática como um site inicial. Não recomendamos que você solucione um problema com o modelo padrão. Implante um aplicativo antes de solucionar um problema.
Telemetria em falta
Windows
Verifique se a configuração do ApplicationInsightsAgent_EXTENSION_VERSION aplicativo está definida como um valor de ~2.
Navegue para https://yoursitename.scm.azurewebsites.net/ApplicationInsights.
Confirme se o Status da Extensão do Application Insights é Pre-Installed Site Extension, version 2.8.x.xxxx, is running.
Confirme se a fonte de status existe e se parece com Status source D:\home\LogFiles\ApplicationInsights\status\status_RD0003FF0317B6_4248_1.json.
Se um valor semelhante não estiver presente, isso significa que o aplicativo não está em execução no momento ou não é suportado. Para garantir que o aplicativo esteja em execução, tente visitar manualmente a URL do aplicativo/pontos de extremidade do aplicativo, o que permite que as informações de tempo de execução fiquem disponíveis.
Confirme se IKeyExists é True. Se for , adicione APPINSIGHTS_INSTRUMENTATIONKEY e APPLICATIONINSIGHTS_CONNECTION_STRING com o GUID do ikey às configurações do Falseaplicativo.
Se seu aplicativo se referir a qualquer pacote do Application Insights, habilitar a integração do Serviço de Aplicativo pode não entrar em vigor e os dados podem não aparecer no Application Insights. Um exemplo seria se você instrumentou ou tentou instrumentar anteriormente seu aplicativo com o ASP.NET Core SDK. Para corrigir o problema, no portal do Azure, ative a Interoperabilidade com o SDK do Application Insights.
Importante
Esta funcionalidade está em pré-visualização.
Os dados são enviados usando uma abordagem sem código, mesmo que o SDK do Application Insights tenha sido originalmente usado ou tentado ser usado.
Importante
Se o aplicativo usou o SDK do Application Insights para enviar qualquer telemetria, a telemetria será desabilitada. Em outras palavras, a telemetria personalizada (por exemplo, quaisquer Track*() métodos) e as configurações personalizadas (como amostragem) serão desabilitadas.
Linux
Verifique se a configuração do ApplicationInsightsAgent_EXTENSION_VERSION aplicativo está definida como um valor de ~3.
Navegue para https://your site name.scm.azurewebsites.net/ApplicationInsights.
Neste site, confirme:
A fonte de status existe e se parece com Status source /var/log/applicationinsights/status_abcde1234567_89_0.json.
O valor Auto-Instrumentation enabled successfully é exibido. Se um valor semelhante não estiver presente, isso significa que o aplicativo não está em execução ou não é suportado. Para garantir que o aplicativo esteja em execução, tente visitar manualmente a URL do aplicativo/pontos de extremidade do aplicativo, o que permite que as informações de tempo de execução fiquem disponíveis.
IKeyExists é True. Se for , adicione APPINSIGHTS_INSTRUMENTATIONKEY e APPLICATIONINSIGHTS_CONNECTION_STRING com o GUID do ikey às configurações do Falseaplicativo.
O site padrão implantado com aplicativos Web não oferece suporte ao monitoramento automático do lado do cliente
Quando você cria um aplicativo Web com os tempos de execução do ASP.NET Core no Serviço de Aplicativo, ele implanta uma única página HTML estática como um site inicial. A página da Web estática também carrega um aplicativo ASP. Web Part gerenciada por NET no IIS. Esse comportamento permite testar o monitoramento do lado do servidor sem código, mas não oferece suporte ao monitoramento automático do lado do cliente.
Se você quiser testar o servidor sem código e o monitoramento do lado do cliente para o ASP.NET Core em um aplicativo Web do Serviço de Aplicativo, recomendamos seguir os guias oficiais para criar um aplicativo Web ASP.NET Core. Depois, use as instruções no artigo atual para habilitar o monitoramento.
PHP e WordPress não são suportados
Sites PHP e WordPress não são suportados. Atualmente, não há SDK/agente oficialmente suportado para monitoramento do lado do servidor dessas cargas de trabalho. Para rastrear transações do lado do cliente em um site PHP ou WordPress, adicione o JavaScript do lado do cliente às suas páginas da Web usando o JavaScript SDK.
A tabela a seguir fornece uma explicação do que esses valores significam, suas causas subjacentes e correções recomendadas.
Valor do problema
Explicação
Fix
AppAlreadyInstrumented:true
Esse valor indica que a extensão detetou algum aspeto do SDK já presente no aplicativo e recua. Uma referência a Microsoft.ApplicationInsights.AspNetCore ou Microsoft.ApplicationInsights pode causar esse valor.
Remova as referências. Algumas dessas referências são adicionadas por padrão de determinados modelos do Visual Studio. Versões mais antigas da referência Microsoft.ApplicationInsightsdo Visual Studio .
AppAlreadyInstrumented:true
A presença de Microsoft.ApplicationsInsights DLL na pasta do aplicativo de uma implantação anterior também pode causar esse valor.
Limpe a pasta do aplicativo para garantir que essas DLLs sejam removidas. Verifique o diretório bin do seu aplicativo local e o diretório wwwroot no Serviço de Aplicativo. (Para verificar o diretório wwwroot do seu aplicativo Web do Serviço de Aplicativo, selecione Ferramentas avançadas (Kudu) >Debug console>CMD>home\site\wwwroot).
IKeyExists:false
Esse valor indica que a chave de instrumentação não está presente na configuração APPINSIGHTS_INSTRUMENTATIONKEYdo aplicativo. As causas possíveis incluem a remoção acidental dos valores ou o esquecimento de definir os valores no script de automação.
Verifique se a configuração está presente nas configurações do aplicativo do Serviço de Aplicativo.
Nota
Quando você cria um aplicativo Web com os ASP.NET tempos de execução no Serviço de Aplicativo, ele implanta uma única página HTML estática como um site inicial. Não recomendamos que você solucione um problema com um modelo padrão. Implante um aplicativo antes de solucionar um problema.
Telemetria em falta
Verifique se a configuração do ApplicationInsightsAgent_EXTENSION_VERSION aplicativo está definida como um valor de ~2.
Navegue para https://yoursitename.scm.azurewebsites.net/ApplicationInsights.
Confirme se Application Insights Extension Status está Pre-Installed Site Extension, version 2.8.x.xxxx e está em execução.
Confirme se a fonte de status existe e se parece com Status source D:\home\LogFiles\ApplicationInsights\status\status_RD0003FF0317B6_4248_1.json.
Se um valor semelhante não estiver presente, isso significa que o aplicativo não está em execução no momento ou não é suportado. Para garantir que o aplicativo esteja em execução, tente visitar manualmente a URL do aplicativo/pontos de extremidade do aplicativo, o que permite que as informações de tempo de execução fiquem disponíveis.
Confirme que IKeyExists é true.
Caso contrário, adicione APPINSIGHTS_INSTRUMENTATIONKEY e APPLICATIONINSIGHTS_CONNECTION_STRING com o GUID da chave de instrumentação às configurações do aplicativo.
Confirme que não há entradas para AppAlreadyInstrumented, AppContainsDiagnosticSourceAssemblye AppContainsAspNetTelemetryCorrelationAssembly.
Se alguma dessas entradas existir, remova os seguintes pacotes do seu aplicativo: Microsoft.ApplicationInsights, System.Diagnostics.DiagnosticSourcee Microsoft.AspNet.TelemetryCorrelation.
O site padrão implantado com aplicativos Web não oferece suporte ao monitoramento automático do lado do cliente
Quando você cria um aplicativo Web com os tempos de execução ASP.NET no Serviço de Aplicativo, ele implanta uma única página HTML estática como um site inicial. A página da Web estática também carrega um aplicativo ASP. Web Part gerenciada por NET no IIS. Esta página permite testar o monitoramento sem código do lado do servidor, mas não oferece suporte ao monitoramento automático do lado do cliente.
Se você quiser testar o servidor sem código e o monitoramento do lado do cliente para ASP.NET em um aplicativo Web do Serviço de Aplicativo, recomendamos seguir os guias oficiais para criar um aplicativo Web do ASP.NET Framework. Depois, use as instruções no artigo atual para habilitar o monitoramento.
APPINSIGHTS_JAVASCRIPT_ENABLED e urlCompression não suportados
Se você usar APPINSIGHTS_JAVASCRIPT_ENABLED=true em casos em que o conteúdo é codificado, você pode obter erros como:
Erro de regravação de URL 500.
500.53 Erro do módulo de reescrita de URL com a mensagem "As regras de reescrita de saída não podem ser aplicadas quando o conteúdo da resposta HTTP é codificado ('gzip')."
Ocorre um erro porque a configuração do aplicativo está definida como true e a APPINSIGHTS_JAVASCRIPT_ENABLED codificação de conteúdo está presente ao mesmo tempo. Este cenário ainda não é suportado. A solução alternativa é remover APPINSIGHTS_JAVASCRIPT_ENABLED das configurações do aplicativo. Infelizmente, se a instrumentação JavaScript do lado do cliente/navegador ainda for necessária, referências manuais do SDK serão necessárias para suas páginas da Web. Siga as instruções para instrumentação manual com o JavaScript SDK.
Para obter as informações mais recentes sobre o agente/extensão do Application Insights, consulte as notas de versão.
PHP e WordPress não são suportados
Sites PHP e WordPress não são suportados. Atualmente, não há SDK/agente oficialmente suportado para monitoramento do lado do servidor dessas cargas de trabalho. Para rastrear transações do lado do cliente em um site PHP ou WordPress, adicione o JavaScript do lado do cliente às suas páginas da Web usando o JavaScript SDK.
A tabela a seguir fornece uma explicação do que esses valores significam, suas causas subjacentes e correções recomendadas.
Valor do problema
Explicação
Fix
AppAlreadyInstrumented:true
Esse valor indica que a extensão detetou algum aspeto do SDK já presente no aplicativo e recua. Uma referência a System.Diagnostics.DiagnosticSource, Microsoft.AspNet.TelemetryCorrelation, ou Microsoft.ApplicationInsights pode causar esse valor.
Remova as referências. Algumas dessas referências são adicionadas por padrão de determinados modelos do Visual Studio. Versões mais antigas do Visual Studio podem adicionar referências ao Microsoft.ApplicationInsights.
AppAlreadyInstrumented:true
A presença das DLLs anteriores na pasta do aplicativo de uma implantação anterior também pode causar esse valor.
Limpe a pasta do aplicativo para garantir que essas DLLs sejam removidas. Verifique o diretório bin do seu aplicativo local e o diretório wwwroot no recurso do Serviço de Aplicativo. Para verificar o diretório wwwroot do seu aplicativo Web do Serviço de Aplicativo, selecione Ferramentas Avançadas (Kudu)>Depurar console>CMD>home\site\wwwroot.
Esse valor indica que a extensão detetou referências no Microsoft.AspNet.TelemetryCorrelation aplicativo e recua.
Remova a referência.
AppContainsDiagnosticSourceAssembly**:true
Esse valor indica que a extensão detetou referências no System.Diagnostics.DiagnosticSource aplicativo e recua.
Por ASP.NET, remova a referência.
IKeyExists:false
Esse valor indica que a chave de instrumentação não está presente na configuração APPINSIGHTS_INSTRUMENTATIONKEYdo aplicativo. As causas possíveis podem ser que os valores foram removidos acidentalmente ou que você esqueceu de definir os valores no script de automação.
Verifique se a configuração está presente nas configurações do aplicativo do Serviço de Aplicativo.
System.IO.FileNotFoundException após a atualização 2.8.44
A versão 2.8.44 da autoinstrumentação atualiza o SDK do Application Insights para 2.20.0. O SDK do Application Insights tem uma referência indireta a System.Runtime.CompilerServices.Unsafe.dll through System.Diagnostics.DiagnosticSource.dll. Se o aplicativo tiver redirecionamento de vinculação para System.Runtime.CompilerServices.Unsafe.dll e se essa biblioteca não estiver presente na pasta do aplicativo, ele poderá lançar System.IO.FileNotFoundException.
Para resolver esse problema, remova a entrada de redirecionamento de vinculação para System.Runtime.CompilerServices.Unsafe.dll do arquivo web.config. Se o aplicativo quiser usar System.Runtime.CompilerServices.Unsafe.dll, defina o redirecionamento de vinculação como mostrado aqui:
Como uma solução temporária, você pode definir a configuração ApplicationInsightsAgent_EXTENSION_VERSION do aplicativo para um valor de 2.8.37. Essa configuração aciona o Serviço de Aplicativo para usar a extensão antiga do Application Insights. As atenuações temporárias só devem ser utilizadas como medidas provisórias.
Telemetria em falta
Verifique se ApplicationInsightsAgent_EXTENSION_VERSION a configuração do aplicativo está definida como um valor de ~2 no Windows, ~3 no Linux
Examine o arquivo de log para ver se o agente foi iniciado com êxito: navegue até https://yoursitename.scm.azurewebsites.net/, em SSH change to the root directory, o arquivo de log está localizado em LogFiles/ApplicationInsights.
Depois de habilitar o monitoramento de aplicativos para seu aplicativo Java, você pode validar se o agente está funcionando observando as métricas em tempo real - mesmo antes de implantar e aplicar no Serviço de Aplicativo, você verá algumas solicitações do ambiente. Lembre-se de que o conjunto completo de telemetria só estará disponível quando seu aplicativo for implantado e executado.
Defina APPLICATIONINSIGHTS_SELF_DIAGNOSTICS_LEVEL a variável de ambiente como debug se você não vir nenhum erro e não houver telemetria.
Telemetria em falta
Windows
Verifique se ApplicationInsightsAgent_EXTENSION_VERSION a configuração do aplicativo está definida como um valor de ~2.
Navegue para https://yoursitename.scm.azurewebsites.net/ApplicationInsights.
Confirme se a seringa Application Insights Extension StatusPre-Installed Site Extension, version 2.8.x.xxxx, is running.
Se SDKPresent for verdadeiro, significa que a extensão detetou que algum aspeto do SDK já está presente no aplicativo e irá recuar.
Telemetria duplicada
Use a autoinstrumentação somente no Serviço de Aplicativo se você não estiver usando a instrumentação manual do OpenTelemetry em seu código, como a Distro OpenTelemetry do Azure Monitor ou o Exportador OpenTelemetry do Azure Monitor.
Usar a autoinstrumentação sobre a instrumentação manual pode causar telemetria duplicada e aumentar seu custo. Para usar a autoinstrumentação OpenTelemetry do Serviço de Aplicativo, primeiro remova a instrumentação manual do OpenTelemetry do seu código.
Telemetria em falta
Se a telemetria estiver faltando, siga estas etapas para confirmar se a autoinstrumentação está ativada corretamente.
Confirme se a autoinstrumentação está habilitada na experiência do Application Insights em seu recurso do Serviço de Aplicativo.
Confirme se a configuração do ApplicationInsightsAgent_EXTENSION_VERSION aplicativo está definida como um valor de ~3 e se você APPLICATIONINSIGHTS_CONNECTION_STRING aponta para o recurso apropriado do Application Insights.
Verifique os diagnósticos de autoinstrumentação e os registos de estado.
a. Navegue até /var/log/applicationinsights/ e abra status_*.json.
b. Confirme se AgentInitializedSuccessfully está definido como true e IKey se tem um iKey válido.
O applicationinsights-extension.log arquivo na mesma pasta pode mostrar outros diagnósticos úteis.
Aplicativos Django
Se o seu aplicativo usa o Django e está falhando ao iniciar ou usando configurações incorretas, certifique-se de definir a DJANGO_SETTINGS_MODULE variável de ambiente. Consulte a seção Instrumentação Django para obter detalhes.
Para obter as últimas atualizações e correções de bugs, consulte as notas de versão.
Notas de versão
Esta seção contém as notas de versão do Serviço de Aplicativo do Azure com base na versão ANT para instrumentação em 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.
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
Adicionadas implantações independentes e suporte ao .NET 6.0 usando o .NET Startup Hook.
2.8.41
Versão fora de suporte removida (2.1). As versões suportadas são 3.1 e 5.0.
2.8.39
Adicionado suporte ao .NET Core 5.0.
2.8.38
Removidas as versões fora de suporte (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 remover System.Diagnostics.DiagnosticSource.dll da pasta bin ou usar a versão mais antiga da extensão definindo ApplicationInsightsAgent_EXTENSIONVERSION=2.8.24. Caso contrário, o monitoramento de aplicativos não será habilitado.
2.8.26
Corrigido o problema relacionado ao SDK atualizado do Application Insights. 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 da DiagnosticSource dll for carregada. Pode acontecer, por exemplo, se System.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.
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.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.24
Versão reempacotada da versão 2.8.21.
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.
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.24
Versão reempacotada da versão 2.8.21.
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
AI SDK atualizado para 2.1.8 de 2.1.7. Adicionado suporte para identidades gerenciadas do Microsoft Entra atribuídas a usuários e sistemas.
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.24
Versão reempacotada da versão 2.8.21.
As notas de versão para Python serão mostradas aqui.