Implantar Application Insights Agent do Azure Monitor em servidores locais
- Artigo
O Application Insights Agent (anteriormente denominado Status Monitor v2) é um módulo do PowerShell publicado na Galeria do PowerShell. Ele substitui o Status Monitor. A telemetria é enviada para a portal do Azure, no qual você pode monitorar seu aplicativo.
Para obter uma lista completa dos cenários de autoinstrumentação suportados, confira Ambientes, linguagens e provedores de recursos suportados.
Observação
No momento, o módulo oferece suporte à instrumentação sem código de aplicativos ASP.NET e ASP.NET Core hospedados no IIS. Use um SDK para instrumentar aplicativos Java e Node.js.
Galeria do PowerShell
O Application Insights Agent está localizado na Galeria do PowerShell.
Instruções
- Para começar a usar exemplos de código concisos, veja a guia Introdução.
- Para obter um aprofundamento sobre como começar, veja as Instruções detalhadas.
- Para ver a referência da API do PowerShell, veja a guia Referência de API.
- Para ver atualizações de notas sobre a versão, veja a guia Notas sobre a versão.
Esta guia contém os comandos de início rápido que devem funcionar para a maioria dos ambientes. As instruções dependem da Galeria do PowerShell para distribuir atualizações. Esses comandos são suportados pelo parâmetro -Proxy
do PowerShell.
Para obter uma explicação sobre esses comandos, instruções de personalização e informações sobre solução de problemas, veja as instruções detalhadas.
Se você não tiver uma assinatura do Azure, crie uma conta gratuita antes de começar.
Baixar e instalar por meio da Galeria do PowerShell
Use a Galeria do PowerShell para download e instalação.
Pré-requisitos da instalação
Para habilitar o monitoramento, você precisa ter uma cadeia de conexão. Uma cadeia de conexão é exibida no painel Visão geral do recurso do Application Insights. Para saber mais, confira Cadeias de conexão.
Observação
A partir de abril de 2020, a Galeria do PowerShell preteriu o TLS 1.1 e 1.0.
Para mais pré-requisitos de que você pode precisar, veja Suporte ao TLS da Galeria do PowerShell.
Execute o PowerShell como administrador.
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope Process -Force
Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force
Set-PSRepository -Name "PSGallery" -InstallationPolicy Trusted
Install-Module -Name PowerShellGet -Force
Feche o PowerShell.
Instalar o Application Insights Agent
Execute o PowerShell como administrador.
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope Process -Force
Install-Module -Name Az.ApplicationMonitor -AllowPrerelease -AcceptLicense
Observação
A opção AllowPrerelease
no cmdlet Install-Module
permite a instalação da versão beta.
Para obter mais informações, confira Install-Module.
Habilitar o monitoramento
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope Process -Force
Enable-ApplicationInsightsMonitoring -ConnectionString 'InstrumentationKey=00000000-0000-0000-0000-000000000000;IngestionEndpoint=https://xxxx.applicationinsights.azure.com/'
Baixar e instalar manualmente (opção offline)
Você também pode baixar e instalar manualmente.
Baixar o modulo
Baixe manualmente a versão mais recente do módulo da Galeria do PowerShell.
Descompactar o Application Insights Agent
$pathToNupkg = "C:\Users\t\Desktop\Az.ApplicationMonitor.0.3.0-alpha.nupkg"
$pathToZip = ([io.path]::ChangeExtension($pathToNupkg, "zip"))
$pathToNupkg | rename-item -newname $pathToZip
$pathInstalledModule = "$Env:ProgramFiles\WindowsPowerShell\Modules\Az.ApplicationMonitor"
Expand-Archive -LiteralPath $pathToZip -DestinationPath $pathInstalledModule
Habilitar o monitoramento
Enable-ApplicationInsightsMonitoring -ConnectionString 'InstrumentationKey=00000000-0000-0000-0000-000000000000;IngestionEndpoint=https://xxxx.applicationinsights.azure.com/'
Esta guia descreve como integrar a Galeria do PowerShell e baixar o módulo ApplicationMonitor. Estão incluídos os parâmetros mais comuns de que você precisa para começar. Também fornecemos instruções de download manual caso você não tenha acesso à Internet.
Obter uma cadeia de conexão
Para começar, você precisa de uma cadeia de conexão. Para saber mais, confira Cadeias de conexão.
Observação
Em 31 de março de 31, 2025, o suporte à ingestão de chave de instrumentação será encerrado. A ingestão de chave de instrumentação continuará funcionando, mas não forneceremos mais atualizações ou suporte para o recurso. Transição para cadeias de conexão para aproveitar as novas funcionalidades.
Executar o PowerShell como administrador com uma política de execução elevada
Executar como administrador
O PowerShell precisa de permissões de nível de administrador para fazer alterações em seu computador.
Política de execução
- Descrição: por padrão, a execução de scripts do PowerShell está desabilitada. Recomendamos permitir scripts RemoteSigned apenas para o escopo atual.
- Referência: Sobre políticas de execução e Set-ExecutionPolicy.
- Comando:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope Process
. - Parâmetro opcional:
-Force
. Ignora o prompt de confirmação.
Erros de exemplo
Install-Module : The 'Install-Module' command was found in the module 'PowerShellGet', but the module could not be
loaded. For more information, run 'Import-Module PowerShellGet'.
Import-Module : File C:\Program Files\WindowsPowerShell\Modules\PackageManagement\1.3.1\PackageManagement.psm1 cannot
be loaded because running scripts is disabled on this system. For more information, see about_Execution_Policies at https://go.microsoft.com/fwlink/?LinkID=135170.
Pré-requisitos para PowerShell
Faça auditoria da instância do PowerShell executando o comando $PSVersionTable
.
Esse comando gera a seguinte saída:
Name Value
---- -----
PSVersion 5.1.17763.316
PSEdition Desktop
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0...}
BuildVersion 10.0.17763.316
CLRVersion 4.0.30319.42000
WSManStackVersion 3.0
PSRemotingProtocolVersion 2.3
SerializationVersion 1.1.0.1
Essas instruções foram escritas e testadas em um computador executando o Windows 10 e as seguintes versões.
Pré-requisitos para a Galeria do PowerShell
Estas etapas preparam seu servidor para baixar módulos da Galeria do PowerShell.
Observação
A Galeria do PowerShell tem suporte no Windows 10, no Windows Server 2016 e no PowerShell 6+. Para obter informações sobre versões anteriores, confira Instalar o PowerShellGet.
Execute o PowerShell como administrador com uma política de execução elevada.
Instale o provedor do pacote NuGet.
- Descrição: você precisa desse provedor para interagir com os repositórios baseados em NuGet, como a Galeria do PowerShell.
- Referência: Install-PackageProvider.
- Comando:
Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201
. - Parâmetros opcionais:
-Proxy
. Especifica um servidor proxy para a solicitação.-Force
. Ignora o prompt de confirmação.
Você receberá esse aviso se o NuGet não estiver configurado:
NuGet provider is required to continue PowerShellGet requires NuGet provider version '2.8.5.201' or newer to interact with NuGet-based repositories. The NuGet provider must be available in 'C:\Program Files\PackageManagement\ProviderAssemblies' or 'C:\Users\t\AppData\Local\PackageManagement\ProviderAssemblies'. You can also install the NuGet provider by running 'Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force'. Do you want PowerShellGet to install and import the NuGet provider now? [Y] Yes [N] No [S] Suspend [?] Help (default is "Y"):
Configure a Galeria do PowerShell como um repositório confiável.
- Descrição: por padrão, a Galeria do PowerShell é um repositório não confiável.
- Referência: Set-PSRepository.
- Comando:
Set-PSRepository -Name "PSGallery" -InstallationPolicy Trusted
. - Parâmetro opcional:
-Proxy
. Especifica um servidor proxy para a solicitação.
Você receberá essa solicitação se a Galeria do PowerShell não for confiável:
Untrusted repository You are installing the modules from an untrusted repository. If you trust this repository, change its InstallationPolicy value by running the Set-PSRepository cmdlet. Are you sure you want to install the modules from 'PSGallery'? [Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is "N"):
Você pode confirmar essa alteração e auditar todos os
PSRepositories
executando o comandoGet-PSRepository
.Instale a versão mais recente do PowerShellGet.
- Descrição: esse módulo contém as ferramentas usadas para obter outros módulos da Galeria do PowerShell. A versão 1.0.0.1 é fornecida com o Windows 10 e o Windows Server. A versão 1.6.0 ou superior é necessária. Para determinar qual versão está instalada, execute o comando
Get-Command -Module PowerShellGet
. - Referência: Instalar o PowerShellGet.
- Comando:
Install-Module -Name PowerShellGet
. - Parâmetros opcionais:
-Proxy
. Especifica um servidor proxy para a solicitação.-Force
. Ignora o aviso "já instalado" e instala a versão mais recente.
Você receberá esse erro se não estiver usando a versão mais recente do PowerShellGet:
Install-Module : A parameter cannot be found that matches parameter name 'AllowPrerelease'. At line:1 char:20 Install-Module abc -AllowPrerelease ~~~~~~~~~~~~~~~~ CategoryInfo : InvalidArgument: (:) [Install-Module], ParameterBindingException FullyQualifiedErrorId : NamedParameterNotFound,Install-Module
- Descrição: esse módulo contém as ferramentas usadas para obter outros módulos da Galeria do PowerShell. A versão 1.0.0.1 é fornecida com o Windows 10 e o Windows Server. A versão 1.6.0 ou superior é necessária. Para determinar qual versão está instalada, execute o comando
Reinicie o PowerShell. Não é possível carregar a versão nova na sessão atual. As novas sessões do PowerShell carregam a versão mais recente do PowerShellGet.
Baixar e instalar o módulo por meio da Galeria do PowerShell
Estas etapas baixam o módulo Az.ApplicationMonitor da Galeria do PowerShell.
- Verifique se todos os pré-requisitos para a Galeria do PowerShell são atendidos.
- Execute o PowerShell como administrador com uma política de execução com privilégios elevados.
- Instale o módulo Az.ApplicationMonitor.
- Referência: Install-Module.
- Comando:
Install-Module -Name Az.ApplicationMonitor
. - Parâmetros opcionais:
-Proxy
. Especifica um servidor proxy para a solicitação.-AllowPrerelease
. Permite a instalação de versões alfa e beta.-AcceptLicense
. Ignora o prompt "Aceitar licença"-Force
. Ignora o aviso "Repositório não confiável".
Baixar e instalar o módulo manualmente (opção offline)
Se por algum motivo não for possível se conectar ao módulo do PowerShell, você poderá baixar e instalar manualmente o módulo Az.ApplicationMonitor.
Baixar manualmente o arquivo nupkg mais recente
- Ir para https://www.powershellgallery.com/packages/Az.ApplicationMonitor.
- Selecione a versão mais recente do arquivo na tabela de Histórico de versão.
- Em Opções de instalação, selecione Download manual.
Opção 1: instalar em um diretório de módulos do PowerShell
Instale o módulo do PowerShell baixado manualmente em um diretório do PowerShell para que ele possa ser descoberto por sessões do PowerShell. Para obter mais informações, confira Instalar um módulo do PowerShell.
Descompactar nupkg como um arquivo zip usando Expand-Archive (v 1.0.1.0)
Descrição: a versão base do Microsoft.PowerShell.Archive (v 1.0.1.0) não pode descompactar arquivos nupkg. Renomeie o arquivo com a extensão .zip.
Referência: Expand-Archive.
Comando:
$pathToNupkg = "C:\az.applicationmonitor.0.3.0-alpha.nupkg" $pathToZip = ([io.path]::ChangeExtension($pathToNupkg, "zip")) $pathToNupkg | rename-item -newname $pathToZip $pathInstalledModule = "$Env:ProgramFiles\WindowsPowerShell\Modules\az.applicationmonitor" Expand-Archive -LiteralPath $pathToZip -DestinationPath $pathInstalledModule
Descompactar nupkg usando Expand-Archive (v 1.1.0.0)
Descrição: use uma versão atual do Expand-Archive para descompactar arquivos nupkg sem alterar a extensão.
Referência: Expand-Archive e Microsoft.PowerShell.Archive.
Comando:
$pathToNupkg = "C:\az.applicationmonitor.0.2.1-alpha.nupkg" $pathInstalledModule = "$Env:ProgramFiles\WindowsPowerShell\Modules\az.applicationmonitor" Expand-Archive -LiteralPath $pathToNupkg -DestinationPath $pathInstalledModule
Opção 2: descompactar e importar nupkg manualmente
Instale o módulo do PowerShell baixado manualmente em um diretório do PowerShell para que ele possa ser descoberto por sessões do PowerShell. Para obter mais informações, confira Instalar um módulo do PowerShell.
Se você estiver instalando o módulo em qualquer outro diretório, importe o módulo manualmente usando Import-Module.
Importante
As DLLs serão instaladas por meio de caminhos relativos. Armazene o conteúdo do pacote em seu diretório de runtime pretendido e confirme se as permissões de acesso permitem leitura, mas não gravação.
- Altere a extensão para ".zip" e extraia o conteúdo do pacote no diretório de instalação pretendido.
- Localize o caminho do arquivo de Az.ApplicationMonitor.psd1.
- Execute o PowerShell como administrador com uma política de execução com privilégios elevados.
- Carregue o módulo usando o comando
Import-Module Az.ApplicationMonitor.psd1
.
Rotear o tráfego por meio de um proxy
Ao monitorar um computador na sua intranet privada, você precisa rotear o tráfego HTTP por meio de um proxy.
Os comandos do PowerShell para baixar e instalar o Az.ApplicationMonitor da Galeria do PowerShell dão suporte ao parâmetro -Proxy
.
Examine as instruções anteriores ao escrever seus scripts de instalação.
O SDK do Application Insights precisa enviar a telemetria do seu aplicativo para a Microsoft. Recomendamos que você defina as configurações de proxy para seu aplicativo no arquivo web.config. Para obter mais informações, consulte Como obtenho a passagem do proxy?.
Habilitar o monitoramento
Use o comando Enable-ApplicationInsightsMonitoring
para habilitar o monitoramento.
Confira a referência da API para obter uma descrição detalhada de como usar esse cmdlet.
Esta guia descreve os seguintes cmdlets, que são membros do módulo do PowerShell Az.ApplicationMonitor:
- Enable-InstrumentationEngine
- Enable-ApplicationInsightsMonitoring
- Disable-InstrumentationEngine
- Disable-ApplicationInsightsMonitoring
- Get-ApplicationInsightsMonitoringConfig
- Get-ApplicationInsightsMonitoringStatus
- Set-ApplicationInsightsMonitoringConfig
- Start-ApplicationInsightsMonitoringTrace
Observação
- Para começar, você precisa de uma cadeia de conexão. Para obter mais informações, consulte Criar um recurso.
- Esse cmdlet requer que você examine e aceite nossa licença e nossa política de privacidade.
Observação
Em 31 de março de 31, 2025, o suporte à ingestão de chave de instrumentação será encerrado. A ingestão de chave de instrumentação continuará funcionando, mas não forneceremos mais atualizações ou suporte para o recurso. Transição para cadeias de conexão para aproveitar as novas funcionalidades.
Importante
Este cmdlet requer uma sessão do PowerShell com permissões de administrador e uma política de execução elevada. Para obter mais informações, consulte Executar o PowerShell como administrador com uma política de execução elevada.
- Esse cmdlet requer que você examine e aceite nossa licença e nossa política de privacidade.
- O mecanismo de instrumentação aumenta a sobrecarga e está desativado por padrão.
Enable-InstrumentationEngine
Habilita o mecanismo de instrumentação definindo algumas chaves do Registro. Reinicie o IIS para que as alterações entrem em vigor.
O mecanismo de instrumentação pode complementar os dados coletados pelos SDKs do .NET. Ele coleta eventos e mensagens que descrevem a execução de um processo gerenciado. Esses eventos e mensagens incluem códigos de resultados de dependências, verbos HTTP e textos de comando SQL.
Habilite o mecanismo de instrumentação se:
- Você já habilitou o monitoramento com o cmdlet Enable, mas não habilitou o mecanismo de instrumentação.
- Você instrumentou manualmente seu aplicativo com os SDKs do .NET e deseja coletar telemetria extra.
Exemplos
Enable-InstrumentationEngine
Parâmetros
-AcceptLicense
Opcional. Use essa opção para aceitar a licença e a política de privacidade em instalações sem periféricos.
-Verbose
Parâmetro comum. Use essa opção para gerar logs detalhados.
Saída
Exemplo de saída de uma habilitação bem-sucedida do mecanismo de instrumentação
Configuring IIS Environment for instrumentation engine...
Configuring registry for instrumentation engine...
Enable-ApplicationInsightsMonitoring
Habilita o monitoramento de anexação sem código de aplicativos IIS em um computador de destino.
Esse cmdlet modifica o applicationHost.config do IIS e define algumas chaves de registro. Ele cria um arquivo applicationinsights.ikey.config, que define a chave de instrumentação usada por cada aplicativo. O IIS carrega o RedfieldModule na inicialização, que injeta o SDK do Application Insights nos aplicativos à medida que os aplicativos são iniciados. Reinicie o IIS para que as suas alterações entrem em vigor.
Depois de habilitar o monitoramento, recomendamos que você use o Live Metrics para verificar rapidamente se seu aplicativo está enviando telemetria para nós.
Exemplos
Exemplo com uma única cadeia de conexão
Neste exemplo, todos os aplicativos no computador atual recebem uma única cadeia de conexão.
Enable-ApplicationInsightsMonitoring -ConnectionString 'InstrumentationKey=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx;IngestionEndpoint=https://xxxx.applicationinsights.azure.com/'
Exemplo com uma única chave de instrumentação
Neste exemplo, todos os aplicativos no computador atual recebem uma única chave de instrumentação.
Enable-ApplicationInsightsMonitoring -InstrumentationKey xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Exemplo com um mapa de chaves de instrumentação
Neste exemplo:
MachineFilter
corresponde ao computador atual usando o caractere curinga'.*'
.AppFilter='WebAppExclude'
fornece uma chave de instrumentaçãonull
. O aplicativo especificado não é instrumentado.AppFilter='WebAppOne'
atribui ao aplicativo especificado uma chave de instrumentação exclusiva.AppFilter='WebAppTwo'
atribui ao aplicativo especificado uma chave de instrumentação exclusiva.AppFilter
usa o curinga'.*'
para corresponder a todos os aplicativos Web que ainda não correspondem e atribui uma chave de instrumentação padrão.- Os espaços são adicionados para facilitar a leitura.
Enable-ApplicationInsightsMonitoring -InstrumentationKeyMap `
` @(@{MachineFilter='.*';AppFilter='WebAppExclude'},
` @{MachineFilter='.*';AppFilter='WebAppOne';InstrumentationSettings=@{InstrumentationKey='xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx1'}},
` @{MachineFilter='.*';AppFilter='WebAppTwo';InstrumentationSettings=@{InstrumentationKey='xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx2'}},
` @{MachineFilter='.*';AppFilter='.*';InstrumentationSettings=@{InstrumentationKey='xxxxxxxx-xxxx-xxxx-xxxx-xxxxxdefault'}})
Observação
A nomenclatura de AppFilter nesse contexto pode ser confusa; AppFilter
define o filtro regex do nome do aplicativo (HostingEnvironment.SiteName no caso do .NET no IIS). VirtualPathFilter
define o filtro regex do caminho virtual (HostingEnvironment.ApplicationVirtualPath no caso do .NET no IIS). Para instrumentar um único aplicativo, você usaria o VirtualPathFilter da seguinte maneira: Enable-ApplicationInsightsMonitoring -InstrumentationKeyMap @(@{VirtualPathFilter="^/MyAppName$"; InstrumentationSettings=@{InstrumentationKey='<your ikey>'}})
Parâmetros
-ConnectionString
Obrigatório. Use esse parâmetro para fornecer uma única cadeia de conexão para uso por todos os aplicativos no computador de destino.
-InstrumentationKey
Obrigatórios. Use esse parâmetro para fornecer uma chave de instrumentação única para ser usada por todos os aplicativos no computador de destino.
-InstrumentationKeyMap
Obrigatórios. Use esse parâmetro para fornecer várias chaves de instrumentação e um mapeamento das chaves de instrumentação usadas por cada aplicativo.
Você pode criar um único script de instalação para vários computadores definindo MachineFilter
.
Importante
Os aplicativos correspondem às regras na ordem em que as regras são fornecidas. Portanto, você deve especificar as regras mais específicas primeiro e as regras mais genéricas por último.
Esquema
@(@{MachineFilter='.*';AppFilter='.*';InstrumentationSettings=@{InstrumentationKey='xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'}})
- MachineFilter é um regex C# necessário do nome do computador ou da VM.
- '.*' corresponde a todos
- 'ComputerName' corresponde apenas a computadores com o nome exato especificado.
- AppFilter é um regex do C# necessário do Nome do Site do IIS. Você pode obter uma lista de sites em seu servidor executando o comando get-iissite.
- '.*' corresponde a todos
- 'SiteName' corresponde apenas ao Site do IIS com o nome exato especificado.
- InstrumentationKey é necessário para habilitar o monitoramento de aplicativos que correspondem aos dois filtros anteriores.
- Deixe esse valor como null se você quiser definir regras para excluir o monitoramento.
-EnableInstrumentationEngine
Opcional. Use essa opção para habilitar o mecanismo de instrumentação para coletar eventos e mensagens sobre o que está acontecendo durante a execução de um processo gerenciado. Esses eventos e mensagens incluem códigos de resultados de dependências, verbos HTTP e textos de comando SQL.
O mecanismo de instrumentação aumenta a sobrecarga e está desativado por padrão.
-AcceptLicense
Opcional. Use essa opção para aceitar a licença e a política de privacidade em instalações sem periféricos.
-IgnoreSharedConfig
Quando você tiver um cluster de servidores Web, talvez esteja usando uma configuração compartilhada. O HttpModule não pode ser injetado nessa configuração compartilhada. Esse script falha com a mensagem de que etapas extras de instalação são necessárias. Use essa opção para ignorar essa verificação e continuar instalando os pré-requisitos. Para obter mais informações, consulte Conflito conhecido com a configuração compartilhada do IIS
-Verbose
Parâmetro comum. Use essa opção para exibir logs detalhados.
-WhatIf
Parâmetro comum. Use essa opção para testar e validar os parâmetros de entrada sem realmente habilitar o monitoramento.
Saída
Exemplo de saída de uma habilitação bem-sucedida
Initiating Disable Process
Applying transformation to 'C:\Windows\System32\inetsrv\config\applicationHost.config'
'C:\Windows\System32\inetsrv\config\applicationHost.config' backed up to 'C:\Windows\System32\inetsrv\config\applicationHost.config.backup-2019-03-26_08-59-52z'
in :1,237
No element in the source document matches '/configuration/location[@path='']/system.webServer/modules/add[@name='ManagedHttpModuleHelper']'
Not executing RemoveAll (transform line 1, 546)
Transformation to 'C:\Windows\System32\inetsrv\config\applicationHost.config' was successfully applied. Operation: 'disable'
GAC Module will not be removed, since this operation might cause IIS instabilities
Configuring IIS Environment for codeless attach...
Registry: skipping non-existent 'HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\IISADMIN[Environment]
Registry: skipping non-existent 'HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W3SVC[Environment]
Registry: skipping non-existent 'HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WAS[Environment]
Configuring IIS Environment for instrumentation engine...
Registry: skipping non-existent 'HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\IISADMIN[Environment]
Registry: skipping non-existent 'HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W3SVC[Environment]
Registry: skipping non-existent 'HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WAS[Environment]
Configuring registry for instrumentation engine...
Successfully disabled Application Insights Agent
Installing GAC module 'C:\Program Files\WindowsPowerShell\Modules\Az.ApplicationMonitor\0.2.0\content\Runtime\Microsoft.AppInsights.IIS.ManagedHttpModuleHelper.dll'
Applying transformation to 'C:\Windows\System32\inetsrv\config\applicationHost.config'
Found GAC module Microsoft.AppInsights.IIS.ManagedHttpModuleHelper.ManagedHttpModuleHelper, Microsoft.AppInsights.IIS.ManagedHttpModuleHelper, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
'C:\Windows\System32\inetsrv\config\applicationHost.config' backed up to 'C:\Windows\System32\inetsrv\config\applicationHost.config.backup-2019-03-26_08-59-52z_1'
Transformation to 'C:\Windows\System32\inetsrv\config\applicationHost.config' was successfully applied. Operation: 'enable'
Configuring IIS Environment for codeless attach...
Configuring IIS Environment for instrumentation engine...
Configuring registry for instrumentation engine...
Updating app pool permissions...
Successfully enabled Application Insights Agent
Disable-InstrumentationEngine
Desabilita o mecanismo de instrumentação removendo algumas chaves do Registro. Reinicie o IIS para que as alterações entrem em vigor.
Exemplos
Disable-InstrumentationEngine
Parâmetros
-Verbose
Parâmetro comum. Use essa opção para gerar logs detalhados.
Saída
Exemplo de saída de uma desabilitação bem-sucedida do mecanismo de instrumentação
Configuring IIS Environment for instrumentation engine...
Registry: removing 'HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\IISADMIN[Environment]'
Registry: removing 'HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W3SVC[Environment]'
Registry: removing 'HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WAS[Environment]'
Configuring registry for instrumentation engine...
Disable-ApplicationInsightsMonitoring
Desabilita o monitoramento no computador de destino. Esse cmdlet remove edições no applicationHost.config do IIS e remove chaves do Registro.
Exemplos
Disable-ApplicationInsightsMonitoring
Parâmetros
-Verbose
Parâmetro comum. Use essa opção para exibir logs detalhados.
Saída
Exemplo de saída de uma desabilitação bem-sucedida do monitoramento
Initiating Disable Process
Applying transformation to 'C:\Windows\System32\inetsrv\config\applicationHost.config'
'C:\Windows\System32\inetsrv\config\applicationHost.config' backed up to 'C:\Windows\System32\inetsrv\config\applicationHost.config.backup-2019-03-26_08-59-00z'
in :1,237
No element in the source document matches '/configuration/location[@path='']/system.webServer/modules/add[@name='ManagedHttpModuleHelper']'
Not executing RemoveAll (transform line 1, 546)
Transformation to 'C:\Windows\System32\inetsrv\config\applicationHost.config' was successfully applied. Operation: 'disable'
GAC Module will not be removed, since this operation might cause IIS instabilities
Configuring IIS Environment for codeless attach...
Registry: skipping non-existent 'HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\IISADMIN[Environment]
Registry: skipping non-existent 'HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W3SVC[Environment]
Registry: skipping non-existent 'HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WAS[Environment]
Configuring IIS Environment for instrumentation engine...
Registry: skipping non-existent 'HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\IISADMIN[Environment]
Registry: skipping non-existent 'HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W3SVC[Environment]
Registry: skipping non-existent 'HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WAS[Environment]
Configuring registry for instrumentation engine...
Successfully disabled Application Insights Agent
Get-ApplicationInsightsMonitoringConfig
Obtém o arquivo de configuração e imprime os valores no console.
Exemplos
Get-ApplicationInsightsMonitoringConfig
Parâmetros
Nenhum parâmetro é necessário.
Saída
Exemplo de saída da leitura do arquivo de configuração
RedfieldConfiguration:
Filters:
0)InstrumentationKey: AppFilter: WebAppExclude MachineFilter: .*
1)InstrumentationKey: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx2 AppFilter: WebAppTwo MachineFilter: .*
2)InstrumentationKey: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxdefault AppFilter: .* MachineFilter: .*
Get-ApplicationInsightsMonitoringStatus
Esse cmdlet fornece informações para solucionar problemas sobre o Application Insights Agent. Use este cmdlet para investigar o status de monitoramento, a versão do módulo do PowerShell e para inspecionar o processo em execução. Esse cmdlet relata informações de versão e informações sobre os principais arquivos necessários para o monitoramento.
Exemplos
Exemplo: status do aplicativo
Execute o comando Get-ApplicationInsightsMonitoringStatus
para exibir o status do monitoramento de sites.
Get-ApplicationInsightsMonitoringStatus
IIS Websites:
SiteName : Default Web Site
ApplicationPoolName : DefaultAppPool
SiteId : 1
SiteState : Stopped
SiteName : DemoWebApp111
ApplicationPoolName : DemoWebApp111
SiteId : 2
SiteState : Started
ProcessId : not found
SiteName : DemoWebApp222
ApplicationPoolName : DemoWebApp222
SiteId : 3
SiteState : Started
ProcessId : 2024
Instrumented : true
InstrumentationKey : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxx123
SiteName : DemoWebApp333
ApplicationPoolName : DemoWebApp333
SiteId : 4
SiteState : Started
ProcessId : 5184
AppAlreadyInstrumented : true
Neste exemplo;
Identificador da máquina é uma ID anônima usada para identificar exclusivamente o servidor. Se você criar uma solicitação de suporte, precisaremos dessa ID para encontrar os registros do seu servidor.
Site padrão está Parado no IIS
DemoWebApp111 foi iniciado no IIS, mas não recebeu nenhuma solicitação. Este relatório mostra que não há nenhum processo em execução (ProcessId: não encontrado).
DemoWebApp222 está sendo executado e está sendo monitorado (instrumentado: true). Com base na configuração do usuário, a chave de instrumentação xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxx123 foi assiociada este site.
DemoWebApp333 foi instrumentado manualmente usando o SDK do Application insights. O Application Insights Agent detectou o SDK e não monitora este site.
A presença de
AppAlreadyInstrumented : true
significa que o agente do Application Insights identificou uma dll conflitante carregada no aplicativo Web, presumiu que o aplicativo Web é instrumentado manualmente e que o agente fez o backup e não está instrumentando esse processo.Instrumented : true
indica que o agente do Application Insights instrumentou com êxito o aplicativo Web em execução no processo w3wp.exe especificado.
Exemplo: informações do módulo do PowerShell
Execute o comando Get-ApplicationInsightsMonitoringStatus -PowerShellModule
para exibir informações sobre o módulo atual:
Get-ApplicationInsightsMonitoringStatus -PowerShellModule
PowerShell Module version:
0.4.0-alpha
Application Insights SDK version:
2.9.0.3872
Executing PowerShell Module Assembly:
Microsoft.ApplicationInsights.Redfield.Configurator.PowerShell, Version=2.8.14.11432, Culture=neutral, PublicKeyToken=31bf3856ad364e35
PowerShell Module Directory:
C:\Program Files\WindowsPowerShell\Modules\Az.ApplicationMonitor\0.2.2\content\PowerShell
Runtime Paths:
ParentDirectory (Exists: True)
C:\Program Files\WindowsPowerShell\Modules\Az.ApplicationMonitor\content
ConfigurationPath (Exists: True)
C:\Program Files\WindowsPowerShell\Modules\Az.ApplicationMonitor\content\applicationInsights.ikey.config
ManagedHttpModuleHelperPath (Exists: True)
C:\Program Files\WindowsPowerShell\Modules\Az.ApplicationMonitor\content\Runtime\Microsoft.AppInsights.IIS.ManagedHttpModuleHelper.dll
RedfieldIISModulePath (Exists: True)
C:\Program Files\WindowsPowerShell\Modules\Az.ApplicationMonitor\content\Runtime\Microsoft.ApplicationInsights.RedfieldIISModule.dll
InstrumentationEngine86Path (Exists: True)
C:\Program Files\WindowsPowerShell\Modules\Az.ApplicationMonitor\content\Instrumentation32\MicrosoftInstrumentationEngine_x86.dll
InstrumentationEngine64Path (Exists: True)
C:\Program Files\WindowsPowerShell\Modules\Az.ApplicationMonitor\content\Instrumentation64\MicrosoftInstrumentationEngine_x64.dll
InstrumentationEngineExtensionHost86Path (Exists: True)
C:\Program Files\WindowsPowerShell\Modules\Az.ApplicationMonitor\content\Instrumentation32\Microsoft.ApplicationInsights.ExtensionsHost_x86.dll
InstrumentationEngineExtensionHost64Path (Exists: True)
C:\Program Files\WindowsPowerShell\Modules\Az.ApplicationMonitor\content\Instrumentation64\Microsoft.ApplicationInsights.ExtensionsHost_x64.dll
InstrumentationEngineExtensionConfig86Path (Exists: True)
C:\Program Files\WindowsPowerShell\Modules\Az.ApplicationMonitor\content\Instrumentation32\Microsoft.InstrumentationEngine.Extensions.config
InstrumentationEngineExtensionConfig64Path (Exists: True)
C:\Program Files\WindowsPowerShell\Modules\Az.ApplicationMonitor\content\Instrumentation64\Microsoft.InstrumentationEngine.Extensions.config
ApplicationInsightsSdkPath (Exists: True)
C:\Program Files\WindowsPowerShell\Modules\Az.ApplicationMonitor\content\Runtime\Microsoft.ApplicationInsights.dll
Exemplo: status do runtime
Você pode inspecionar os processos no computador instrumentado para determinar se todas as DLLs estão carregadas. Se o monitoramento estiver funcionando, pelo menos 12 DLLs deverão estar carregadas.
Execute o comando Get-ApplicationInsightsMonitoringStatus -InspectProcess
:
Get-ApplicationInsightsMonitoringStatus -InspectProcess
iisreset.exe /status
Status for IIS Admin Service ( IISADMIN ) : Running
Status for Windows Process Activation Service ( WAS ) : Running
Status for Net.Msmq Listener Adapter ( NetMsmqActivator ) : Running
Status for Net.Pipe Listener Adapter ( NetPipeActivator ) : Running
Status for Net.Tcp Listener Adapter ( NetTcpActivator ) : Running
Status for World Wide Web Publishing Service ( W3SVC ) : Running
handle64.exe -accepteula -p w3wp
BF0: File (R-D) C:\Program Files\WindowsPowerShell\Modules\Az.ApplicationMonitor\content\Runtime\Microsoft.AI.ServerTelemetryChannel.dll
C58: File (R-D) C:\Program Files\WindowsPowerShell\Modules\Az.ApplicationMonitor\content\Runtime\Microsoft.AI.AzureAppServices.dll
C68: File (R-D) C:\Program Files\WindowsPowerShell\Modules\Az.ApplicationMonitor\content\Runtime\Microsoft.AI.DependencyCollector.dll
C78: File (R-D) C:\Program Files\WindowsPowerShell\Modules\Az.ApplicationMonitor\content\Runtime\Microsoft.AI.WindowsServer.dll
C98: File (R-D) C:\Program Files\WindowsPowerShell\Modules\Az.ApplicationMonitor\content\Runtime\Microsoft.AI.Web.dll
CBC: File (R-D) C:\Program Files\WindowsPowerShell\Modules\Az.ApplicationMonitor\content\Runtime\Microsoft.AI.PerfCounterCollector.dll
DB0: File (R-D) C:\Program Files\WindowsPowerShell\Modules\Az.ApplicationMonitor\content\Runtime\Microsoft.AI.Agent.Intercept.dll
B98: File (R-D) C:\Program Files\WindowsPowerShell\Modules\Az.ApplicationMonitor\content\Runtime\Microsoft.ApplicationInsights.RedfieldIISModule.dll
BB4: File (R-D) C:\Program Files\WindowsPowerShell\Modules\Az.ApplicationMonitor\content\Runtime\Microsoft.ApplicationInsights.RedfieldIISModule.Contracts.dll
BCC: File (R-D) C:\Program Files\WindowsPowerShell\Modules\Az.ApplicationMonitor\content\Runtime\Microsoft.ApplicationInsights.Redfield.Lightup.dll
BE0: File (R-D) C:\Program Files\WindowsPowerShell\Modules\Az.ApplicationMonitor\content\Runtime\Microsoft.ApplicationInsights.dll
listdlls64.exe -accepteula w3wp
0x0000000019ac0000 0x127000 C:\Program Files\WindowsPowerShell\Modules\Az.ApplicationMonitor\content\Instrumentation64\MicrosoftInstrumentationEngine_x64.dll
0x00000000198b0000 0x4f000 C:\Program Files\WindowsPowerShell\Modules\Az.ApplicationMonitor\content\Instrumentation64\Microsoft.ApplicationInsights.ExtensionsHost_x64.dll
0x000000000c460000 0xb2000 C:\Program Files\WindowsPowerShell\Modules\Az.ApplicationMonitor\content\Instrumentation64\Microsoft.ApplicationInsights.Extensions.Base_x64.dll
0x000000000ad60000 0x108000 C:\Windows\TEMP\2.4.0.0.Microsoft.ApplicationInsights.Extensions.Intercept_x64.dll
Parâmetros
(Sem parâmetros)
Por padrão, esse cmdlet relata o status de monitoramento dos aplicativos Web. Use esta opção para examinar se o aplicativo foi instrumentado de forma bem-sucedida. Você também pode examinar qual chave de instrumentação foi associada ao seu site.
-PowerShellModule
Opcional. Use essa opção para relatar os números de versão e os caminhos de DLLs necessários para o monitoramento. Use esta opção se você precisar identificar a versão de qualquer DLL, incluindo do SDK do Application Insights.
-InspectProcess
Opcional. Use essa opção para relatar se o IIS está em execução. Ele baixa ferramentas externas para determinar se as DLLs necessárias são carregadas no tempo de execução do IIS.
Se esse processo falhar por algum motivo, você poderá executar estes comandos manualmente:
- iisreset.exe /status
- handle64.exe -p w3wp | findstr /I "InstrumentationEngine AI. ApplicationInsights"
- listdlls64.exe w3wp | findstr /I "InstrumentationEngine AI ApplicationInsights"
-Force
Opcional. Usado somente com InspectProcess. Use essa opção para ignorar a solicitação do usuário que aparece antes do download de mais ferramentas.
Set-ApplicationInsightsMonitoringConfig
Define o arquivo de configuração sem fazer uma reinstalação completa. Reinicie o IIS para que as suas alterações entrem em vigor.
Importante
Este cmdlet requer uma sessão do PowerShell com permissões de administrador.
Exemplos
Exemplo com uma única chave de instrumentação
Neste exemplo, todos os aplicativos no computador atual recebem uma única chave de instrumentação.
Enable-ApplicationInsightsMonitoring -InstrumentationKey xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Exemplo com um mapa de chaves de instrumentação
Neste exemplo:
MachineFilter
corresponde ao computador atual usando o caractere curinga'.*'
.AppFilter='WebAppExclude'
fornece uma chave de instrumentaçãonull
. O aplicativo especificado não é instrumentado.AppFilter='WebAppOne'
atribui ao aplicativo especificado uma chave de instrumentação exclusiva.AppFilter='WebAppTwo'
atribui ao aplicativo especificado uma chave de instrumentação exclusiva.AppFilter
usa o curinga'.*'
para corresponder a aplicativos Web que ainda não correspondem e atribui uma chave de instrumentação padrão.- Os espaços são adicionados para facilitar a leitura.
Enable-ApplicationInsightsMonitoring -InstrumentationKeyMap `
` @(@{MachineFilter='.*';AppFilter='WebAppExclude'},
` @{MachineFilter='.*';AppFilter='WebAppOne';InstrumentationSettings=@{InstrumentationKey='xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx1'}},
` @{MachineFilter='.*';AppFilter='WebAppTwo';InstrumentationSettings=@{InstrumentationKey='xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx2'}},
` @{MachineFilter='.*';AppFilter='.*';InstrumentationSettings=@{InstrumentationKey='xxxxxxxx-xxxx-xxxx-xxxx-xxxxxdefault'}})
Parâmetros
-InstrumentationKey
Obrigatórios. Use esse parâmetro para fornecer uma chave de instrumentação única para ser usada por todos os aplicativos no computador de destino.
-InstrumentationKeyMap
Obrigatórios. Use esse parâmetro para fornecer várias chaves de instrumentação e um mapeamento das chaves de instrumentação usadas por cada aplicativo.
Você pode criar um único script de instalação para vários computadores definindo MachineFilter
.
Importante
Os aplicativos correspondem às regras na ordem em que as regras são fornecidas. Portanto, você deve especificar as regras mais específicas primeiro e as regras mais genéricas por último.
Esquema
@(@{MachineFilter='.*';AppFilter='.*';InstrumentationKey='xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'})
- MachineFilter é um regex C# necessário do nome do computador ou da VM.
- '.*' corresponde a todos
- 'ComputerName' corresponde apenas a computadores com o nome especificado.
- AppFilter é um regex C# necessário do nome do computador ou da VM.
- '.*' corresponde a todos
- 'ApplicationName' corresponde apenas a aplicativos IIS com o nome especificado.
- InstrumentationKey é necessária para habilitar o monitoramento dos aplicativos que correspondem aos dois filtros anteriores.
- Deixe esse valor como null se você quiser definir regras para excluir o monitoramento.
-Verbose
Parâmetro comum. Use essa opção para exibir logs detalhados.
Saída
Por padrão, não há saída.
Exemplo de saída verbose da configuração do arquivo de configuração via -InstrumentationKey
VERBOSE: Operation: InstallWithIkey
VERBOSE: InstrumentationKeyMap parsed:
Filters:
0)InstrumentationKey: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx AppFilter: .* MachineFilter: .*
VERBOSE: set config file
VERBOSE: Config File Path:
C:\Program Files\WindowsPowerShell\Modules\Az.ApplicationMonitor\content\applicationInsights.ikey.config
Exemplo de saída verbose da configuração do arquivo de configuração via -InstrumentationKeyMap
VERBOSE: Operation: InstallWithIkeyMap
VERBOSE: InstrumentationKeyMap parsed:
Filters:
0)InstrumentationKey: AppFilter: WebAppExclude MachineFilter: .*
1)InstrumentationKey: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx2 AppFilter: WebAppTwo MachineFilter: .*
2)InstrumentationKey: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxdefault AppFilter: .* MachineFilter: .*
VERBOSE: set config file
VERBOSE: Config File Path:
C:\Program Files\WindowsPowerShell\Modules\Az.ApplicationMonitor\content\applicationInsights.ikey.config
Start-ApplicationInsightsMonitoringTrace
Coleta Eventos ETW do runtime de anexação sem código. Este cmdlet é uma alternativa à execução de Perfview.
Os eventos são coletados, impressos no console em tempo real e salvos em um arquivo ETL. Você pode abrir o arquivo ETL de saída com PerfView para uma investigação mais aprofundada.
Esse cmdlet é executado até atingir a duração do tempo limite (5 minutos padrão) ou ser interrompido manualmente (Ctrl + C
).
Exemplos
Como coletar eventos
Normalmente, pedimos que você colete eventos para investigar por que seu aplicativo não está sendo instrumentado.
O runtime de anexação sem código emite eventos ETW quando o IIS é inicializado e quando seu aplicativo é inicializado.
Para coletar esses eventos:
- Em um console cmd com privilégios de administrador, execute
iisreset /stop
para parar o IIS e todos os aplicativos Web. - Executar este cmdlet
- Em um console cmd com privilégios de administrador, execute
iisreset /start
para iniciar o IIS. - Tente navegar até seu aplicativo.
- Depois que o carregamento do aplicativo terminar, você pode interrompê-lo manualmente (
Ctrl + C
) ou aguardar o tempo limite.
Quais eventos coletar
Você tem três opções ao coletar eventos:
- Use a opção
-CollectSdkEvents
para coletar eventos emitidos pelo SDK do Application insights. - Use a opção
-CollectRedfieldEvents
para coletar eventos emitidos pelo Application Insights Agent e pelo runtime do Redfield. Esses logs são úteis ao diagnosticar o IIS e a inicialização do aplicativo. - Use as duas opções para coletar os dois tipos de evento.
- Por padrão, se nenhuma opção for especificada, ambos os tipos de evento serão coletados.
Parâmetros
-MaxDurationInMinutes
Opcional. Use esse parâmetro para definir por quanto tempo esse script deve coletar eventos. O padrão é de 5 minutos.
-LogDirectory
Opcional. Use essa opção para definir o diretório de saída do arquivo ETL. Por padrão, esse arquivo é criado no diretório Módulos do PowerShell. O caminho completo é exibido durante a execução do script.
-CollectSdkEvents
Opcional. Use essa opção para coletar eventos do SDK do Application Insights.
-CollectRedfieldEvents
Opcional. Use essa opção para coletar eventos emitidos pelo Application Insights Agent e pelo runtime do Redfield.
-Verbose
Parâmetro comum. Use essa opção para gerar logs detalhados.
Saída
Exemplo de logs de inicialização do aplicativo
Start-ApplicationInsightsMonitoringTrace -CollectRedfieldEvents
Starting...
Log File: C:\Program Files\WindowsPowerShell\Modules\Az.ApplicationMonitor\content\logs\20190627_144217_ApplicationInsights_ETW_Trace.etl
Tracing enabled, waiting for events.
Tracing will timeout in 5 minutes. Press CTRL+C to cancel.
2:42:31 PM EVENT: Microsoft-ApplicationInsights-IIS-ManagedHttpModuleHelper Trace Resolved variables to: MicrosoftAppInsights_ManagedHttpModulePath='C:\Program Files\WindowsPowerShell\Modules\Az.ApplicationMonitor\content\Runtime\Microsoft.ApplicationInsights.RedfieldIISModule.dll', MicrosoftAppInsights_ManagedHttpModuleType='Microsoft.ApplicationInsights.RedfieldIISModule.RedfieldIISModule'
2:42:31 PM EVENT: Microsoft-ApplicationInsights-IIS-ManagedHttpModuleHelper Trace Resolved variables to: MicrosoftDiagnosticServices_ManagedHttpModulePath2='', MicrosoftDiagnosticServices_ManagedHttpModuleType2=''
2:42:31 PM EVENT: Microsoft-ApplicationInsights-IIS-ManagedHttpModuleHelper Trace Environment variable 'MicrosoftDiagnosticServices_ManagedHttpModulePath2' or 'MicrosoftDiagnosticServices_ManagedHttpModuleType2' is null, skipping managed dll loading
2:42:31 PM EVENT: Microsoft-ApplicationInsights-IIS-ManagedHttpModuleHelper Trace MulticastHttpModule.constructor, success, 70 ms
2:42:31 PM EVENT: Microsoft-ApplicationInsights-RedfieldIISModule Trace Current assembly 'Microsoft.ApplicationInsights.RedfieldIISModule, Version=2.8.18.27202, Culture=neutral, PublicKeyToken=f23a46de0be5d6f3' location 'C:\Program Files\WindowsPowerShell\Modules\Az.ApplicationMonitor\content\Runtime\Microsoft.ApplicationInsights.RedfieldIISModule.dll'
2:42:31 PM EVENT: Microsoft-ApplicationInsights-RedfieldIISModule Trace Matched filter '.*'~'STATUSMONITORTE', '.*'~'DemoWithSql'
2:42:31 PM EVENT: Microsoft-ApplicationInsights-RedfieldIISModule Trace Lightup assembly calculated path: 'C:\Program Files\WindowsPowerShell\Modules\Az.ApplicationMonitor\content\Runtime\Microsoft.ApplicationInsights.Redfield.Lightup.dll'
2:42:31 PM EVENT: Microsoft-ApplicationInsights-FrameworkLightup Trace Loaded applicationInsights.config from assembly's resource Microsoft.ApplicationInsights.Redfield.Lightup, Version=2.8.18.27202, Culture=neutral, PublicKeyToken=f23a46de0be5d6f3/Microsoft.ApplicationInsights.Redfield.Lightup.ApplicationInsights-recommended.config
2:42:34 PM EVENT: Microsoft-ApplicationInsights-FrameworkLightup Trace Successfully attached ApplicationInsights SDK
2:42:34 PM EVENT: Microsoft-ApplicationInsights-RedfieldIISModule Trace RedfieldIISModule.LoadLightupAssemblyAndGetLightupHttpModuleClass, success, 2687 ms
2:42:34 PM EVENT: Microsoft-ApplicationInsights-RedfieldIISModule Trace RedfieldIISModule.CreateAndInitializeApplicationInsightsHttpModules(lightupHttpModuleClass), success
2:42:34 PM EVENT: Microsoft-ApplicationInsights-IIS-ManagedHttpModuleHelper Trace ManagedHttpModuleHelper, multicastHttpModule.Init() success, 3288 ms
2:42:35 PM EVENT: Microsoft-ApplicationInsights-IIS-ManagedHttpModuleHelper Trace Resolved variables to: MicrosoftAppInsights_ManagedHttpModulePath='C:\Program Files\WindowsPowerShell\Modules\Az.ApplicationMonitor\content\Runtime\Microsoft.ApplicationInsights.RedfieldIISModule.dll', MicrosoftAppInsights_ManagedHttpModuleType='Microsoft.ApplicationInsights.RedfieldIISModule.RedfieldIISModule'
2:42:35 PM EVENT: Microsoft-ApplicationInsights-IIS-ManagedHttpModuleHelper Trace Resolved variables to: MicrosoftDiagnosticServices_ManagedHttpModulePath2='', MicrosoftDiagnosticServices_ManagedHttpModuleType2=''
2:42:35 PM EVENT: Microsoft-ApplicationInsights-IIS-ManagedHttpModuleHelper Trace Environment variable 'MicrosoftDiagnosticServices_ManagedHttpModulePath2' or 'MicrosoftDiagnosticServices_ManagedHttpModuleType2' is null, skipping managed dll loading
2:42:35 PM EVENT: Microsoft-ApplicationInsights-IIS-ManagedHttpModuleHelper Trace MulticastHttpModule.constructor, success, 0 ms
2:42:35 PM EVENT: Microsoft-ApplicationInsights-RedfieldIISModule Trace RedfieldIISModule.CreateAndInitializeApplicationInsightsHttpModules(lightupHttpModuleClass), success
2:42:35 PM EVENT: Microsoft-ApplicationInsights-IIS-ManagedHttpModuleHelper Trace ManagedHttpModuleHelper, multicastHttpModule.Init() success, 0 ms
Timeout Reached. Stopping...
As atualizações da nota de versão estão listadas aqui.
2.0.0
- Atualizado o SDK do Application Insights .NET/.NET Core para
2.21.0-redfield
2.0.0-beta3
- Atualizado o SDK do Application Insights .NET/.NET Core para
2.20.1-redfield
- Coleção de consulta SQL habilitada
2.0.0-beta2
Atualizado o SDK do Application Insights .NET/.NET Core para 2.18.1-redfield
2.0.0-beta1
Foi adicionado o recurso de instrumentação automática do ASP.NET Core
Perguntas frequentes
Esta seção fornece respostas para perguntas comuns.
O Application Insights Agent dá suporte a instalações de proxy?
Sim. Há várias maneiras de baixar o Application Insights Agent:
- Se o seu computador tiver acesso à Internet, você poderá fazer a integração à Galeria do PowerShell usando parâmetros
-Proxy
. - Você também pode baixar manualmente o módulo e instalá-lo no seu computador ou usá-lo diretamente.
Cada uma dessas opções é descrita nas instruções detalhadas.
O Agente do Application Insights dá suporte a aplicativos ASP.NET Core?
Sim. No Application Insights Agent 2.0.0 e posterior, há suporte para aplicativos ASP.NET Core hospedados no IIS.
Como verificar se a habilitação foi bem-sucedida?
- O cmdlet Get-ApplicationInsightsMonitoringStatus pode ser usado para verificar se a habilitação foi bem-sucedida.
Recomendamos que você use Métricas Dinâmicas para determinar rapidamente se o seu aplicativo está enviando telemetria.
Você também pode usar o Log Analytics para listar todas as funções de nuvem que estão enviando telemetria no momento:
union * | summarize count() by cloud_RoleName, cloud_RoleInstance
Como fazer obtenho a passagem do proxy?
Para obter a passagem de proxy, configure um proxy no nível da máquina ou um proxy no nível do aplicativo. Confira DefaultProxy.
Exemplo de Web.config:
<system.net>
<defaultProxy>
<proxy proxyaddress="http://xx.xx.xx.xx:yyyy" bypassonlocal="true"/>
</defaultProxy>
</system.net>
Solução de problemas
Confira o artigo de solução de problemas dedicado.
Testar a conectividade entre o host do aplicativo e o serviço de ingestão
Os 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 servidor Web ou do computador host do aplicativo para os pontos de extremidade do serviço de ingestão usando clientes REST brutos do PowerShell ou comandos curl. Confira Solucionar problemas de telemetria de aplicativo ausente no Application Insights do Azure Monitor.
Próximas etapas
Exiba sua telemetria:
- Explore as métricas para monitorar o desempenho e o uso.
- Pesquise eventos e logs para diagnosticar problemas.
- Use o Log Analytics para fazer consultas mais avançadas.
- Crie painéis.
Adicione mais telemetria:
- Visão geral da disponibilidade
- Adicione telemetria de cliente Web para ver exceções de código de página da Web e habilitar chamadas de rastreamento.
- Adicione o SDK do Application Insights ao seu código para que você possa inserir o rastreamento e chamadas de log.
Faça mais com o Application Insights Agent:
- Solucionar problemas do Application Insights Agent.
Comentários
Esta página foi útil?