Comment puis-je désactiver automatiquement les insights d'application lors de l'utilisation d'une configuration de débogage et l'activer uniquement lors de la publication?
Est-il possible de faire cela sans créer une autre clé d'instrumentation uniquement pour le débogage?
J'ai des trackevent
déclarations éparpillées dans tout le code, les enfermer dans une vérification de préprocesseur de débogage n'est pas une solution idéale.
Ma solution actuelle est de définir le Build Action
du ApplicationInsights.config
fichier None
afin qu'il soit pas copié dans le répertoire de sortie du projet, mais ce n'est pas un processus qui peut être automatisé en fonction de la configuration de construction active.
Il existe un mode développeur mais doit être modifié manuellement (s'il était possible de définir conditionnellement le fichier de configuration, le vidage de l'instrumentationkey a également résolu le problème). Voir http://apmtips.com/blog/2015/02/02/developer-mode/
la source
WindowsAppInitializer.InitializeAsync();
(j'ai également essayé après) mais le compteur d'événements de Visual Studio Application Insights a augmenté. Je n'ai pas pu voir si cette session a été effectivement enregistrée dans le portail Azure car il y a trop de sessions et d'utilisateurs. J'essaierai pendant la nuit.En plus des autres solutions, je suggérerais d'ajouter ce qui suit, disons au
Global.asax
:L'avantage de ceci est qu'il ne nécessite aucun changement dans les configurations et qu'il fonctionne mieux avec certains outils comme ReSharper qui le comprendront mieux que
#
-directives.la source
Conditional
attribut.Pour les projets ASP.NET Core, App Insights est activé par défaut, ce qui enregistre en fait une tonne d'informations dans la fenêtre de débogage.
Pour le désactiver, allez dans "OUTILS -> Options -> Projets et solutions -> Projets Web" et cochez "Désactiver Application Insights locale pour les projets Web Asp.Net Core".
Vous trouverez ci-dessous l'image pour désactiver les informations sur les applications locales.
Pour plus d'informations sur le problème, vous pouvez voir le problème officiel de github ici
la source
Comme expliqué dans la question, ne pas déployer ou déployer un ApplicationInsights.config sans
<instrumentationkey>key</instrumentationkey>
bloquer la génération d'événements. Vous pouvez ensuite mettre la clé d'instrumentation dans le code (uniquement à la libération dans mon cas)Chaque
TelemetryClient
créé après cet appel aura la bonne clé et suivra les événements afin que vous n'ayez pas à changer le code à tous les endroits. Ne pas appeler la méthode ci-dessus ou laisser le paramètre vide bloquera les événements car aucune clé n'est configurée.Fondamentalement, le
ApplicationInsights.config
fichier remplace tout code qui définit la clé d'instrumentation, en supprimant l'<instrumentationkey>key</instrumentationkey>
intérieur, il vous permettra d'utiliser le code pour configurer la clé. Si vous supprimez complètement le fichier, cela ne fonctionne pas.Voici la confirmation: "Si vous souhaitez définir la clé de manière dynamique - par exemple si vous souhaitez envoyer les résultats de votre application à différentes ressources - vous pouvez omettre la clé du fichier de configuration et la définir dans le code à la place."
Référence: https://azure.microsoft.com/en-us/documentation/articles/app-insights-configuration-with-applicationinsights-config/#_instrumentationkey
la source
ApplicationInsights.Debug/Release.config
J'ai décidé d'utiliser les deux approches. J'ai déplacé le
InstrumentationKey
vers leWeb.config
et il sera remplacé par la transformation deWeb.Release.config
ouWeb.Debug.config
. (n'oubliez pas de le supprimer duApplicationInsights.config
fichier). Ensuite, j'ai appelé cette méthode duApplication_Start()
la source
L'exécution d'une application Web ASP.NET Core 2.1 avec Visual Studio 2017 (15.9.2) le «Désactiver Application Insights local pour les projets Web Asp.Net Core» n'a pas effacé la sortie dans ma fenêtre de débogage.
Cependant, l'ajout de ce qui suit à Configure () dans Startup.cs a fait le travail;
Notez que IsTracingDisabled était la solution clé , mais je suis parti dans DisableTelemetry pour faire bonne mesure! De plus, avoir les deux lignes côte à côte est utile lors de la recherche de références similaires entre des projets .NET Framework et .NET Core dans la même solution.
la source
J'ai juste eu le même problème.
Nous voulions contrôler le paramètre dans le fichier web.config, nous avons donc ajouté une clé DisableAITelemetry dans les paramètres de notre application:
Avec les versions en direct et de démonstration, nous n'inclurons pas de valeur (pour qu'elle soit par défaut false).
Nous pourrions alors le résoudre en ajoutant ceci:
la source
Jeu légèrement différent sur certaines des autres solutions. Mettez ceci dans votre global.asax:
Il désactivera la sortie de débogage des informations d'application lors de l'exécution sous le débogueur, mais l'autorisera sous les scénarios Ctrl + F5 et les versions de débogage publiées sur les serveurs de test
la source
Dans une application ASP.NET Core, vous pouvez ajouter les éléments suivants à Startus.cs pour désactiver Application Insights dans l'environnement de développement:
Ajoutez ceci au constructeur, juste après la
builder.AddApplicationInsightsSettings();
commande et vous ne verrez plus les journaux AI obstruer votre console de débogage.la source
Nous avons trouvé le moyen le plus simple de l'empêcher de suivre dans le journal de débogage est aussi simple que:
la source
Microsoft.ApplicationInsights.AspNetCore version 2.1
la source
Application Insights Telemetry (unconfigured)
messages du panneau de débogage dans Visual Studio - car si tel est le cas, cela ne semble pas fonctionner :-(TelemetryDebugWriter.IsTracingDisabled = true;
à les supprimer.la source
Depuis .NET Core 3.1:
la source
À partir d'ASP.NET Core 3.1:
(ce qui précède peut être appelé de n'importe où, mais le plus tôt dans le cycle de vie de votre application, mieux c'est).
Les deux peuvent être utilisés ensemble pour supprimer toute activité Application Insights dans votre code. Je garde avec une
#if DEBUG
directive pour m'assurer qu'AppInsights ne fait rien sur ma machine locale, mais émet des événements lorsqu'il est téléchargé sur notre serveur de développement Azure:la source