Configuration du kit de développement logiciel (SDK) Application Insights à l’aide du fichier ApplicationInsights.config ou .xmlConfiguring the Application Insights SDK with ApplicationInsights.config or .xml

Le kit de développement logiciel (SDK) .NET Application Insights se compose d’un certain nombre de packages NuGet.The Application Insights .NET SDK consists of a number of NuGet packages. Le package principal fournit l'API pour l'envoi des données télémétriques à Application Insights.The core package provides the API for sending telemetry to the Application Insights. Des packages supplémentaires fournissent les modules et les initialiseurs de télémétrie pour le suivi télémétrique automatique de votre application et de son contexte.Additional packages provide telemetry modules and initializers for automatically tracking telemetry from your application and its context. La modification du fichier config permet d’activer ou de désactiver les modules et initialiseurs de télémétrie, et de définir les paramètres pour certains d’entre eux.By adjusting the configuration file, you can enable or disable Telemetry Modules and initializers, and set parameters for some of them.

Le fichier de configuration est nommé ApplicationInsights.config ou ApplicationInsights.xml, selon le type de votre application.The configuration file is named ApplicationInsights.config or ApplicationInsights.xml, depending on the type of your application. Il est automatiquement ajouté à votre projet lorsque vous installez la plupart des versions du kit de développement logiciel (SDK).It is automatically added to your project when you install most versions of the SDK. Par défaut, quand vous utilisez l’expérience automatisée des projets de modèle Visual Studio qui prennent en charge Ajouter > Application Insights Telemetry, le fichier ApplicationInsights.config est créé dans le dossier racine du projet et, quand il est compilé, il est copié dans le dossier Bin.By default, when using the automated experience from the Visual Studio template projects that support Add > Application Insights Telemetry, the ApplicationInsights.config file is created in the project root folder and when complied is copied to the bin folder. Il est également ajouté à une application web par Status Monitor sur un serveur IIS.It is also added to a web app by Status Monitor on an IIS server. Le fichier de configuration est ignoré si l'extension pour le site web Azure ou l'extension pour la machine virtuelle Azure et le groupe de machines virtuelles identiques est utilisée.The configuration file is ignored if extension for Azure website or extension for Azure VM and virtual machine scale set is used.

Il n’existe aucun fichier équivalent permettant de contrôler le kit de développement logiciel (SDK) dans une page web.There isn't an equivalent file to control the SDK in a web page.

Ce document décrit les sections du fichier de configuration, la façon dont ils contrôlent les composants du Kit de développement logiciel (SDK) et les packages NuGet qui chargent ces composants.This document describes the sections you see in the configuration file, how they control the components of the SDK, and which NuGet packages load those components.

Notes

Les instructions ApplicationInsights.config et ApplicationInsights.xml ne s’appliquent pas au kit SDK .NET Core.ApplicationInsights.config and .xml instructions do not apply to the .NET Core SDK. Pour configurer les applications .NET Core, suivez ce guide.For configuring .NET Core applications, follow this guide.

Modules de télémétrie (ASP.NET)Telemetry Modules (ASP.NET)

Chaque module de télémétrie collecte un type de données précis et utilise l’API de base pour envoyer les données.Each Telemetry Module collects a specific type of data and uses the core API to send the data. Les modules sont installés par différents packages NuGet, qui ajoutent également les lignes requises dans le fichier .config.The modules are installed by different NuGet packages, which also add the required lines to the .config file.

Il existe un nœud dans le fichier de configuration pour chaque module.There's a node in the configuration file for each module. Pour désactiver un module, supprimez le nœud ou commentez-le.To disable a module, delete the node or comment it out.

Suivi des dépendancesDependency Tracking

Dependency tracking collecte la télémétrie des appels de votre application aux bases de données et aux services et bases de données externes.Dependency tracking collects telemetry about calls your app makes to databases and external services and databases. Pour permettre à ce module de fonctionner dans un serveur IIS, vous devez installer Status Monitor.To allow this module to work in an IIS server, you need to install Status Monitor.

Vous pouvez également écrire votre propre code de suivi des dépendances à l'aide de l’ API TrackDependency.You can also write your own dependency tracking code using the TrackDependency API.

