Application Insights pour les applications ASP.NET CoreApplication Insights for ASP.NET Core applications

Cet article décrit comment activer Application Insights pour un ASP.NET Core application.This article describes how to enable Application Insights for an ASP.NET Core application. Lorsque vous suivez les instructions dans cet article, Application Insights va commencer à collecter les demandes, dépendances, exceptions, les compteurs de performances, pulsations et journaux à partir de votre application ASP.NET Core.When you complete the instructions in this article, Application Insights will start collecting requests, dependencies, exceptions, performance counters, heartbeats, and logs from your ASP.NET Core application. L’exemple d’application est un Application MVC ciblant netcoreapp2.2, mais ces instructions sont applique à toutes les applications ASP.NET Core.The example application is an MVC Application targeting netcoreapp2.2, but these instructions are applicable to all ASP.NET Core applications.

Scénarios pris en chargeSupported scenarios

Le Application Insights SDK (Kit de développement logiciel) pour ASP.NET Core peut surveiller vos applications, quel que soit l’emplacement ou le mode d’exécution de l’application.The Application Insights SDK (Software Development Kit) for ASP.NET Core can monitor your applications irrespective of where or how the application is run. Si votre application est en cours d’exécution et dispose d’une connectivité réseau vers Azure, les données de télémétrie peuvent être collectées.If your application is running, and has network connectivity to Azure, telemetry can be collected. Cela signifie que surveillance Application Insights est pris en charge partout où que .NET Core est pris en charge.This means that Application Insights monitoring is supported everywhere .NET Core is supported. Cette prise en charge inclut, n’importe quel système d’exploitation (Windows, Linux, Mac), la méthode d’hébergement (Visual Studio dans le processus out-of-process), la méthode de déploiement dépendant du framework vs (autonomes), serveur Web (IIS, Kestrel), plateforme d’hébergement (Azure Web Apps, machine virtuelle Azure, Docker, Azure Kubernetes Service (AKS) et ainsi de suite.) ou IDE (Visual Studio, Visual Studio Code, de ligne de commande).This support includes, any operating system (Windows, Linux, Mac), hosting method (in-process vs out-of-process), deployment method (framework-dependent vs self-contained), Web Server (IIS, Kestrel), hosting platform (Azure Web Apps, Azure VM, Docker, Azure Kubernetes Service (AKS), and so on.) or IDE (Visual Studio, VS Code, command line.)

Conditions préalablesPrerequisites

  • Une Application ASP.NET Core fonctionne.A functioning ASP.NET Core Application. Suivez le guide de démarrage rapide ASP.NET Core bien pour créer une application ASP.NET Core, si nécessaire.Follow the ASP.NET Core getting started guide to create an ASP.NET Core application, if needed.
  • Une Application Insights instrumentation clé valide, ce qui est nécessaire pour envoyer les données de télémétrie au service Application Insights.A valid Application Insights instrumentation key, which is required to send any telemetry to the Application Insights service. Suivez le créer une ressource instructions pour créer une nouvelle ressource Application Insights, si nécessaire et obtenir une clé d’instrumentation.Follow the create a resource instructions to create a new Application Insights resource, if needed and obtain an instrumentation key.

