Cet onglet décrit comment intégrer à la PowerShell Gallery et télécharger le module ApplicationMonitor.
Il contient les paramètres les plus courants dont vous aurez besoin pour commencer.
Nous avons également donné des instructions pour télécharger le manuel si vous n’avez d’accès Internet.
Obtenir une chaîne de connexion
Pour commencer, vous avez besoin d’une chaîne de connexion. Pour plus d’informations, consultez Chaînes de connexion.
Notes
Le support de l’ingestion de clé d’instrumentation prendra fin le 31 mars 2025. L’ingestion de clé d’instrumentation continuera de fonctionner, mais nous ne fournirons plus de mises à jour ni de support pour la fonctionnalité. Passez aux chaînes de connexion pour tirer parti des nouvelles fonctionnalités.
Exécuter PowerShell en tant qu’administrateur avec une stratégie d’exécution avec élévation de privilèges
Exécuter en tant qu’administrateur
PowerShell a besoin d’autorisations de niveau administrateur pour apporter des modifications à votre ordinateur.
- Description : Par défaut, l’exécution des scripts PowerShell est désactivée. Nous vous recommandons d’autoriser les scripts RemoteSigned (signés à distance) uniquement pour l’étendue Current (Actuelle).
- Référence : À propos des stratégies d’exécution et Set-ExecutionPolicy.
- Commande :
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope Process
.
- Paramètre facultatif :
-Force
. Pour contourner l’invite de confirmation.
Exemples d’erreurs
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érequis pour PowerShell
Effectuez l’audit de votre instance de PowerShell en exécutant la commande $PSVersionTable
.
Cette commande génère la sortie suivante :
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
Ces instructions ont été écrites et testées sur un ordinateur exécutant Windows 10 et les versions suivantes.
Prérequis pour PowerShell Gallery
Ces étapes préparent votre serveur au téléchargement des modules à partir de PowerShell Gallery.
Notes
PowerShell Gallery est pris en charge sur Windows 10, Windows Server 2016 et PowerShell 6+.
Pour plus d’informations sur les versions antérieures, consultez Installation de PowerShellGet.
Exécutez PowerShell en tant qu’administrateur avec une stratégie d’exécution avec élévation de privilèges.
Installez le fournisseur du package NuGet.
- Description : Vous avez besoin de ce fournisseur pour interagir avec des référentiels NuGet tels que PowerShell Gallery.
- Référence : Install-PackageProvider.
- Commande :
Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201
.
- Paramètres facultatifs :
-Proxy
. Spécifie un serveur proxy pour la demande.
-Force
. Pour contourner l’invite de confirmation.
Vous recevez cette invite si NuGet n’est pas configuré :
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"):
Configurez PowerShell Gallery comme un référentiel fiable.
- Description : Par défaut, PowerShell Gallery n’est pas un référentiel fiable.
- Référence : Set-PSRepository.
- Commande :
Set-PSRepository -Name "PSGallery" -InstallationPolicy Trusted
.
- Paramètre facultatif :
-Proxy
. Spécifie un serveur proxy pour la demande.
Vous recevez cette invite si PowerShell Gallery n’est pas approuvé :
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"):
Vous pouvez confirmer cette modification et effectuer l’audit de tous les PSRepositories
en exécutant la commande Get-PSRepository
.
Installez la nouvelle version de PowerShellGet.
- Description : Ce module contient les outils permettant d’obtenir d’autres modules à partir de PowerShell Gallery. La version 1.0.0.1 est fournie avec Windows 10 et Windows Server. La version 1.6.0 ou supérieure est nécessaire. Pour déterminer la version installée, exécutez la commande
Get-Command -Module PowerShellGet
.
- Référence : Installation de PowerShellGet.
- Commande :
Install-Module -Name PowerShellGet
.
- Paramètres facultatifs :
-Proxy
. Spécifie un serveur proxy pour la demande.
-Force
. Pour ignorer l’avertissement « Déjà installé » et installer la dernière version.
Vous recevez cette erreur si vous n’utilisez pas la version la plus récente de 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
Redémarrez PowerShell. Impossible de charger la nouvelle version dans la session active. Les nouvelles sessions PowerShell chargent la dernière version de PowerShellGet.
Télécharger et installer le module via PowerShell Gallery
Ces étapes téléchargent le module Az.ApplicationMonitor à partir de PowerShell Gallery.
- Veillez à remplir tous les prérequis de PowerShell Gallery.
- Exécutez PowerShell en tant qu’administrateur avec une stratégie d’exécution avec élévation de privilèges.
- Installez le module Az.ApplicationMonitor.
- Référence : Install-Module.
- Commande :
Install-Module -Name Az.ApplicationMonitor
.
- Paramètres facultatifs :
-Proxy
. Spécifie un serveur proxy pour la demande.
-AllowPrerelease
. Pour installer les versions alpha et bêta.
-AcceptLicense
. Pour contourner l’invite « Accepter la licence »
-Force
. Pour ignorer l’avertissement « Référentiel non approuvé ».
Télécharger et installer manuellement le module (option hors connexion)
Si pour une raison quelconque vous ne pouvez pas vous connecter au module PowerShell, vous pouvez manuellement télécharger et installer le module Az.ApplicationMonitor.
Téléchargement manuel du dernier fichier nupkg
- Atteindre https://www.powershellgallery.com/packages/Az.ApplicationMonitor.
- Sélectionnez la dernière version du fichier dans la table Historique des versions.
- Sous Options d’installation, sélectionnez Téléchargement manuel.
Option 1 : Installer dans un répertoire de modules PowerShell
Installez le module PowerShell téléchargé manuellement dans un répertoire PowerShell afin qu’il soit détectable par les sessions PowerShell.
Pour plus d’informations, consultez l’article Installation d’un module PowerShell.
Décompresser le fichier nupkg à l’aide de Expand-Archive (v1.0.1.0)
Description : La version de base de Microsoft.PowerShell.Archive (v1.0.1.0) ne peut pas décompresser les fichiers nupkg. Renommez le fichier avec l’extension .zip.
Référence : Expand-Archive.
Commande :
$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
Décompresser le fichier nupkg à l’aide de Expand-Archive (v1.1.0.0)
Description : Utilisez une version actuelle de Expand-Archive pour décompresser des fichiers nupkg sans avoir à modifier l’extension.
Référence : Expand-Archive et Microsoft.PowerShell.Archive.
Commande :
$pathToNupkg = "C:\az.applicationmonitor.0.2.1-alpha.nupkg"
$pathInstalledModule = "$Env:ProgramFiles\WindowsPowerShell\Modules\az.applicationmonitor"
Expand-Archive -LiteralPath $pathToNupkg -DestinationPath $pathInstalledModule
Option n°2 : Décompresser et importer le fichier nupkg manuellement
Installez le module PowerShell téléchargé manuellement dans un répertoire PowerShell afin qu’il soit détectable par les sessions PowerShell.
Pour plus d’informations, consultez l’article Installation d’un module PowerShell.
Si vous installez le module dans n’importe quel répertoire, importez-le manuellement à l’aide de Import-Module.
Important
DLL installera via des chemins d’accès relatifs.
Stockez le contenu du package dans le répertoire du runtime prévu et confirmez que les autorisations d’accès autorisent la lecture mais pas l’écriture.
- Remplacez l’extension par « .zip » et extrayez le contenu du package dans le répertoire d’installation prévu.
- Recherchez le chemin de fichier de Az.ApplicationMonitor.psd1.
- Exécutez PowerShell en tant qu’administrateur avec une stratégie d’exécution avec élévation de privilèges.
- Chargez le module à l’aide de la commande
Import-Module Az.ApplicationMonitor.psd1
.
Router le trafic via un proxy
Lorsque vous analysez un ordinateur sur votre intranet privé, vous devez acheminer le trafic HTTP via un proxy.
Les commandes PowerShell pour télécharger et installer Az.ApplicationMonitor à partir de PowerShell Gallery prennent en charge un paramètre -Proxy
.
Lorsque vous écrivez vos scripts d’installation, passez en revue les instructions précédentes.
Le kit de développement logiciel (SDK) Application Insights doit envoyer les données de télémétrie de votre application à Microsoft. Nous vous recommandons de configurer les paramètres de proxy de votre application dans votre fichier web.config. Pour plus d’informations, consultez Comment obtenir un relais proxy ?.
Utilisez la commande Enable-ApplicationInsightsMonitoring
pour activer la supervision.
Consultez la documentation de référence de l’API pour obtenir une description détaillée de l’utilisation de cette cmdlet.
Cet onglet décrit les applets de commande suivants qui appartiennent au module PowerShell Az.ApplicationMonitor :
Notes
- Pour commencer, vous avez besoin d’une chaîne de connexion. Pour plus d’informations, consultez Create an Application Insights resource (Création d’une ressource Application Insights).
- Cette cmdlet nécessite que vous lisiez et acceptiez nos licence et déclaration de confidentialité.
Notes
Le support de l’ingestion de clé d’instrumentation prendra fin le 31 mars 2025. L’ingestion de clé d’instrumentation continuera de fonctionner, mais nous ne fournirons plus de mises à jour ni de support pour la fonctionnalité. Passez aux chaînes de connexion pour tirer parti des nouvelles fonctionnalités.
Important
Cette cmdlet requiert une session PowerShell avec des autorisations d’administrateur, ainsi qu’une stratégie d’exécution avec élévation des privilèges. Pour plus d’informations, consultez Run PowerShell as Admin with an elevated execution policy (Exécuter PowerShell en tant qu’administrateur avec une stratégie d’exécution avec élévation de privilèges).
- Cette cmdlet nécessite que vous lisiez et acceptiez nos licence et déclaration de confidentialité.
- Le moteur d’instrumentation ajoute une surcharge et est désactivé par défaut.
Enable-InstrumentationEngine
Active le moteur d’instrumentation en définissant certaines clés de Registre.
Redémarrez IIS pour que les modifications soient prises en compte.
Le moteur d’instrumentation peut compléter les données collectées par les kits de développement logiciel (SDK) .NET.
Il collecte les événements et les messages qui décrivent l’exécution d’un processus managé. Ces événements et messages incluent les codes de résultat de dépendance, les verbes HTTP et le texte de commande SQL.
Activez le moteur d’instrumentation si :
- Vous avez déjà activé la supervision avec la cmdlet Enable mais n’avez pas activé le moteur d’instrumentation.
- Vous avez instrumenté manuellement votre application avec les kits SDK .NET, et souhaitez collecter une télémétrie supplémentaire.
Enable-InstrumentationEngine
Optionnel. Utilisez cette instruction switch pour accepter la licence et la déclaration de confidentialité dans les installations sans affichage.
Paramètre commun. Utilisez ce commutateur pour générer des journaux détaillés.
Exemple de sortie résultant d’une activation réussie du moteur d’instrumentation
Configuring IIS Environment for instrumentation engine...
Configuring registry for instrumentation engine...
Enable-ApplicationInsightsMonitoring
Permet la surveillance sans code des applications IIS sur un ordinateur cible.
Cette cmdlet modifie l’élément applicationHost.config de l’application IIS et définit des clés de Registre.
Elle crée un fichier applicationinsights.ikey.config, qui définit la clé d’instrumentation utilisée par chaque application.
IIS charge RedfieldModule au démarrage, qui injecte le SDK Application Insights dans les applications à mesure qu’elles démarrent.
Redémarrez IIS pour que vos modifications prennent effet.
Après avoir activé la surveillance, nous vous recommandons d’utiliser Métriques en temps réel pour vérifier rapidement si votre application nous envoie des données de télémétrie.
Exemple avec une chaîne de connexion unique
Dans cet exemple, toutes les applications sur l’ordinateur actuel reçoivent une chaîne de connexion unique.
Enable-ApplicationInsightsMonitoring -ConnectionString 'InstrumentationKey=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx;IngestionEndpoint=https://xxxx.applicationinsights.azure.com/'
Exemple avec une clé d’instrumentation unique
Dans cet exemple, toutes les applications sur l’ordinateur actuel reçoivent une clé d’instrumentation unique.
Enable-ApplicationInsightsMonitoring -InstrumentationKey xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Exemple avec un mappage de clé d’instrumentation
Dans cet exemple :
MachineFilter
effectue la correspondance avec l’ordinateur actuel en utilisant le caractère générique '.*'
.
AppFilter='WebAppExclude'
fournit une clé d’instrumentation null
. L’application spécifiée n’est pas instrumentée.
AppFilter='WebAppOne'
attribue à l’application spécifiée une clé d’instrumentation unique.
AppFilter='WebAppTwo'
attribue à l’application spécifiée une clé d’instrumentation unique.
AppFilter
utilise le caractère générique '.*'
pour faire correspondre les applications web avec lesquelles aucune correspondance n’a encore été établie, et affecte une clé d’instrumentation par défaut.
- Des espaces ont été ajoutées pour faciliter la lisibilité.
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'}})
Notes
La dénomination d’AppFilter dans ce contexte peut prêter à confusion : AppFilter
définit le filtre regex du nom de l’application (HostingEnvironment.SiteName dans le cas de .NET sur IIS). VirtualPathFilter
définit le filtre regex du chemin d’accès virtuel (HostingEnvironment.ApplicationVirtualPath dans le cas de .NET sur IIS). Pour instrumenter une seule application, vous devez utiliser VirtualPathFilter comme suit : Enable-ApplicationInsightsMonitoring -InstrumentationKeyMap @(@{VirtualPathFilter="^/MyAppName$"; InstrumentationSettings=@{InstrumentationKey='<your ikey>'}})
.
Obligatoire. Utilisez ce paramètre pour fournir une chaîne de connexion unique que l’ensemble des applications utiliseront sur l’ordinateur cible.
Obligatoire. Utilisez ce paramètre pour fournir une clé d’instrumentation unique que l’ensemble des applications utiliseront sur l’ordinateur cible.
Obligatoire. Utilisez ce paramètre pour fournir plusieurs clés d’instrumentation et un mappage des clés d’instrumentation utilisées par chaque application.
Vous pouvez créer un script d’installation unique pour plusieurs ordinateurs en définissant le paramètre MachineFilter
.
Important
Les applications effectuent le mappage avec les règles dans l’ordre d’apparition de ces dernières. Par conséquent, vous devez d’abord spécifier les règles les plus spécifiques et finir par les règles les plus génériques.
@(@{MachineFilter='.*';AppFilter='.*';InstrumentationSettings=@{InstrumentationKey='xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'}})
- MachineFilter est une expression régulière C# obligatoire associée au nom de la machine virtuelle ou de l’ordinateur.
- « .* » correspond à tout.
- « ComputerName » établit une correspondance uniquement avec les ordinateurs ayant le nom exact spécifié.
- AppFilter est une expression C# régulière obligatoire du nom du site IIS. Vous pouvez obtenir la liste des sites sur votre serveur en exécutant la commande get-iissite.
- « .* » correspond à tout.
- « SiteName » établit une correspondance uniquement avec le site IIS ayant le nom exact spécifié.
- InstrumentationKey est requis pour activer la surveillance des applications qui correspondent aux deux filtres précédents.
- Conservez la valeur null si vous souhaitez définir des règles pour exclure la surveillance.
-EnableInstrumentationEngine
Optionnel. Utilisez cette instruction switch pour permettre au moteur d’instrumentation de collecter des événements et des messages sur ce qui se passe pendant l’exécution d’un processus managé. Ces événements et messages incluent les codes de résultat de dépendance, les verbes HTTP et le texte de commande SQL.
Le moteur d’instrumentation ajoute une surcharge et est désactivé par défaut.
Optionnel. Utilisez cette instruction switch pour accepter la licence et la déclaration de confidentialité dans les installations sans affichage.
Lorsque vous avez un cluster de serveurs web, il se peut que vous utilisiez une configuration partagée.
HttpModule ne peut pas être injecté dans cette configuration partagée.
Ce script échoue avec le message indiquant que des étapes d’installation supplémentaires sont requises.
Utilisez ce commutateur pour ignorer cette vérification et poursuivre l’installation des prérequis.
Pour plus d’informations, consultez known conflict-with-iis-shared-configuration
Paramètre commun. Utilisez ce commutateur pour afficher les journaux détaillés.
Paramètre commun. Utilisez cette instruction switch pour tester et valider vos paramètres d’entrée sans réellement activer la surveillance.
Exemple de sortie à partir d’une activation réussie
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
Désactive le moteur d’instrumentation en supprimant certaines clés de Registre.
Redémarrez IIS pour que les modifications soient prises en compte.
Disable-InstrumentationEngine
Paramètre commun. Utilisez ce commutateur pour générer des journaux détaillés.
Exemple de sortie à partir d’une désactivation réussie du moteur d’instrumentation
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
Désactive l’analyse sur l’ordinateur cible.
Cette applet de commande supprime les modifications apportées à l’élément applicationHost.config de l’application IIS et supprime les clés de Registre.
Disable-ApplicationInsightsMonitoring
Paramètre commun. Utilisez ce commutateur pour afficher les journaux détaillés.
Exemple de sortie à partir d’une désactivation réussie de la surveillance
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
Obtient le fichier de configuration et imprime les valeurs dans la console.
Get-ApplicationInsightsMonitoringConfig
Aucun paramètre requis.
Exemple de sortie à partir de la lecture du fichier de configuration
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
Cette applet de commande fournit des informations de résolution des problèmes sur l’agent Application Insights.
Utilisez ce cmdlet pour analyser l’état de l’analyse, la version du module PowerShell et pour inspecter le processus en cours d’exécution.
Cette cmdlet signale les informations de version et les informations sur les fichiers de clés nécessaires à la supervision.
Exemple : État de l’application
Exécutez la commande Get-ApplicationInsightsMonitoringStatus
pour afficher l’état d’analyse des sites Web.
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
Dans cet exemple,
l’identificateur de la machine est un ID anonyme utilisé pour identifier de manière unique votre serveur. Si vous créez une demande d’assistance, nous aurons besoin de cet ID pour rechercher les journaux de votre serveur.
Le site Web par défaut est arrêté dans IIS
DemoWebApp111 a été démarré dans IIS, mais n’a reçu aucune demande. Ce rapport indique qu’il n’y a aucun processus en cours d’exécution (ProcessId: not found).
DemoWebApp222 est en cours d’exécution et est en cours d’analyse (Instrumented: true). En fonction de la configuration utilisateur, la clé d’instrumentation xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxx123 a été mise en correspondance pour ce site.
DemoWebApp333 a été instrumenté manuellement à l’aide du kit de développement logiciel (SDK) Application Insights. L’agent Application Insights a détecté le kit SDK et ne supervise pas ce site.
La présence de AppAlreadyInstrumented : true
signifie que l’agent Application Insights a identifié une bibliothèque de liens dynamiques (dll) en conflit chargée dans l’application web, supposé que l’application web est instrumentée manuellement et que l’agent a désactivé et n’instrumente pas ce processus.
Instrumented : true
indique que l’agent Application Insights a correctement instrumenté l’application web s’exécutant dans le processus de w3wp.exe spécifié.
Exécutez la commande Get-ApplicationInsightsMonitoringStatus -PowerShellModule
pour afficher des informations sur le module actuel :
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
Exemple : État d’exécution
Vous pouvez inspecter le processus sur l’ordinateur instrumenté pour vérifier si toutes les DLL sont chargées. Si la surveillance fonctionne, au moins 12 DLL doivent être chargées.
Exécutez la commande suivante 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 défaut, cette cmdlet signale l’état d’analyse des applications Web.
Utilisez cette option pour vérifier si votre application a été correctement instrumentée.
Vous pouvez également examiner la clé d’instrumentation qui a été mise en correspondance avec votre site.
Facultatif. Utilisez ce commutateur pour signaler les numéros de version et les chemins des DLL nécessaires à l’analyse.
Utilisez cette option si vous avez besoin identifier la version de n’importe quelle DLL, y compris le SDK Application Insights.
Facultatif. Utilisez ce commutateur pour signaler si IIS est en cours d’exécution.
Elle télécharge des outils externes pour déterminer si les DLL sont chargées dans le runtime d’IIS.
Si ce processus échoue pour une raison quelconque, vous pouvez exécuter ces commandes manuellement :
- iisreset.exe /status
- handle64.exe -p w3wp | findstr /I "InstrumentationEngine AI. ApplicationInsights"
- listdlls64.exe w3wp | findstr /I "InstrumentationEngine AI ApplicationInsights"
Facultatif. Utilisé uniquement avec InspectProcess. Utilisez ce commutateur pour ignorer l’invite utilisateur qui apparaît avant le téléchargement d’outils supplémentaires.
Set-ApplicationInsightsMonitoringConfig
Définit le fichier de configuration sans effectuer de réinstallation complète.
Redémarrez IIS pour que vos modifications prennent effet.
Important
Cette cmdlet requiert une session PowerShell avec des autorisations d’administrateur.
Exemple avec une clé d’instrumentation unique
Dans cet exemple, toutes les applications sur l’ordinateur actuel reçoivent une clé d’instrumentation unique.
Enable-ApplicationInsightsMonitoring -InstrumentationKey xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Exemple avec un mappage de clé d’instrumentation
Dans cet exemple :
MachineFilter
effectue la correspondance avec l’ordinateur actuel en utilisant le caractère générique '.*'
.
AppFilter='WebAppExclude'
fournit une clé d’instrumentation null
. L’application spécifiée n’est pas instrumentée.
AppFilter='WebAppOne'
attribue à l’application spécifiée une clé d’instrumentation unique.
AppFilter='WebAppTwo'
attribue à l’application spécifiée une clé d’instrumentation unique.
AppFilter
utilise le caractère générique '.*'
pour faire correspondre les applications web avec lesquelles aucune correspondance n’a encore été établie, et affecte une clé d’instrumentation par défaut.
- Des espaces ont été ajoutées pour faciliter la lisibilité.
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'}})
Obligatoire. Utilisez ce paramètre pour fournir une clé d’instrumentation unique que l’ensemble des applications utiliseront sur l’ordinateur cible.
Obligatoire. Utilisez ce paramètre pour fournir plusieurs clés d’instrumentation et un mappage des clés d’instrumentation utilisées par chaque application.
Vous pouvez créer un script d’installation unique pour plusieurs ordinateurs en définissant le paramètre MachineFilter
.
Important
Les applications effectuent le mappage avec les règles dans l’ordre d’apparition de ces dernières. Par conséquent, vous devez d’abord spécifier les règles les plus spécifiques et finir par les règles les plus génériques.
@(@{MachineFilter='.*';AppFilter='.*';InstrumentationKey='xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'})
- MachineFilter est une expression régulière C# obligatoire associée au nom de la machine virtuelle ou de l’ordinateur.
- « .* » correspond à tout.
- « ComputerName » établit une correspondance uniquement avec les ordinateurs ayant le nom spécifié.
- AppFilter est une expression régulière C# obligatoire associée au nom de la machine virtuelle ou de l’ordinateur.
- « .* » correspond à tout.
- « ApplicationName» établit une correspondance uniquement avec les applications IIS ayant le nom spécifié.
- Le paramètre Clé d’instrumentation est requis pour activer la surveillance des applications qui correspondent aux deux filtres précédents.
- Conservez la valeur null si vous souhaitez définir des règles pour exclure la surveillance.
Paramètre commun. Utilisez ce commutateur pour afficher les journaux détaillés.
Par défaut, aucune sortie.
Exemple détaillé de la sortie à partir de la définition du fichier de configuration 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
Exemple détaillé de la sortie à partir de la définition du fichier de configuration 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
Collecte des événements ETW à partir du runtime joint sans code.
Cette cmdlet est une alternative à l’exécution de PerfView.
Les événements sont collectés, imprimés dans la console en temps réel et enregistrés dans un fichier ETL. Vous pouvez ouvrir le fichier ETL de sortie avec PerfView pour une investigation approfondie.
Cette applet de commande s’exécute jusqu’à la fin du délai d’expiration (cinq minutes par défaut), ou vous pouvez l’arrêter manuellement (Ctrl + C
).
Comment collecter des événements
Normalement, nous vous demandons de collecter des événements pour examiner pourquoi votre application n’est pas instrumentée actuellement.
Le runtime joint sans code émettra des événements ETW au démarrage d’IIS et au lancement de votre application.
Pour collecter ces événements, procédez comme suit :
- Dans une console de commande avec des privilèges d’administrateur, exécutez la commande
iisreset /stop
pour arrêter IIS et toutes les applications web.
- Exécuter cette cmdlet
- Dans une console de commande avec des privilèges d’administrateur, exécutez la commande
iisreset /start
pour démarrer IIS.
- Essayez d’accéder à votre application.
- Une fois votre application chargée, vous pouvez l’arrêter manuellement (
Ctrl + C
) ou attendre la fin du délai d’attente.
Vous disposez de trois options lors de la collecte des événements :
- Utiliser le commutateur
-CollectSdkEvents
pour collecter les événements émis par le kit de développement logiciel (SDK) Application Insights.
- Utilisez le commutateur
-CollectRedfieldEvents
pour collecter les événements émis par l’agent Application Insights et le runtime Redfield. Ces journaux sont utiles pour le diagnostic d’IIS et le démarrage de l’application.
- Utiliser les deux commutateurs pour collecter les deux types d’événements.
- Par défaut, si aucun commutateur n’est spécifié, les deux types d’événements seront collectés.
Optionnel. Utilisez ce paramètre pour définir la durée pendant laquelle ce script doit collecter les événements. La valeur par défaut est de 5 minutes.
Optionnel. Utilisez ce commutateur pour définir le répertoire de sortie du fichier ETL.
Par défaut, ce fichier est créé dans le répertoire des modules PowerShell.
Le chemin complet est affiché lors de l’exécution du script.
Optionnel. Utilisez ce commutateur pour collecter les événements du kit de développement logiciel (SDK) Application Insights.
Optionnel. Utilisez ce commutateur pour collecter les événements de l’agent Application Insights et le runtime Redfield.
Paramètre commun. Utilisez ce commutateur pour générer des journaux détaillés.
Exemple de journaux de démarrage d’application
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...