Partilhar via


Habilitar o monitoramento de aplicativos no Serviço de Aplicativo do Azure para aplicativos .NET, Node.js, Python e Java

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 para a ingestão de chaves de instrumentação irá 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.

Ativar o Application Insights

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 Solucionar problemas de integração do Application Insights com o Serviço de Aplicativo do Azure.

Nota

Autoinstrumentação no portal do Azure

  1. Selecione Application Insights no menu de navegação esquerdo do seu serviço de aplicativo e, em seguida, selecione Ativar.

     Captura de tela que mostra a guia Application Insights com Ativar selecionado.

  2. 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.

    Captura de ecrã que mostra a lista suspensa 'Alterar o seu recurso'.

  3. Depois de especificar qual recurso usar, você pode escolher como deseja que o Application Insights colete dados por plataforma para seu aplicativo. As opções de coleção do ASP.NET Core são Recomendadas ou Desativadas.

     Captura de ecrã que mostra a secção de instrumentação da aplicação.

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.

Captura de ecrã que mostra o caminho do URL para verificar a versão da extensão que está a executar.

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.

  • Atualize por meio do PowerShell:

    1. 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.
    2. Remova manualmente a extensão de site privado chamada Application Insights para Azure App Service.

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 obter mais informações, consulte Solucionar problemas de integração do Application Insights com o Serviço de Aplicativo do Azure.

Configurar a extensão/agente de monitoramento

No momento, não oferecemos opções para configurar a extensão de monitoramento para ASP.NET Core.

Ativar monitorização do lado do cliente

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:

  1. Selecione Definições>Configuração.

  2. Em Configurações do aplicativo, crie uma nova configuração do aplicativo com as seguintes informações:

    • Nome: APPINSIGHTS_JAVASCRIPT_ENABLED
    • Valor: false
  3. Salve as configurações. Reinicie a aplicação.

Automatize o monitoramento

Para habilitar a coleta de telemetria com o Application Insights, apenas as seguintes configurações do aplicativo precisam ser definidas:

Captura de tela que mostra as configurações do aplicativo do Serviço de Aplicativo com as configurações do Application Insights.

Definições de configurações do aplicativo

Nome de definição de aplicação Definição Valor
ApplicationInsightsAgent_EXTENSION_VERSION 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

Configurações da aplicação do App Service 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:

      "resources": [
        {
          "name": "appsettings",
          "type": "config",
          "apiVersion": "2015-08-01",
          "dependsOn": [
            "[resourceId('Microsoft.Web/sites', variables('webSiteName'))]"
          ],
          "tags": {
            "displayName": "Application Insights Settings"
          },
          "properties": {
            "key1": "value1",
            "key2": "value2"
          }
        }
      ]

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.

  1. No portal do Azure, crie um novo recurso de Aplicativo Web com as informações desejadas. Habilite o Application Insights na guia Monitor + seguro .

  2. Aceda a Rever + criar e, em seguida, selecione Transferir um modelo para automatização. Esta opção gera o modelo mais recente do Resource Manager com todas as configurações necessárias configuradas.

    Captura de tela que mostra o menu de criação do aplicativo Web do Serviço de Aplicativo.

Nota

O modelo de exemplo a seguir é para um aplicativo .NET 8 (LTS) em execução no Windows. Ele utiliza os marcadores de posição my-monitored-web-app para o nome da aplicação e aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e para o ID de subscrição.

Não recomendamos copiá-lo e usá-lo diretamente. Em vez disso, gere seu próprio modelo com base nas instruções acima.