Activer les données de télémétrie Application Insights côté serveur (Visual Studio)Enable Application Insights server-side telemetry (Visual Studio)

  1. Ouvrez votre projet dans Visual Studio.Open your project in Visual Studio.

    Conseil

    Lors de la pas une étape obligatoire, il peut être utile de définir le contrôle de source pour votre projet pour que vous puissiez suivre toutes les modifications apportées par Application Insights.While not a mandatory step, it can be helpful to set up source control for your project so you can track all the changes made by Application Insights. Pour activer la sélection de contrôle de source fichier > ajouter au contrôle de code Source.To enable source control select File > Add to Source Control.

  2. Sélectionnez Projet > Ajouter Application Insights Telemetry.Select Project > Add Application Insights Telemetry.

  3. Sélectionnez Prise en main.Select Get Started. (Selon votre version de Visual Studio, le texte peut varier légèrement.(Depending on your version of Visual Studio, the text might vary slightly. Certaines versions antérieures affichent un bouton Démarrer gratuitement à la place.)Some earlier versions have a Start Free button instead.)

  4. Sélectionnez votre abonnement, puis sélectionnez Ressource > Inscrire.Select your subscription, then select Resource > Register.

  5. Après avoir ajouté Application Insights à votre projet, vérifiez pour confirmer que vous utilisez la dernière version stable du SDK.After adding Application Insights to your project, check to confirm that you are using the latest stable release of the SDK. Accédez à projet > gérer les Packages NuGet > Microsoft.ApplicationInsights.AspNetCore > Si nécessaire choisissez Mise à jour.Go to Project > Manage NuGet Packages > Microsoft.ApplicationInsights.AspNetCore > if needed choose Update.

    Capture d’écran de gérer l’écran de package NuGet avec le package d’Application Insights sélectionné pour la mise à jour

  6. Si vous avez suivi l’info-bulle facultative et que vous ajouté votre projet au contrôle de code source vous pouvez ensuite accéder à vue > Team Explorer > modifications et Sélectionnez chaque fichier pour une vue de comparaison des modifications apportées à partir de l’ajout de données de télémétrie Application Insights.If you followed the optional tip and added your project to source control you can then go to View > Team Explorer > Changes and select each individual file for a diff view of the changes made from adding Application Insights telemetry.

Activer les données de télémétrie Application Insights côté serveur (sans Visual Studio)Enable Application Insights server-side telemetry (without Visual Studio)

  1. Installer le package NuGet du Kit de développement logiciel Application Insights pour ASP.NET Core.Install the Application Insights SDK NuGet package for ASP.NET Core. Nous vous recommandons de toujours utiliser la dernière version stable.We recommend to always use the latest stable version. Vous trouverez les notes de version complet pour le Kit de développement sur le ouvrir le référentiel de code source GitHub.Full release notes for the SDK can be found on the open source GitHub repo.

    L’extrait suivant montre les modifications à ajouter à votre projet .csproj fichier.The following snippet shows the changes to be added to your project's .csproj file.

        <ItemGroup>
          <PackageReference Include="Microsoft.ApplicationInsights.AspNetCore" Version="2.6.1" />
        </ItemGroup>
    
  2. Ajouter services.AddApplicationInsightsTelemetry(); à la ConfigureServices() méthode dans votre Startup classe.Add services.AddApplicationInsightsTelemetry(); to the ConfigureServices() method in your Startup class. Exemple complet ci-dessous.Full example below.

        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            // The following line enables Application Insights telemetry collection.
            services.AddApplicationInsightsTelemetry();
    
            // code adding other services for your application
            services.AddMvc();
        }
    
  3. Configurer la clé d’instrumentation.Set up the instrumentation key.

    Bien qu’il soit possible de fournir la clé d’instrumentation en tant qu’argument à AddApplicationInsightsTelemetry, nous vous recommandons de spécifier la clé d’instrumentation dans la configuration.While it is possible to provide the instrumentation key as an argument to AddApplicationInsightsTelemetry, we recommend that you specify the instrumentation key in configuration. L’exemple suivant montre comment spécifier une clé d’instrumentation dans appsettings.json.The following shows how to specify an instrumentation key in appsettings.json. Assurez-vous que appsettings.json est copié dans le dossier racine d’application lors de la publication.Make sure appsettings.json is copied to the application root folder while publishing.

        {
          "ApplicationInsights": {
            "InstrumentationKey": "putinstrumentationkeyhere"
          },
          "Logging": {
            "LogLevel": {
              "Default": "Warning"
            }
          }
        }
    

    Ou bien, la clé d’instrumentation peut également être spécifiée dans une des variables d’environnement suivantes.Alternately, the instrumentation key can also be specified in either of the following environment variables.

    APPINSIGHTS_INSTRUMENTATIONKEYAPPINSIGHTS_INSTRUMENTATIONKEY

    ApplicationInsights:InstrumentationKeyApplicationInsights:InstrumentationKey

    Exemple :Example:

    SET ApplicationInsights:InstrumentationKey=putinstrumentationkeyhere

    SET APPINSIGHTS_INSTRUMENTATIONKEY=putinstrumentationkeyhere

    APPINSIGHTS_INSTRUMENTATIONKEY est généralement utilisé pour spécifier la clé d’instrumentation pour les applications déployées dans Azure Web Apps.APPINSIGHTS_INSTRUMENTATIONKEY is typically used to specify instrumentation key for applications deployed to Azure Web Apps.

    Notes

    Une clé d’instrumentation spécifiée dans wins de code sur la variable d’environnement APPINSIGHTS_INSTRUMENTATIONKEY, qui prendra le pas sur les autres options.An instrumentation key specified in code wins over environment variable APPINSIGHTS_INSTRUMENTATIONKEY, which wins over other options.