Les dépendances peuvent être collectées automatiquement, sans modification de votre code, à l’aide de la jonction (sans code) basée sur l'agent.Dependencies can be auto-collected without modifying your code by using agent-based (codeless) attach. Pour l’utiliser dans des applications web Azure, activez l’extension Application Insights.To use it in Azure web apps, enable the Application Insights extension. Pour l’utiliser dans une machine virtuelle Azure ou un groupe de machines virtuelles identiques Azure, activez l’extension Surveillance des applications pour machine virtuelle et groupe de machines virtuelles identiques.To use it in Azure VM or Azure virtual machine scale set enable the Application Monitoring extension for VM and virtual machine scale set.

Collecteur de performancesPerformance collector

Collecte les compteurs de performances système, notamment l’UC, la mémoire et la charge réseau, à partir des installations IIS.Collects system performance counters such as CPU, memory, and network load from IIS installations. Vous pouvez spécifier les compteurs à collecter, y compris les compteurs de performances que vous avez configurés vous-même.You can specify which counters to collect, including performance counters you have set up yourself.

Télémétrie des diagnostics Application InsightsApplication Insights Diagnostics Telemetry

Le DiagnosticsTelemetryModule répertorie les erreurs dans le code d'instrumentation Application Insights lui-même.The DiagnosticsTelemetryModule reports errors in the Application Insights instrumentation code itself. Par exemple, si le code ne peut pas accéder aux compteurs de performances ou si un ITelemetryInitializer renvoie une exception.For example, if the code cannot access performance counters or if an ITelemetryInitializer throws an exception. La télémétrie de trace suivie par ce module s’affiche dans Recherche de diagnostic.Trace telemetry tracked by this module appears in the Diagnostic Search.