Expandir para ver o modelo de exemplo
{
    "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        "subscriptionId": {
            "type": "string"
        },
        "resourceGroupName": {
            "type": "string"
        },
        "name": {
            "type": "string"
        },
        "location": {
            "type": "string"
        },
        "hostingPlanName": {
            "type": "string"
        },
        "serverFarmResourceGroup": {
            "type": "string"
        },
        "alwaysOn": {
            "type": "bool"
        },
        "ftpsState": {
            "type": "string"
        },
        "autoGeneratedDomainNameLabelScope": {
            "type": "string"
        },
        "sku": {
            "type": "string"
        },
        "skuCode": {
            "type": "string"
        },
        "workerSize": {
            "type": "string"
        },
        "workerSizeId": {
            "type": "string"
        },
        "numberOfWorkers": {
            "type": "string"
        },
        "currentStack": {
            "type": "string"
        },
        "phpVersion": {
            "type": "string"
        },
        "netFrameworkVersion": {
            "type": "string"
        }
    },
    "variables": {},
    "resources": [
        {
            "apiVersion": "2022-03-01",
            "name": "[parameters('name')]",
            "type": "Microsoft.Web/sites",
            "location": "[parameters('location')]",
            "tags": null,
            "dependsOn": [
                "microsoft.insights/components/my-monitored-web-app",
                "[concat('Microsoft.Web/serverfarms/', parameters('hostingPlanName'))]"
            ],
            "properties": {
                "name": "[parameters('name')]",
                "siteConfig": {
                    "appSettings": [
                        {
                            "name": "APPLICATIONINSIGHTS_CONNECTION_STRING",
                            "value": "[reference('microsoft.insights/components/my-monitored-web-app', '2015-05-01').ConnectionString]"
                        },
                        {
                            "name": "ApplicationInsightsAgent_EXTENSION_VERSION",
                            "value": "~2"
                        },
                        {
                            "name": "XDT_MicrosoftApplicationInsights_Mode",
                            "value": "default"
                        }
                    ],
                    "metadata": [
                        {
                            "name": "CURRENT_STACK",
                            "value": "[parameters('currentStack')]"
                        }
                    ],
                    "phpVersion": "[parameters('phpVersion')]",
                    "netFrameworkVersion": "[parameters('netFrameworkVersion')]",
                    "alwaysOn": "[parameters('alwaysOn')]",
                    "ftpsState": "[parameters('ftpsState')]"
                },
                "serverFarmId": "[concat('/subscriptions/', parameters('subscriptionId'),'/resourcegroups/', parameters('serverFarmResourceGroup'), '/providers/Microsoft.Web/serverfarms/', parameters('hostingPlanName'))]",
                "clientAffinityEnabled": true,
                "virtualNetworkSubnetId": null,
                "httpsOnly": true,
                "publicNetworkAccess": "Enabled",
                "autoGeneratedDomainNameLabelScope": "[parameters('autoGeneratedDomainNameLabelScope')]"
            },
            "resources": [
                {
                    "type": "Microsoft.Web/sites/basicPublishingCredentialsPolicies",
                    "apiVersion": "2022-09-01",
                    "name": "[concat(parameters('name'), '/scm')]",
                    "properties": {
                        "allow": true
                    },
                    "dependsOn": [
                        "[resourceId('Microsoft.Web/Sites', parameters('name'))]"
                    ]
                },
                {
                    "type": "Microsoft.Web/sites/basicPublishingCredentialsPolicies",
                    "apiVersion": "2022-09-01",
                    "name": "[concat(parameters('name'), '/ftp')]",
                    "properties": {
                        "allow": true
                    },
                    "dependsOn": [
                        "[resourceId('Microsoft.Web/Sites', parameters('name'))]"
                    ]
                }
            ]
        },
        {
            "apiVersion": "2018-11-01",
            "name": "[parameters('hostingPlanName')]",
            "type": "Microsoft.Web/serverfarms",
            "location": "[parameters('location')]",
            "kind": "",
            "tags": null,
            "dependsOn": [],
            "properties": {
                "name": "[parameters('hostingPlanName')]",
                "workerSize": "[parameters('workerSize')]",
                "workerSizeId": "[parameters('workerSizeId')]",
                "numberOfWorkers": "[parameters('numberOfWorkers')]",
                "zoneRedundant": false
            },
            "sku": {
                "Tier": "[parameters('sku')]",
                "Name": "[parameters('skuCode')]"
            }
        },
        {
            "apiVersion": "2020-02-02-preview",
            "name": "my-monitored-web-app",
            "type": "microsoft.insights/components",
            "location": "centralus",
            "tags": null,
            "dependsOn": [
                "newWorkspaceTemplate"
            ],
            "properties": {
                "ApplicationId": "[parameters('name')]",
                "Request_Source": "IbizaWebAppExtensionCreate",
                "Flow_Type": "Redfield",
                "Application_Type": "web",
                "WorkspaceResourceId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/DefaultResourceGroup-CUS/providers/Microsoft.OperationalInsights/workspaces/DefaultWorkspace-aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e-CUS"
            }
        },
        {
            "type": "Microsoft.Resources/deployments",
            "apiVersion": "2021-04-01",
            "name": "newWorkspaceTemplate",
            "resourceGroup": "DefaultResourceGroup-CUS",
            "subscriptionId": "[parameters('subscriptionId')]",
            "properties": {
                "mode": "Incremental",
                "template": {
                    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
                    "contentVersion": "1.0.0.0",
                    "parameters": {},
                    "variables": {},
                    "resources": [
                        {
                            "apiVersion": "2020-08-01",
                            "name": "DefaultWorkspace-aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e-CUS",
                            "type": "Microsoft.OperationalInsights/workspaces",
                            "location": "centralus",
                            "properties": {}
                        }
                    ]
                }
            }
        }
    ]
}

Habilitar por meio do PowerShell

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 my-monitored-web-app no grupo my-resource-groupde recursos . Ele configura os dados a serem enviados para a InstrumentationKey=012345678-abcd-ef01-2345-6789abcd cadeia de conexão.

Nota

Recomendamos que utilize o módulo Azure Az do PowerShell para interagir com o Azure. Para começar, consulte Instalar o Azure PowerShell. Para saber como migrar para o módulo do Az PowerShell, veja Migrar o Azure PowerShell do AzureRM para o Az.

Nota

Para Windows, defina ApplicationInsightsAgent_EXTENSION_VERSION como ~2.

Para Linux, defina ApplicationInsightsAgent_EXTENSION_VERSION como ~3.

$app = Get-AzWebApp -ResourceGroupName "my-resource-group" -Name "my-monitored-web-app" -ErrorAction Stop
$newAppSettings = @{} # Case-insensitive hash map
$app.SiteConfig.AppSettings | %{$newAppSettings[$_.Name] = $_.Value} # Preserve non-Application-Insights application settings.
$newAppSettings["APPLICATIONINSIGHTS_CONNECTION_STRING"] = "InstrumentationKey=aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e"; # Set the Application Insights connection string
$newAppSettings["ApplicationInsightsAgent_EXTENSION_VERSION"] = "~3"; # Enable the ApplicationInsightsAgent.
$app = Set-AzWebApp -AppSettings $newAppSettings -ResourceGroupName $app.ResourceGroup -Name $app.Name -ErrorAction Stop

Resolução de Problemas

Consulte o artigo dedicado à resolução de problemas.

Próximos passos