Exécuter votre applicationRun your application

Exécutez votre application et effectuer des demandes à ce dernier.Run your application, and make requests to it. Données de télémétrie devraient maintenant commencer à circuler à Application Insights.Telemetry should now start flowing to Application Insights. Les données de télémétrie suivantes sont automatiquement collectées par le SDK Application Insights.The following telemetry is automatically collected by the Application Insights SDK.

Demandes/dépendancesRequests/Dependencies DétailsDetails
RequestsRequests Demandes web entrantes à votre application.Incoming web requests to your application.
HTTP/HttpsHttp/Https Les appels effectués avec HttpClient.Calls made with HttpClient.
SQLSQL Les appels effectués avec SqlClient.Calls made with SqlClient.
Azure StorageAzure storage Appels effectués avec le Client de stockage Azure.Calls made with Azure Storage Client.
EventHub logiciel (SDK)EventHub Client SDK Version 1.1.0 et versions ultérieures.Version 1.1.0 and above.
Kit de développement logiciel (SDK) client ServiceBusServiceBus Client SDK Version 3.0.0 et versions ultérieures.Version 3.0.0 and above.
Azure Cosmos DBAzure Cosmos DB Suivi uniquement automatiquement si vous utilisez HTTP/HTTPS.Only tracked automatically if HTTP/HTTPS is used. Le mode TCP ne sera pas capturé par Application Insights.TCP mode won't be captured by Application Insights.

Compteurs de performancePerformance Counters

Prise en charge de les compteurs de performances dans ASP.NET Core est limitée à ce qui suitSupport for Performance Counters in ASP.NET Core is limited to the following

  • Kit de développement logiciel version 2.4.1 et au-dessus de collecte des compteurs de performances si l’application s’exécute dans Azure Web App (Windows)SDK version 2.4.1 and above collects performance counters if the application is running in Azure Web App (Windows)
  • Kit de développement logiciel version 2.7.0-beta3 et au-dessus de collecte des compteurs de performances si l’application est en cours d’exécution dans Windows et de ciblage NETSTANDARD2.0 ou une version ultérieure.SDK version 2.7.0-beta3 and above collects performance counters if the application is running in Windows, and targeting NETSTANDARD2.0 or higher.
  • Pour les applications ciblant le .NET Framework, les compteurs de performance sont prises en charge dans toutes les versions du Kit de développement logiciel.For applications targeting the .NET Framework, performance counters are supported in all versions of SDK.
  • Cet article sera mis à jour lors de l’ajout de la prise en charge du compteur de performance dans Linux.This article will be updated when performance counter support in Linux is added.

Journaux ILoggerILogger logs

Les journaux ILogger de gravité Warning ou version ultérieure sont automatiquement capturées à partir du Kit de développement logiciel version 2.7.0-beta3 ou une version ultérieure.ILogger logs of severity Warning or above are automatically captured from SDK version 2.7.0-beta3 or higher.

Métriques en temps réelLive Metrics

Il peut prendre quelques minutes pour la télémétrie commencer à apparaître dans le portail.It may take a few minutes for telemetry to start appearing in the portal. Pour vérifier rapidement si tout fonctionne, il est préférable d’utiliser métriques temps réel, tandis que la fabrication des demandes à l’application en cours d’exécution.To quickly check if everything is working, it is best to use Live Metrics, while making requests to the running application.