* `Microsoft.ApplicationInsights.Extensibility.Implementation.Tracing.DiagnosticsTelemetryModule`
* [Microsoft.ApplicationInsights](https://www.nuget.org/packages/Microsoft.ApplicationInsights) NuGet package. If you only install this package, the ApplicationInsights.config file is not automatically created.

Mode développeurDeveloper Mode

DeveloperModeWithDebuggerAttachedTelemetryModule force Application Insights TelemetryChannel à envoyer des données immédiatement, un élément de télémétrie à la fois, lorsqu’un débogueur est associé au processus d'application.DeveloperModeWithDebuggerAttachedTelemetryModule forces the Application Insights TelemetryChannel to send data immediately, one telemetry item at a time, when a debugger is attached to the application process. Cela réduit le délai entre le moment où votre application effectue le suivi de télémétrie et celui où les données apparaissent sur le portail Application Insights.This reduces the amount of time between the moment when your application tracks telemetry and when it appears on the Application Insights portal. Cela cause une surcharge importante au niveau de l'UC et de la bande passante réseau.It causes significant overhead in CPU and network bandwidth.

Suivi des requêtes webWeb Request Tracking

Indique le temps de réponse et le code résultant des requêtes HTTP.Reports the response time and result code of HTTP requests.

Suivi des exceptionsException tracking

ExceptionTrackingTelemetryModule comptabilise le nombre d’exceptions non traitées dans votre application web.ExceptionTrackingTelemetryModule tracks unhandled exceptions in your web app. Consultez Échecs et exceptions.See Failures and exceptions.

Suivi EventSourceEventSource Tracking

EventSourceTelemetryModule vous permet de configurer les événements EventSource à envoyer à Application Insights en tant que traces.EventSourceTelemetryModule allows you to configure EventSource events to be sent to Application Insights as traces. Pour plus d’informations sur le suivi des événements EventSource, consultez Utilisation d’événements EventSource.For information on tracking EventSource events, see Using EventSource Events.

Suivi des événements ETWETW Event Tracking

EtwCollectorTelemetryModule vous permet de configurer les événements provenant des fournisseurs ETW à envoyer à Application Insights en tant que traces.EtwCollectorTelemetryModule allows you to configure events from ETW providers to be sent to Application Insights as traces. Pour plus d’informations sur le suivi des événements ETW, consultez Utilisation d’événements ETW.For information on tracking ETW events, see Using ETW Events.

Microsoft.ApplicationInsightsMicrosoft.ApplicationInsights

Le package Microsoft.ApplicationInsights fournit l’API de base du Kit de développement logiciel (SDK).The Microsoft.ApplicationInsights package provides the core API of the SDK. Les autres modules de télémétrie l’utilisent. Vous pouvez également l’utiliser pour définir votre propre télémétrie.The other Telemetry Modules use this, and you can also use it to define your own telemetry.

  • Aucune entrée dans ApplicationInsights.config.No entry in ApplicationInsights.config.
  • Microsoft.ApplicationInsights .Microsoft.ApplicationInsights NuGet package. Si vous installez simplement ce package NuGet, aucun fichier .config n'est créé.If you just install this NuGet, no .config file is generated.

Canal de télémétrieTelemetry Channel

Le canal de télémétrie gère la mise en mémoire tampon et la transmission de la télémétrie au service Application Insights.The telemetry channel manages buffering and transmission of telemetry to the Application Insights service.

  • Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.ServerTelemetryChannel est le canal par défaut des applications web.Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.ServerTelemetryChannel is the default channel for web applications. Il met les données en mémoire tampon, et emploie des mécanismes de nouvelle tentative et de stockage de disque local pour fournir des données de télémétrie plus fiables.It buffers data in memory, and employs retry mechanisms and local disk storage for more reliable telemetry delivery.
  • Microsoft.ApplicationInsights.InMemoryChannel est un canal de télémétrie léger, qui est utilisé si aucun autre canal n’est configuré.Microsoft.ApplicationInsights.InMemoryChannel is a lightweight telemetry channel, which is used if no other channel is configured.

Initialiseurs de télémétrie (ASP.NET)Telemetry Initializers (ASP.NET)

Les initialiseurs de télémétrie définissent les propriétés de contexte envoyées avec chaque élément de télémétrie.Telemetry Initializers set context properties that are sent along with every item of telemetry.

Vous pouvez écrire vos propres initialiseurs pour définir les propriétés de contexte.You can write your own initializers to set context properties.

Les initialiseurs standard sont tous définis par les packages NuGet web ou WindowsServer :The standard initializers are all set either by the Web or WindowsServer NuGet packages:

  • AccountIdTelemetryInitializer définit la propriété AccountId.AccountIdTelemetryInitializer sets the AccountId property.

  • AuthenticatedUserIdTelemetryInitializer définit la propriété AuthenticatedUserId déterminée par le Kit de développement logiciel (SDK) JavaScript.AuthenticatedUserIdTelemetryInitializer sets the AuthenticatedUserId property as set by the JavaScript SDK.

  • AzureRoleEnvironmentTelemetryInitializer met à jour les propriétés RoleName et RoleInstance du contexte Device pour tous les éléments de télémétrie avec des informations extraites de l'environnement d’exécution Azure.AzureRoleEnvironmentTelemetryInitializer updates the RoleName and RoleInstance properties of the Device context for all telemetry items with information extracted from the Azure runtime environment.

  • BuildInfoConfigComponentVersionTelemetryInitializer met à jour la propriété Version du contexte Component pour tous les éléments de télémétrie avec la valeur extraite du fichier BuildInfo.config produit par MSBuild.BuildInfoConfigComponentVersionTelemetryInitializer updates the Version property of the Component context for all telemetry items with the value extracted from the BuildInfo.config file produced by MS Build.

  • ClientIpHeaderTelemetryInitializer met à jour la propriété Ip du contexte Location de tous les éléments de télémétrie à partir de l’en-tête HTTP X-Forwarded-For de la demande.ClientIpHeaderTelemetryInitializer updates Ip property of the Location context of all telemetry items based on the X-Forwarded-For HTTP header of the request.

  • DeviceTelemetryInitializer met à jour les propriétés suivantes du contexte Device pour tous les éléments de télémétrie.DeviceTelemetryInitializer updates the following properties of the Device context for all telemetry items.

    • Type est défini sur « PC »Type is set to "PC"
    • Id est défini sur le nom de domaine de l'ordinateur sur lequel l'application web est exécutée.Id is set to the domain name of the computer where the web application is running.
    • OemName est défini sur la valeur extraite du champ Win32_ComputerSystem.Manufacturer à l'aide de WMI.OemName is set to the value extracted from the Win32_ComputerSystem.Manufacturer field using WMI.
    • Model est défini sur la valeur extraite du champ Win32_ComputerSystem.Model à l'aide de WMI.Model is set to the value extracted from the Win32_ComputerSystem.Model field using WMI.
    • NetworkType est défini sur la valeur extraite de l’NetworkInterface.NetworkType is set to the value extracted from the NetworkInterface.
    • Language est défini sur le nom de CurrentCulture.Language is set to the name of the CurrentCulture.
  • DomainNameRoleInstanceTelemetryInitializer met à jour la propriété RoleInstance du contexte Device pour tous les éléments de télémétrie avec le nom de domaine de l'ordinateur sur lequel l'application web est exécutée.DomainNameRoleInstanceTelemetryInitializer updates the RoleInstance property of the Device context for all telemetry items with the domain name of the computer where the web application is running.

  • OperationNameTelemetryInitializer met à jour la propriété Name de RequestTelemetry et la propriété Name du contexte Operation de tous les éléments de télémétrie à partir de la méthode HTTP, ainsi que les noms du contrôleur ASP.NET MVC et de l’action appelée pour traiter la demande.OperationNameTelemetryInitializer updates the Name property of the RequestTelemetry and the Name property of the Operation context of all telemetry items based on the HTTP method, as well as names of ASP.NET MVC controller and action invoked to process the request.

  • OperationIdTelemetryInitializer ou OperationCorrelationTelemetryInitializer met à jour la propriété de contexte Operation.Id de tous les éléments de télémétrie suivis lors du traitement d'une demande avec le RequestTelemetry.Id généré automatiquement.OperationIdTelemetryInitializer or OperationCorrelationTelemetryInitializer updates the Operation.Id context property of all telemetry items tracked while handling a request with the automatically generated RequestTelemetry.Id.

  • SessionTelemetryInitializer met à jour la propriété Id du contexte Session pour tous les éléments de télémétrie avec la valeur extraite du cookie ai_session généré par le code d’instrumentation JavaScript Application Insights en cours d'exécution dans le navigateur de l'utilisateur.SessionTelemetryInitializer updates the Id property of the Session context for all telemetry items with value extracted from the ai_session cookie generated by the ApplicationInsights JavaScript instrumentation code running in the user's browser.

  • SyntheticTelemetryInitializer ou SyntheticUserAgentTelemetryInitializer met à jour les propriétés de contexte User, Session et Operation de tous les éléments de télémétrie suivis lors du traitement d'une requête émanant d'une source synthétique, comme un test de disponibilité ou un robot de moteur de recherche.SyntheticTelemetryInitializer or SyntheticUserAgentTelemetryInitializer updates the User, Session, and Operation contexts properties of all telemetry items tracked when handling a request from a synthetic source, such as an availability test or search engine bot. Par défaut, Metrics Explorer n'affiche pas la télémétrie synthétique.By default, Metrics Explorer does not display synthetic telemetry.

    Ensemble de <Filters> qui identifie les propriétés des requêtes.The <Filters> set identifying properties of the requests.

  • UserTelemetryInitializer met à jour les propriétés Id et AcquisitionDate du contexte User pour tous les éléments de télémétrie avec les valeurs extraites du cookie ai_user généré par le code d’instrumentation JavaScript Application Insights en cours d'exécution dans le navigateur de l'utilisateur.UserTelemetryInitializer updates the Id and AcquisitionDate properties of User context for all telemetry items with values extracted from the ai_user cookie generated by the Application Insights JavaScript instrumentation code running in the user's browser.

  • WebTestTelemetryInitializer définit l’ID utilisateur, l’ID de session et les propriétés de la source de synthèse pour des requêtes HTTP provenant des tests de disponibilité.WebTestTelemetryInitializer sets the user ID, session ID, and synthetic source properties for HTTP requests that come from availability tests. Ensemble de <Filters> qui identifie les propriétés des requêtes.The <Filters> set identifying properties of the requests.

Pour les applications .NET en cours d’exécution dans Service Fabric, vous pouvez inclure le package NuGet Microsoft.ApplicationInsights.ServiceFabric.For .NET applications running in Service Fabric, you can include the Microsoft.ApplicationInsights.ServiceFabric NuGet package. Ce package comprend un FabricTelemetryInitializer, qui ajoute des propriétés Service Fabric pour les éléments de télémétrie.This package includes a FabricTelemetryInitializer, which adds Service Fabric properties to telemetry items. Pour plus d’informations, consultez la page GitHub sur les propriétés ajoutées par ce package NuGet.For more information, see the GitHub page about the properties added by this NuGet package.

Processeurs de télémétrie (ASP.NET)Telemetry Processors (ASP.NET)

Les processeurs de télémétrie peuvent filtrer et modifier chaque élément de télémétrie avant son envoi au portail à partir du Kit de développement logiciel (SDK).Telemetry Processors can filter and modify each telemetry item just before it is sent from the SDK to the portal.

Vous pouvez écrire vos propres processeurs de télémétrie.You can write your own Telemetry Processors.

Processeur de télémétrie d’échantillonnage adaptatif (à partir de 2.0.0-beta3)Adaptive sampling Telemetry Processor (from 2.0.0-beta3)

Cette option est activée par défaut.This is enabled by default. Si votre application envoie beaucoup de télémétrie, ce processeur en supprime une partie.If your app sends a lot of telemetry, this processor removes some of it.


    <TelemetryProcessors>
      <Add Type="Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.AdaptiveSamplingTelemetryProcessor, Microsoft.AI.ServerTelemetryChannel">
        <MaxTelemetryItemsPerSecond>5</MaxTelemetryItemsPerSecond>
      </Add>
    </TelemetryProcessors>

Le paramètre fournit la cible que l'algorithme essaie d'atteindre.The parameter provides the target that the algorithm tries to achieve. Chaque instance du Kit de développement logiciel (SDK) fonctionne de manière indépendante. Ainsi, si votre serveur est un cluster de plusieurs ordinateurs, le volume réel des données de télémétrie sera multiplié en conséquence.Each instance of the SDK works independently, so if your server is a cluster of several machines, the actual volume of telemetry will be multiplied accordingly.

En savoir plus sur l'échantillonnage.Learn more about sampling.

Processeur de télémétrie d’échantillonnage à taux fixe (à partir de 2.0.0-beta1)Fixed-rate sampling Telemetry Processor (from 2.0.0-beta1)

Il existe également un processeur de télémétrie d’échantillonnage standard (à partir de 2.0.1) :There is also a standard sampling Telemetry Processor (from 2.0.1):


    <TelemetryProcessors>
     <Add Type="Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.SamplingTelemetryProcessor, Microsoft.AI.ServerTelemetryChannel">

     <!-- Set a percentage close to 100/N where N is an integer. -->
     <!-- E.g. 50 (=100/2), 33.33 (=100/3), 25 (=100/4), 20, 1 (=100/100), 0.1 (=100/1000) -->
     <SamplingPercentage>10</SamplingPercentage>
     </Add>
   </TelemetryProcessors>

Paramètres de canal (Java)Channel parameters (Java)

Ces paramètres ont un effet sur la manière dont le kit de développement logiciel (SDK) doit stocker et vider les données de télémétrie qu’il collecte.These parameters affect how the Java SDK should store and flush the telemetry data that it collects.

MaxTelemetryBufferCapacityMaxTelemetryBufferCapacity

Nombre d’éléments de télémétrie qui peuvent être stockés dans la mémoire du kit de développement logiciel (SDK).The number of telemetry items that can be stored in the SDK's in-memory storage. Une fois ce nombre atteint, la mémoire tampon de télémétrie est vidée : les éléments de télémétrie sont envoyés au serveur Application Insights.When this number is reached, the telemetry buffer is flushed - that is, the telemetry items are sent to the Application Insights server.

  • Min : 1Min: 1
  • Max : 1 000Max: 1000
  • Valeur par défaut : 500Default: 500

  <ApplicationInsights>
      ...
      <Channel>
       <MaxTelemetryBufferCapacity>100</MaxTelemetryBufferCapacity>
      </Channel>
      ...
  </ApplicationInsights>

FlushIntervalInSecondsFlushIntervalInSeconds

Détermine la fréquence à laquelle les données stockées en mémoire doivent être vidées (envoyées à Application Insights).Determines how often the data that is stored in the in-memory storage should be flushed (sent to Application Insights).

  • Min : 1Min: 1
  • Max : 300Max: 300
  • Valeur par défaut : 5Default: 5

    <ApplicationInsights>
      ...
      <Channel>
        <FlushIntervalInSeconds>100</FlushIntervalInSeconds>
      </Channel>
      ...
    </ApplicationInsights>

MaxTransmissionStorageCapacityInMBMaxTransmissionStorageCapacityInMB

Détermine la taille maximale en Mo allouée au stockage persistant sur le disque local.Determines the maximum size in MB that is allotted to the persistent storage on the local disk. Ce stockage est utilisé pour les éléments de télémétrie persistants qui n’ont pas pu être transmis au point de terminaison Application Insights.This storage is used for persisting telemetry items that failed to be transmitted to the Application Insights endpoint. Une fois la capacité de stockage atteinte, les nouveaux éléments de télémétrie sont ignorés.When the storage size has been met, new telemetry items will be discarded.

  • Min : 1Min: 1
  • Max : 100Max: 100
  • Valeur par défaut : 10Default: 10

   <ApplicationInsights>
      ...
      <Channel>
        <MaxTransmissionStorageCapacityInMB>50</MaxTransmissionStorageCapacityInMB>
      </Channel>
      ...
   </ApplicationInsights>

InstrumentationKeyInstrumentationKey

Ce paramètre détermine la ressource Application Insights dans laquelle vos données s’affichent.This determines the Application Insights resource in which your data appears. En général, vous créez une ressource séparée, avec une clé distincte, pour chacune de vos applications.Typically you create a separate resource, with a separate key, for each of your applications.

Si vous souhaitez définir la clé de manière dynamique, par exemple si vous souhaitez transmettre des résultats de votre application vers différentes ressources, vous pouvez omettre la clé du fichier de configuration, et la définir plutôt dans le code.If you want to set the key dynamically - for example if you want to send results from your application to different resources - you can omit the key from the configuration file, and set it in code instead.

Pour définir la clé pour toutes les instances de TelemetryClient, y compris les modules standard de télémétrie.To set the key for all instances of TelemetryClient, including standard Telemetry Modules. Définissez-la dans une méthode d’initialisation, telle que global.aspx.cs dans un service ASP.NET :Do this in an initialization method, such as global.aspx.cs in an ASP.NET service:

using Microsoft.ApplicationInsights.Extensibility;
using Microsoft.ApplicationInsights;

    protected void Application_Start()
    {
        TelemetryConfiguration configuration = TelemetryConfiguration.CreateDefault();
        configuration.InstrumentationKey = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx";
        var telemetryClient = new TelemetryClient(configuration);
   

Si vous souhaitez simplement envoyer un ensemble spécifique d’événements à une autre ressource, vous pouvez définir la clé pour un TelemetryClient spécifique :If you just want to send a specific set of events to a different resource, you can set the key for a specific TelemetryClient:


    var tc = new TelemetryClient();
    tc.Context.InstrumentationKey = "----- my key ----";
    tc.TrackEvent("myEvent");
    // ...

Pour obtenir une nouvelle clé, créez une ressource dans le portail Application Insights.To get a new key, create a new resource in the Application Insights portal.

Fournisseur ApplicationIdApplicationId Provider

Disponible à partir de la version 2.6.0Available starting in v2.6.0

L’objectif de ce fournisseur est de rechercher un ID d’application à partir d’une clé d’instrumentation.The purpose of this provider is to lookup an Application ID based on an Instrumentation Key. L’ID d’application est inclus dans RequestTelemetry et DependencyTelemetry, et utilisé pour déterminer Correlation dans le portail.The Application ID is included in RequestTelemetry and DependencyTelemetry and used to determine Correlation in the Portal.

Cette option est disponible en définissant TelemetryConfiguration.ApplicationIdProvider dans le code ou dans la configuration.This is available by setting TelemetryConfiguration.ApplicationIdProvider either in code or in config.

Interface : IApplicationIdProviderInterface: IApplicationIdProvider

public interface IApplicationIdProvider
{
    bool TryGetApplicationId(string instrumentationKey, out string applicationId);
}

Nous fournissons deux implémentations dans le kit de développement logiciel (SDK) Microsoft.ApplicationInsights : ApplicationInsightsApplicationIdProvider et DictionaryApplicationIdProvider.We provide two implementations in the Microsoft.ApplicationInsights sdk: ApplicationInsightsApplicationIdProvider and DictionaryApplicationIdProvider.

ApplicationInsightsApplicationIdProviderApplicationInsightsApplicationIdProvider

Il s’agit d’un wrapper placé autour de notre API de profil.This is a wrapper around our Profile API. Il limitera les requêtes et les résultats du cache.It will throttle requests and cache results.

Ce fournisseur est ajouté à votre fichier de configuration lorsque vous installez Microsoft.ApplicationInsights.DependencyCollector ou Microsoft.ApplicationInsights.Web.This provider is added to your config file when you install either Microsoft.ApplicationInsights.DependencyCollector or Microsoft.ApplicationInsights.Web

Cette classe possède une propriété facultative ProfileQueryEndpoint.This class has an optional property ProfileQueryEndpoint. Par défaut, elle est définie sur https://dc.services.visualstudio.com/api/profiles/{0}/appId.By default this is set to https://dc.services.visualstudio.com/api/profiles/{0}/appId. Si vous avez besoin de configurer un proxy pour cette configuration, nous vous recommandons d’utiliser le proxy sur l’adresse de base et d’inclure « /api/profiles/{0}/appId ».If you need to configure a proxy for this configuration, we recommend proxying the base address and including "/api/profiles/{0}/appId". Notez que « {0} » est remplacé, lors de l’exécution par requête, par la clé d’instrumentation.Note that '{0}' is substituted at runtime per request with the Instrumentation Key.

Exemple de configuration via ApplicationInsights.config :Example Configuration via ApplicationInsights.config:

<ApplicationInsights>
    ...
    <ApplicationIdProvider Type="Microsoft.ApplicationInsights.Extensibility.Implementation.ApplicationId.ApplicationInsightsApplicationIdProvider, Microsoft.ApplicationInsights">
        <ProfileQueryEndpoint>https://dc.services.visualstudio.com/api/profiles/{0}/appId</ProfileQueryEndpoint>
    </ApplicationIdProvider>
    ...
</ApplicationInsights>

Exemple de configuration à l’aide du code :Example Configuration via code:

TelemetryConfiguration.Active.ApplicationIdProvider = new ApplicationInsightsApplicationIdProvider();

DictionaryApplicationIdProviderDictionaryApplicationIdProvider

Il s’agit d’un fournisseur statique qui s’appuie sur votre paire configurée clé d’instrumentation/ID d’application.This is a static provider, which will rely on your configured Instrumentation Key / Application ID pairs.

Cette classe possède une propriété Defined qui est un Dictionary<string,string> des paires clé d’instrumentation/ID d’application.This class has a property Defined, which is a Dictionary<string,string> of Instrumentation Key to Application ID pairs.

Cette classe possède une propriété facultative Next qui peut servir à configurer un autre fournisseur à utiliser lorsqu’une clé d’instrumentation demandée n’existe pas dans votre configuration.This class has an optional property Next which can be used to configure another provider to use when an Instrumentation Key is requested that does not exist in your configuration.

Exemple de configuration via ApplicationInsights.config :Example Configuration via ApplicationInsights.config:

<ApplicationInsights>
    ...
    <ApplicationIdProvider Type="Microsoft.ApplicationInsights.Extensibility.Implementation.ApplicationId.DictionaryApplicationIdProvider, Microsoft.ApplicationInsights">
        <Defined>
            <Type key="InstrumentationKey_1" value="ApplicationId_1"/>
            <Type key="InstrumentationKey_2" value="ApplicationId_2"/>
        </Defined>
        <Next Type="Microsoft.ApplicationInsights.Extensibility.Implementation.ApplicationId.ApplicationInsightsApplicationIdProvider, Microsoft.ApplicationInsights" />
    </ApplicationIdProvider>
    ...
</ApplicationInsights>

Exemple de configuration à l’aide du code :Example Configuration via code:

TelemetryConfiguration.Active.ApplicationIdProvider = new DictionaryApplicationIdProvider{
 Defined = new Dictionary<string, string>
    {
        {"InstrumentationKey_1", "ApplicationId_1"},
        {"InstrumentationKey_2", "ApplicationId_2"}
    }
};

Étapes suivantesNext steps

En savoir plus sur l’API.Learn more about the API.