Activer la télémétrie côté Client pour les Applications WebEnable Client-side Telemetry for Web Applications

Les étapes ci-dessus sont suffisantes pour commencer à collecter des données de télémétrie côté serveur.The steps above are sufficient to start collecting server-side telemetry. Si votre application comporte des composants côté client, puis suivez les étapes ci-dessous pour commencer à collecter télémétrie d’utilisation à partir de là.If your application has client-side components, then follow steps below to start collecting usage telemetry from there.

  1. Dans _ViewImports.cshtml, ajoutez l’injection :In _ViewImports.cshtml, add injection:

        @inject Microsoft.ApplicationInsights.AspNetCore.JavaScriptSnippet JavaScriptSnippet
    
  2. Dans _Layout.cshtml, insérer HtmlHelper à la fin de <head> section mais avant tout autre script.In _Layout.cshtml, insert HtmlHelper to the end of <head> section but before any other script. Les données de télémétrie JavaScript personnalisée, que vous souhaitez signaler à partir de la page doivent être injectée après cet extrait de code :Any custom JavaScript telemetry you want to report from the page should be injected after this snippet:

        @Html.Raw(JavaScriptSnippet.FullScript)
        </head>
    

Le .cshtml sont des noms de fichiers mentionnés ci-dessus à partir d’un modèle d’application MVC par défaut.The .cshtml file names referenced above are from a default MVC application template. Finalement, pour activer correctement l’analyse côté client pour votre application, vous devez l’extrait de code JavaScript pour être présents dans la <head> section de chaque page de votre application que vous souhaitez surveiller.Ultimately, to properly enable client-side monitoring for your application you need the JavaScript snippet to be present in the <head> section of each page of your application that you want to monitor. Pour ce modèle d’application ajoutant l’extrait de code Javascript à _Layout.cshtml exécutera efficacement cet objectif.For this application template adding the Javascript snippet to _Layout.cshtml will effectively accomplish this goal. Si votre projet n’a pas de ce fichier spécifique, vous pouvez toujours ajouter analyse côté client.If your project does not have this specific file you can still add client-side monitoring. Vous devez soit ajouterions seulement le code JavaScript dans un fichier équivalent qui contrôle le <head> de toutes les pages au sein de votre application, ou vous pouvez également vous pouvez ajouter l’extrait de code à personne plusieurs pages même si cela est difficile à gérer et n’est généralement pas recommandé.You would just need to either add the JavaScript to an equivalent file that controls the <head> of all pages within your app, or alternatively you could add the snippet to multiple individual pages though this would be difficult to maintain and is generally not recommended.

Configuration d’Application Insights SDKConfiguring Application Insights SDK

Le SDK application Insights pour ASP.NET Core peut être personnalisé pour modifier la configuration par défaut.Application Insights SDK for ASP.NET Core can be customized to alter the default configuration. Les utilisateurs de SDK Application Insights ASP.NET peuvent vous être familiers avec la configuration à l’aide ApplicationInsights.config, ou en modifiant TelemetryConfiguration.Active.Users of Application Insights ASP.NET SDK might be familiar with configuration using ApplicationInsights.config, or by modifying TelemetryConfiguration.Active. Pour ASP.NET Core, la configuration s’effectue différemment.For ASP.NET Core, configuration is done differently. Le Kit de développement ASP.NET Core est ajouté à l’application et configuré à l’aide intégrée d’ASP.NET Core l’injection de dépendances.The ASP.NET Core SDK is added to the application and configured by using ASP.NET Core's built-in dependency injection. Presque toutes les modifications de configuration sont effectuées dans le ConfigureServices() méthode de votre Startup.cs classe, sauf indication contraire.Almost all the configuration changes are done in the ConfigureServices() method of your Startup.cs class, unless stated otherwise. Suivez les sections ci-dessous pour en savoir plus.Follow the sections below to learn more.

Notes

Changement de la configuration en modifiant TelemetryConfiguration.Active n’est pas recommandé dans les applications ASP.NET Core.Changing configuration by modifying TelemetryConfiguration.Active is not recommended in ASP.NET Core applications.

Configuration à l’aide de ApplicationInsightsServiceOptionsConfiguring using ApplicationInsightsServiceOptions

Il est possible de modifier quelques paramètres communs en passant ApplicationInsightsServiceOptions à AddApplicationInsightsTelemetry.It is possible to modify a few common settings by passing ApplicationInsightsServiceOptions to AddApplicationInsightsTelemetry. comme dans l’exemple suivant :An example is shown below.

    public void ConfigureServices(IServiceCollection services)
    {
        Microsoft.ApplicationInsights.AspNetCore.Extensions.ApplicationInsightsServiceOptions aiOptions
                    = new Microsoft.ApplicationInsights.AspNetCore.Extensions.ApplicationInsightsServiceOptions();
        // Disables adaptive sampling.
        aiOptions.EnableAdaptiveSampling = false;

        // Disables QuickPulse (Live Metrics stream).
        aiOptions.EnableQuickPulseMetricStream = false;
        services.AddApplicationInsightsTelemetry(aiOptions);
    }

La liste exacte des paramètres configurables dans ApplicationInsightsServiceOptions trouverez ici.The exact list of configurable settings in ApplicationInsightsServiceOptions can be found here.

échantillonnageSampling

Le SDK application Insights pour ASP.NET Core prend en charge FixedRate et l’échantillonnage adaptatif.Application Insights SDK for ASP.NET Core supports both FixedRate and Adaptive sampling. Échantillonnage adaptatif est activé par défaut.Adaptive sampling is enabled by default. Suivez notre obtenir des conseils sur l’échantillonnage ADAPTATIF, pour savoir comment configurer l’échantillonnage pour les applications ASP.NET Core.Follow our guidance on adaptive sampling, to learn how to configure sampling for ASP.NET Core applications.

Ajout de TelemetryInitializersAdding TelemetryInitializers

Initialiseurs de télémétrie sont utilisés lorsque vous souhaitez définir des propriétés globales qui sont envoyées avec toutes les données de télémétrie.Telemetry initializers are used when you want to define global properties that are sent with all telemetry.

Pour ajouter un nouveau TelemetryInitializer, ajoutez-le dans le conteneur DependencyInjection, comme indiqué ci-dessous.To add a new TelemetryInitializer, add it into the DependencyInjection Container as shown below. TelemetryInitializers ajouté au conteneur de DependencyInjection sera récupéré par le Kit de développement logiciel automatiquement.TelemetryInitializers added to DependencyInjection container will be picked up by the SDK automatically.

    public void ConfigureServices(IServiceCollection services)
    {
        services.AddSingleton<ITelemetryInitializer, MyCustomTelemetryInitializer>();
    }

Suppression de TelemetryInitializersRemoving TelemetryInitializers

Pour supprimer tous les ou TelemetryInitializers spécifiques, qui sont à présents par défaut, utilisez l’exemple de code suivant après appelant AddApplicationInsightsTelemetry().To remove all or specific TelemetryInitializers, which are present by default, use the following sample code after calling AddApplicationInsightsTelemetry().

    public void ConfigureServices(IServiceCollection services)
    {
        services.AddApplicationInsightsTelemetry();

        // Remove a specific built-in TelemetryInitializer
        var tiToRemove = services.FirstOrDefault<ServiceDescriptor>
                         (t => t.ImplementationType == typeof(AspNetCoreEnvironmentTelemetryInitializer));
        if (tiToRemove != null)
        {
            services.Remove(tiToRemove);
        }

        // Remove all initializers
        // This requires importing namespace using Microsoft.Extensions.DependencyInjection.Extensions;
        services.RemoveAll(typeof(ITelemetryInitializer));
    }

TelemetryProcessors AjoutAdding TelemetryProcessors

Processeurs de télémétrie personnalisées peuvent être ajoutées à la TelemetryConfiguration à l’aide de la méthode d’extension AddApplicationInsightsTelemetryProcessor sur IServiceCollection.Custom telemetry processors can be added to the TelemetryConfiguration by using the extension method AddApplicationInsightsTelemetryProcessor on IServiceCollection. Processeurs de télémétrie sont utilisés dans scénarios de filtrage avancé pour permettre un contrôle plus direct sur ce qui est inclus ou exclu de la télémétrie que vous envoyez au service Application Insights.Telemetry processors are used in advanced filtering scenarios to allow for more direct control over what is included or excluded from the telemetry you send to the Application Insights service. Utilisez l’exemple suivant.Use the following example.

    public void ConfigureServices(IServiceCollection services)
    {
        // ...
        services.AddApplicationInsightsTelemetry();
        services.AddApplicationInsightsTelemetryProcessor<MyFirstCustomTelemetryProcessor>();

        // If you have more processors:
        services.AddApplicationInsightsTelemetryProcessor<MySecondCustomTelemetryProcessor>();
    }

Configuration ou la suppression par défaut TelemetryModulesConfiguring or removing default TelemetryModules

Application Insights utilise des modules de télémétrie de -la collecte automatique des informations utiles sur les charges de travail spécifiques sans nécessiter de configuration supplémentaire.Application Insights uses telemetry modules as a way of auto-collecting useful information about specific workloads without requiring additional config.

Les modules de collection automatique suivants sont activés par défaut et utilisez chargées de collecter automatiquement les données de télémétrie.The following auto collection modules are enabled by default, and are responsible for automatically collecting telemetry. Ils peuvent être désactivés et configurés pour modifier le comportement par défaut.They can be disabled and configured to alter default behavior.

  • RequestTrackingTelemetryModule
  • DependencyTrackingTelemetryModule
  • PerformanceCollectorModule
  • QuickPulseTelemetryModule
  • AppServicesHeartbeatTelemetryModule
  • AzureInstanceMetadataTelemetryModule

Pour configurer tout défaut TelemetryModule, utilisez la méthode d’extension ConfigureTelemetryModule<T> sur IServiceCollection comme indiqué dans l’exemple ci-dessous.To configure any default TelemetryModule, use the extension method ConfigureTelemetryModule<T> on IServiceCollection as shown in the example below.

using Microsoft.ApplicationInsights.DependencyCollector;
using Microsoft.ApplicationInsights.Extensibility.PerfCounterCollector;

    public void ConfigureServices(IServiceCollection services)
    {
        services.AddApplicationInsightsTelemetry();

        // The following configures DependencyTrackingTelemetryModule.
        // Similarly, any other default modules can be configured.
        services.ConfigureTelemetryModule<DependencyTrackingTelemetryModule>((module, o) =>
                        {
                            module.EnableW3CHeadersInjection = true;
                        });

        // The following removes PerformanceCollectorModule to disable perf-counter collection.
        // Similarly, any other default modules can be removed.
        var performanceCounterService = services.FirstOrDefault<ServiceDescriptor>(t => t.ImplementationType == typeof(PerformanceCollectorModule));
        if (performanceCounterService != null)
        {
         services.Remove(performanceCounterService);
        }
    }

Configuration du canal de télémétrieConfiguring Telemetry Channel

Le canal par défaut utilisé est le ServerTelemetryChannel.The default channel used is the ServerTelemetryChannel. Il peut être remplacé par l’exemple suivant ci-dessous.It can be overridden by following example below.

using Microsoft.ApplicationInsights.Channel;

    public void ConfigureServices(IServiceCollection services)
    {
        // use the following to replace the default channel with InMemoryChannel.
        // this can also be applied to ServerTelemetryChannel as well.
        services.AddSingleton(typeof(ITelemetryChannel), new InMemoryChannel() {MaxTelemetryBufferCapacity = 19898 });

        services.AddApplicationInsightsTelemetry();
    }

Questions fréquentes (FAQ)Frequently asked questions

Je veux effectuer le suivi des données de télémétrie supplémentaires autres que les données de télémétrie automatiquement collecté.I want to track additional telemetry other than the auto collected telemetry. Comment procéder ?How do I do it?

Pour obtenir une instance de TelemetryClient à l’aide de l’injection de constructeur et appeler requis TrackXXX() méthode dessus.Obtain an instance of TelemetryClient by using Constructor injection, and call the required TrackXXX() method on it. Il n’est pas recommandé pour créer de nouveaux TelemetryClient instances dans une application ASP.NET Core, comme une instance singleton de TelemetryClient est déjà inscrit dans le conteneur d’injection de dépendance qui partage TelemetryConfiguration avec le reste de la télémétrie.It is not recommended to create new TelemetryClient instances in ASP.NET Core application, as a singleton instance of TelemetryClient is already registered in the DI container, which shares TelemetryConfiguration with rest of the telemetry. Création d’un nouveau TelemetryClient instance est recommandée uniquement si elle doit avoir une configuration distincte du reste des données de télémétrie.Creating a new TelemetryClient instance is recommended only if it has to have a separate config from the rest of the telemetry. L’exemple suivant montre comment effectuer le suivi des données de télémétrie supplémentaires à partir d’un contrôleur.The following example shows how to track additional telemetry from a controller.

using Microsoft.ApplicationInsights;

public class HomeController : Controller
{
    private TelemetryClient telemetry;

    // use constructor injection to get TelemetryClient instance
    public HomeController(TelemetryClient telemetry)
    {
        this.telemetry = telemetry;
    }

    public IActionResult Index()
    {
        // call required TrackXXX method.
        this.telemetry.TrackEvent("HomePageRequested");
        return View();
    }

Reportez-vous à mesures personnalisées Application Insights référence de l’API pour obtenir une description des données personnalisées, création de rapports dans Application Insights.Refer to Application Insights custom metrics API reference for a description of custom data reporting in Application Insights.

Certains modèles Visual Studio permet de méthode d’extension UseApplicationInsights() sur IWebHostBuilder pour activer Application Insights.Some Visual Studio templates used UseApplicationInsights() extension method on IWebHostBuilder to enable Application Insights. Cette utilisation est toujours valide ?Is this usage still valid?

L’activation d’Application Insights avec cette méthode est valide et est utilisé dans l’intégration de Visual Studio et dans les extensions d’application Web Azure également.Enabling Application Insights with this method is valid, and is used in Visual Studio on-boarding, and in the Azure Web App extensions as well. Toutefois, il est recommandé d’utiliser services.AddApplicationInsightsTelemetry() car elle fournit des surcharges pour contrôler une configuration.However, it is recommended to use services.AddApplicationInsightsTelemetry() as it provides overloads to control some configuration. Les deux méthodes en interne la même chose, c’est le cas s’il n’existe aucune configuration personnalisée à appliquer, l’appel soit convient.Both methods internally do the same thing, so if there is no custom configuration to be applied, calling either is fine.

Je déploie mon application ASP.NET Core sur Azure Web Apps.I am deploying my ASP.NET Core application to Azure Web Apps. Dois-je toujours activer l’extension Application Insights à partir d’applications Web ?Should I still enable the Application Insights extension from Web Apps?

Si le SDK est installé au moment de la génération, comme indiqué dans cet article, il n’est pas nécessaire pour activer l’extension Application Insights à partir du portail App Service.If the SDK is installed at build time as shown in this article, there is no need to enable the Application Insights extension from the App Service portal. Même si l’extension est installée, il enregistrera désactivé quand il détecte que le Kit de développement logiciel est déjà ajouté à l’application.Even if the extension is installed, it will back off when it detects that the SDK is already added to the application. Activer Application Insights à partir de l’extension vous évite l’installation et la mise à jour le Kit de développement.Enabling Application Insights from the extension frees you from installing and updating the SDK. Toutefois, l’activation d’Application Insights conformément à cet article est plus flexible pour des raisons ci-dessous.However, enabling Application Insights as per this article is more flexible for reasons below.

  • Données de télémétrie application Insights continueront à fonctionner :Application Insights Telemetry will continue to work in:
    • Tous les systèmes d’exploitation : Windows, Linux, MacAll Operating Systems - Windows, Linux, Mac.
    • Tous les modes - de publication autonome ou dépendant du Framework.All publish modes - Self-Contained or Framework-Dependent.
    • Tous les frameworks cibles, y compris le .NET Framework complet.All target frameworks, including the full .NET Framework.
    • Toutes les options d’hébergement - application Web Azure, machines virtuelles, Linux, conteneurs, AKS, non Azure.All Hosting options - Azure Web APP, VMs, Linux, Containers, AKS, non-Azure.
  • Données de télémétrie sont consultables localement, lors du débogage à partir de Visual Studio.Telemetry can be seen locally, when debugging from Visual Studio.
  • Permet à l’aide des données de télémétrie personnalisées supplémentaires suivi TrackXXX() API.Allows tracking additional custom telemetry using TrackXXX() API.
  • Vous avez un contrôle total sur la configuration.You have full control over the configuration.

Puis-je activer la surveillance d’Application Insights à l’aide des outils tels que Status Monitor ?Can I enable Application Insights monitoring using tools like Status Monitor?

Non.No. Moniteur d’état et son remplacement à venir Status Monitor v2 prend actuellement en charge ASP.NET 4.x uniquement.Status Monitor and its upcoming replacement Status Monitor v2 currently supports ASP.NET 4.x only.

J’ai une Application ASP.NET Core 2.0.I have an ASP.NET Core 2.0 Application. Application Insights n’est pas automatiquement activé sans mon intervention ?Isn't Application Insights automatically enabled without me doing anything?

Microsoft.AspNetCore.All métapackage 2.0 SDK Application Insights (version 2.1.0), et si vous exécutez l’application sous le débogueur Visual Studio, Visual Studio permet à Application Insights affiche la télémétrie localement dans l’IDE lui-même.Microsoft.AspNetCore.All 2.0 metapackage included Application Insights SDK (version 2.1.0), and if you run the application under Visual Studio debugger, Visual Studio enables Application Insights and shows telemetry locally in the IDE itself. Données de télémétrie n’a pas été envoyée au service Application Insights, sauf si une clé d’instrumentation est spécifiée explicitement.Telemetry was not sent to the Application Insights service, unless an instrumentation key is explicitly specified. Nous vous recommandons de suivre les instructions de cet article pour activer Application Insights, même pour 2.0 applications.We recommend following the instructions in this article to enable Application Insights, even for 2.0 apps.

J’ai exécuté mon application dans Linux.I run my application in Linux. Sont toutes les fonctionnalités prises en charge dans Linux ainsi ?Are all features supported in Linux as well?

  • Oui.Yes. Prise en charge de fonctionnalités pour le Kit de développement est identique dans toutes les plateformes, avec les exceptions suivantes :Feature support for the SDK is same in all platforms, with the following exceptions:

    • Compteurs de performances ne sont pas encore pris en charge dans Windows-Non.Performance Counters are not yet supported in Non-Windows.
    • Même si ServerTelemetryChannel est activé par défaut, si l’application est en cours d’exécution dans Linux ou MacOS, le canal ne crée pas automatiquement un dossier de stockage local pour conserver temporairement des données de télémétrie s’il existe des problèmes de réseau.Even though ServerTelemetryChannel is enabled by default, if the application is running in Linux or MacOS, the channel does not automatically create a local storage folder to keep telemetry temporarily if there are network issues. Cette limitation provoque la télémétrie être perdues si les problèmes de serveur ou de réseau temporaires.This limitation causes telemetry to be lost if there are temporary network or server issues. La solution de contournement pour ce problème est l’utilisateur peut configurer un dossier local pour le canal, comme indiqué ci-dessous.The workaround for this issue is for the user to configure a local folder for the channel, as shown below.
using Microsoft.ApplicationInsights.Channel;
using Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel;

    public void ConfigureServices(IServiceCollection services)
    {
        // The following will configure channel to use the given folder to temporarily
        // store telemetry items during network or application insights server issues.
        // User should ensure that the given folder already exists,
        // and that application has read/write permissions.
        services.AddSingleton(typeof(ITelemetryChannel),
                                new ServerTelemetryChannel () {StorageFolder = "/tmp/myfolder"});
        services.AddApplicationInsightsTelemetry();
    }

Kit de développement logiciel (SDK) open sourceOpen-source SDK

Lisez et contribuez au code.Read and contribute to the code.

VidéoVideo

Étapes suivantesNext steps