Configurar o SDK do Application Insights com ApplicationInsights.config ou.xmlConfiguring the Application Insights SDK with ApplicationInsights.config or .xml

O SDK .NET do Application Insights consiste em vários pacotes NuGet.The Application Insights .NET SDK consists of a number of NuGet packages. O pacote principal fornece a API para enviar telemetria ao Application Insights.The core package provides the API for sending telemetry to the Application Insights. Os pacotes adicionais fornecem módulos e inicializadores de telemetria para rastreamento automático de telemetria do seu aplicativo e respectivo contexto.Additional packages provide telemetry modules and initializers for automatically tracking telemetry from your application and its context. Ao ajustar o arquivo de configuração, você pode habilitar ou desabilitar módulos e inicializadores de telemetria e definir parâmetros para alguns deles.By adjusting the configuration file, you can enable or disable Telemetry Modules and initializers, and set parameters for some of them.

O arquivo de configuração é chamado ApplicationInsights.config ou ApplicationInsights.xml, dependendo do tipo do seu aplicativo.The configuration file is named ApplicationInsights.config or ApplicationInsights.xml, depending on the type of your application. Ele é adicionado automaticamente ao seu projeto quando você instala a maioria das versões do SDK.It is automatically added to your project when you install most versions of the SDK. Por padrão, ao usar a experiência automatizada dos projetos de modelo do Visual Studio que dão suporte à adição de > Application insights Telemetry, o arquivo de ApplicationInsights.config é criado na pasta raiz do projeto e, quando compatível, é copiado para a pasta 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. Ele também é adicionado a um aplicativo Web por status monitor em um servidor IIS.It is also added to a web app by Status Monitor on an IIS server. O arquivo de configuração será ignorado se a extensão para o site ou a extensão do Azure para a VM do Azure e o conjunto de dimensionamento de máquinas virtuais for usado.The configuration file is ignored if extension for Azure website or extension for Azure VM and virtual machine scale set is used.

Não há um arquivo equivalente para controlar o SDK em uma página da Web.There isn't an equivalent file to control the SDK in a web page.

Este documento descreve as seções que você vê no arquivo de configuração, como controlar os componentes do SDK, e quais pacotes NuGet carregar esses componentes.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.

Observação

As instruções de ApplicationInsights.config e .xml não são válidas para o SDK do .NET Core.ApplicationInsights.config and .xml instructions do not apply to the .NET Core SDK. Para configurar aplicativos .NET Core, siga este guia.For configuring .NET Core applications, follow this guide.

Módulos de telemetria (ASP.NET)Telemetry Modules (ASP.NET)

Cada módulo de telemetria coleta um tipo específico de dados e usa a API principal para enviar os dados.Each Telemetry Module collects a specific type of data and uses the core API to send the data. Os módulos são instalados por diferentes pacotes NuGet, que também adicionam as linhas necessárias para o arquivo. config.The modules are installed by different NuGet packages, which also add the required lines to the .config file.

Há um nó no arquivo de configuração para cada módulo.There's a node in the configuration file for each module. Para desabilitar um módulo, exclua o nó ou remova o comentário dele.To disable a module, delete the node or comment it out.

Acompanhamento de dependênciaDependency Tracking

Dependency tracking coleta a telemetria sobre chamadas para bancos de dados e serviços externos e torna o seu aplicativo.Dependency tracking collects telemetry about calls your app makes to databases and external services and databases. Para permitir que esse módulo funcione em um servidor IIS, é necessário instalar o Status Monitor.To allow this module to work in an IIS server, you need to install Status Monitor.

Você também pode escrever seu próprio código de rastreamento de dependência usando a API TrackDependency.You can also write your own dependency tracking code using the TrackDependency API.

As dependências podem ser coletadas automaticamente sem modificar seu código usando a anexação baseada em agente (sem código).Dependencies can be auto-collected without modifying your code by using agent-based (codeless) attach. Para usá-lo em aplicativos Web do Azure, habilite a extensão Application insights.To use it in Azure web apps, enable the Application Insights extension. Para usá-lo na VM do Azure ou no conjunto de dimensionamento de máquinas virtuais do Azure, habilite a extensão de monitoramento de aplicativo para VM e conjunto de dimensionamento de máquinasTo use it in Azure VM or Azure virtual machine scale set enable the Application Monitoring extension for VM and virtual machine scale set.

Coletor de desempenhoPerformance collector

Coleta contadores de desempenho do sistema como CPU, memória e carregamento de rede de instalações do IIS.Collects system performance counters such as CPU, memory, and network load from IIS installations. Você pode especificar quais contadores coletar, incluindo contadores de desempenho que você configurou por si mesmo.You can specify which counters to collect, including performance counters you have set up yourself.

Telemetria de diagnóstico do Application InsightsApplication Insights Diagnostics Telemetry

Os erros de DiagnosticsTelemetryModule relatórios na instrumentação do Application Insights se codificam sozinhos.The DiagnosticsTelemetryModule reports errors in the Application Insights instrumentation code itself. Por exemplo, se o código não puder acessar contadores de desempenho ou se um ITelemetryInitializer lançar uma exceção.For example, if the code cannot access performance counters or if an ITelemetryInitializer throws an exception. A telemetria de rastreamento rastreada por esse módulo aparece na Pesquisa de Diagnóstico.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.

Modo de DesenvolvedorDeveloper Mode

DeveloperModeWithDebuggerAttachedTelemetryModule força TelemetryChannel do Application Insights a enviar dados imediatamente, um item de telemetria por vez, quando um depurador é conectado ao processo de aplicativo.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. Isso reduz a quantidade de tempo entre o momento em que seu aplicativo rastreia a telemetria e quando ele aparece no portal do 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. Faz com uma sobrecarga significativa na largura de banda de CPU e rede.It causes significant overhead in CPU and network bandwidth.

Acompanhamento de solicitação da WebWeb Request Tracking

Relatórios do código de tempo e o resultado da resposta de solicitações HTTP.Reports the response time and result code of HTTP requests.

Acompanhamento de exceçõesException tracking

ExceptionTrackingTelemetryModule rastreia exceção sem tratamento no seu aplicativo Web.ExceptionTrackingTelemetryModule tracks unhandled exceptions in your web app. Consulte Falhas e exceções.See Failures and exceptions.

  • Microsoft.ApplicationInsights.Web.ExceptionTrackingTelemetryModule
  • Microsoft.ApplicationInsights.Web .Microsoft.ApplicationInsights.Web NuGet package
  • Microsoft.ApplicationInsights.WindowsServer.UnobservedExceptionTelemetryModule -rastreia exceções de tarefas não observadasMicrosoft.ApplicationInsights.WindowsServer.UnobservedExceptionTelemetryModule - tracks unobserved task exceptions
  • Microsoft.ApplicationInsights.WindowsServer.UnhandledExceptionTelemetryModule -rastreia as exceções sem tratamento para funções de trabalho, serviços do Windows e aplicativos de console.Microsoft.ApplicationInsights.WindowsServer.UnhandledExceptionTelemetryModule - tracks unhandled exceptions for worker roles, windows services, and console applications.
  • Application insights o Windows Server Pacote NuGet.Application Insights Windows Server NuGet package.

Monitoramento de EventSourceEventSource Tracking

O EventSourceTelemetryModule permite configurar eventos EventSource a serem enviados ao Application Insights como rastreamentos.EventSourceTelemetryModule allows you to configure EventSource events to be sent to Application Insights as traces. Para obter informações sobre o monitoramento de eventos EventSource, consulte Usando eventos EventSource.For information on tracking EventSource events, see Using EventSource Events.

Monitoramento de eventos ETWETW Event Tracking

O EtwCollectorTelemetryModule permite configurar eventos de provedores ETW a serem enviados ao Application Insights como rastreamentos.EtwCollectorTelemetryModule allows you to configure events from ETW providers to be sent to Application Insights as traces. Para obter informações sobre o monitoramento de eventos ETW, consulte Usando eventos ETW.For information on tracking ETW events, see Using ETW Events.

Microsoft.ApplicationInsightsMicrosoft.ApplicationInsights

O pacote Microsoft.ApplicationInsights fornece a API principal do SDK.The Microsoft.ApplicationInsights package provides the core API of the SDK. Os outros módulos de telemetria usam isso, e você também pode usá-lo para definir sua própria telemetria.The other Telemetry Modules use this, and you can also use it to define your own telemetry.

  • Nenhuma entrada em ApplicationInsights.config.No entry in ApplicationInsights.config.
  • Microsoft.ApplicationInsights .Microsoft.ApplicationInsights NuGet package. Se você acabou de instalar este NuGet, nenhum arquivo. config será gerado.If you just install this NuGet, no .config file is generated.

Canal de telemetriaTelemetry Channel

O canal de telemetria gerencia o buffer e a transmissão de telemetria para o serviço de Application insights.The telemetry channel manages buffering and transmission of telemetry to the Application Insights service.

  • Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.ServerTelemetryChannel é o canal padrão para aplicativos Web.Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.ServerTelemetryChannel is the default channel for web applications. Ele armazena em buffer os dados na memória e emprega mecanismos de repetição e armazenamento em disco local para entrega de telemetria mais confiável.It buffers data in memory, and employs retry mechanisms and local disk storage for more reliable telemetry delivery.
  • Microsoft.ApplicationInsights.InMemoryChannel é um canal de telemetria leve, que será usado se nenhum outro canal estiver configurado.Microsoft.ApplicationInsights.InMemoryChannel is a lightweight telemetry channel, which is used if no other channel is configured.

Inicializadores de telemetria (ASP.NET)Telemetry Initializers (ASP.NET)

Inicializadores de telemetria definem propriedades de contexto que são enviadas junto com cada item de telemetria.Telemetry Initializers set context properties that are sent along with every item of telemetry.

Você pode escrever seus próprios inicializadores para definir as propriedades de contexto.You can write your own initializers to set context properties.

Os inicializadores padrão foram todos configurados pelos pacotes do WindowsServer NuGet ou Web:The standard initializers are all set either by the Web or WindowsServer NuGet packages:

  • AccountIdTelemetryInitializer define a propriedade AccountId.AccountIdTelemetryInitializer sets the AccountId property.

  • AuthenticatedUserIdTelemetryInitializer define a propriedade AuthenticatedUserId como definido pelo SDK do JavaScript.AuthenticatedUserIdTelemetryInitializer sets the AuthenticatedUserId property as set by the JavaScript SDK.

  • AzureRoleEnvironmentTelemetryInitializer atualiza as propriedades RoleName e RoleInstance do contexto Device para todos os itens de telemetria com informações extraídas do ambiente de runtime do 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 atualiza a Version propriedade do Component contexto para todos os itens de telemetria com o valor extraído do arquivo BuildInfo.config produzido pelo MS Build.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 atualiza a propriedade Ip do contexto Location de todos os itens de telemetria baseados no cabeçalho HTTP X-Forwarded-For da solicitação.ClientIpHeaderTelemetryInitializer updates Ip property of the Location context of all telemetry items based on the X-Forwarded-For HTTP header of the request.

  • DeviceTelemetryInitializer atualiza as propriedades a seguir do contexto Device para todos os itens de telemetria.DeviceTelemetryInitializer updates the following properties of the Device context for all telemetry items.

    • Type é definido como "PC"Type is set to "PC"
    • Id é definido para o nome de domínio do computador onde o aplicativo Web está em execução.Id is set to the domain name of the computer where the web application is running.
    • OemName é definido para o valor extraído do campo Win32_ComputerSystem.Manufacturer usando WMI.OemName is set to the value extracted from the Win32_ComputerSystem.Manufacturer field using WMI.
    • Model é definido para o valor extraído do campo Win32_ComputerSystem.Model usando WMI.Model is set to the value extracted from the Win32_ComputerSystem.Model field using WMI.
    • NetworkType é definido para o valor extraído de NetworkInterface.NetworkType is set to the value extracted from the NetworkInterface.
    • Language é definido para o nome da CurrentCulture.Language is set to the name of the CurrentCulture.
  • DomainNameRoleInstanceTelemetryInitializer atualiza a propriedade RoleInstance do contexto Device para todos os itens de telemetria com o nome de domínio do computador onde o aplicativo Web está em execução.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 atualiza a propriedade Name das propriedades RequestTelemetry e Name do contexto Operation de todos os itens de telemetria baseados no método HTTP, bem como nomes do controlador MVC do ASP.NET e ação invocada para processar a solicitação.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 atualiza a propriedade de contexto Operation.Id de todos os itens de telemetria rastreados ao manipular uma solicitação com o RequestTelemetry.Id gerado automaticamente.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 atualiza a propriedade Id do contexto Session para todos os itens de telemetria com valor extraído do cookie ai_session gerado pelo código de instrumentação do JavaScript do ApplicationInsights em execução no navegador do usuário.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 atualiza as propriedades de contexto User, Session e Operationde todos os itens de telemetria rastreados ao lidar com uma solicitação de uma fonte sintética, como um teste de disponibilidade ou um bot do mecanismo de pesquisa.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. Por padrão, o Metrics Explorer não exibe telemetria sintética.By default, Metrics Explorer does not display synthetic telemetry.

    Os <Filters> definem as propriedades de identificação das solicitações.The <Filters> set identifying properties of the requests.

  • UserTelemetryInitializer atualiza as propriedades Id e AcquisitionDate do contexto User para todos os itens de telemetria com valores extraídos do cookie ai_user gerado pelo código de instrumentação do JavaScript do Application Insights em execução no navegador do usuário.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 define a ID de usuário, a ID de sessão e as propriedades de origem sintética para solicitações HTTP provenientes de testes de disponibilidade.WebTestTelemetryInitializer sets the user ID, session ID, and synthetic source properties for HTTP requests that come from availability tests. Os <Filters> definem as propriedades de identificação das solicitações.The <Filters> set identifying properties of the requests.

Para aplicativos .NET em execução no Service Fabric, você pode incluir o pacote do NuGet Microsoft.ApplicationInsights.ServiceFabric.For .NET applications running in Service Fabric, you can include the Microsoft.ApplicationInsights.ServiceFabric NuGet package. Este pacote inclui um FabricTelemetryInitializer, que adiciona propriedades do Service Fabric a itens de telemetria.This package includes a FabricTelemetryInitializer, which adds Service Fabric properties to telemetry items. Para obter mais informações, consulte a página do GitHub sobre as propriedades adicionadas por este pacote do NuGet.For more information, see the GitHub page about the properties added by this NuGet package.

Processadores de Telemetria (ASP.NET)Telemetry Processors (ASP.NET)

Os processadores de telemetria podem filtrar e modificar cada item de telemetria logo antes de ele ser enviado do SDK para o Portal.Telemetry Processors can filter and modify each telemetry item just before it is sent from the SDK to the portal.

Você pode escrever seus próprios processadores de telemetria.You can write your own Telemetry Processors.

Processador de telemetria de amostragem adaptável (de 2.0.0-Beta3)Adaptive sampling Telemetry Processor (from 2.0.0-beta3)

Isso é habilitado por padrão.This is enabled by default. Se o seu aplicativo envia muita telemetria, esse processador remove parte dela.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>

O parâmetro fornece o destino que o algoritmo tenta obter.The parameter provides the target that the algorithm tries to achieve. Cada instância do SDK funciona independentemente, portanto, se o servidor for um cluster de vários computadores, o volume real de telemetria será multiplicado adequadamente.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.

Saiba mais sobre amostragem.Learn more about sampling.

Processador de telemetria de amostragem de taxa fixa (de 2.0.0-beta1)Fixed-rate sampling Telemetry Processor (from 2.0.0-beta1)

Também há um processador de telemetria de amostragem padrão (da 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>

InstrumentationKeyInstrumentationKey

Isso determina o recurso do Application Insights em que seus dados aparecem.This determines the Application Insights resource in which your data appears. Normalmente um recurso separado, com uma chave separada, é criado para cada um dos seus aplicativos.Typically you create a separate resource, with a separate key, for each of your applications.

Se você deseja definir a chave dinamicamente, por exemplo, se quiser enviar os resultados do seu aplicativo para outros recursos, é possível omitir a chave do arquivo de configuração e defini-lo no código.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.

Para definir a chave para todas as instâncias de TelemetryClient, incluindo módulos de telemetria padrão.To set the key for all instances of TelemetryClient, including standard Telemetry Modules. Faça isso em um método de inicialização como global.aspx.cs em um serviço 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);
   

Se quiser enviar um conjunto específico de eventos para um recurso diferente, você pode definir a chave para um TelemetryClient específico: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");
    // ...

Para obter uma nova chave, crie um novo recurso no portal do Application Insights.To get a new key, create a new resource in the Application Insights portal.

Provedor ApplicationIdApplicationId Provider

Disponível a partir de v2.6.0Available starting in v2.6.0

A finalidade desse provedor é procurar uma ID de aplicativo com base em uma chave de instrumentação.The purpose of this provider is to lookup an Application ID based on an Instrumentation Key. A ID do aplicativo é incluída em RequestTelemetry e em DependencyTelemetry e é usada para determinar a correlação no Portal.The Application ID is included in RequestTelemetry and DependencyTelemetry and used to determine Correlation in the Portal.

Isso está disponível pela configuração de TelemetryConfiguration.ApplicationIdProvider no código ou na configuração.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);
}

Fornecemos duas implementações no Microsoft.ApplicationInsights sdk: ApplicationInsightsApplicationIdProvider e DictionaryApplicationIdProvider.We provide two implementations in the Microsoft.ApplicationInsights sdk: ApplicationInsightsApplicationIdProvider and DictionaryApplicationIdProvider.

ApplicationInsightsApplicationIdProviderApplicationInsightsApplicationIdProvider

Esse é um wrapper em torno da API do Perfil.This is a wrapper around our Profile API. Ele limitará as solicitações e os resultados do cache.It will throttle requests and cache results.

Este provedor é adicionado ao arquivo de configuração quando você instala Microsoft.ApplicationInsights.DependencyCollector ou Microsoft.ApplicationInsights.WebThis provider is added to your config file when you install either Microsoft.ApplicationInsights.DependencyCollector or Microsoft.ApplicationInsights.Web

Essa classe tem uma propriedade opcional ProfileQueryEndpoint.This class has an optional property ProfileQueryEndpoint. Por padrão, isso é definido como https://dc.services.visualstudio.com/api/profiles/{0}/appId.By default this is set to https://dc.services.visualstudio.com/api/profiles/{0}/appId. Se for necessário configurar um proxy para essa configuração, é recomendável o proxy de endereço básico e incluindo "/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". Observe que '{0}' é substituído em runtime por solicitação com a Chave de Instrumentação.Note that '{0}' is substituted at runtime per request with the Instrumentation Key.

Exemplo de configuração 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>

Exemplo de Configuração via código:Example Configuration via code:

TelemetryConfiguration.Active.ApplicationIdProvider = new ApplicationInsightsApplicationIdProvider();

DictionaryApplicationIdProviderDictionaryApplicationIdProvider

Esse é um provedor estático que depende dos pares ID do aplicativo/chave de instrumentação configurados.This is a static provider, which will rely on your configured Instrumentation Key / Application ID pairs.

Essa classe tem uma propriedade Defined que é um Dictionary<string,string> de pares de chave de instrumentação para ID do aplicativo.This class has a property Defined, which is a Dictionary<string,string> of Instrumentation Key to Application ID pairs.

Essa classe tem uma propriedade opcional Next que pode ser utilizada para configurar outro provedor a ser usado quando uma Chave de Instrumentação solicitada não existir na configuração.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.

Exemplo de configuração 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>

Exemplo de Configuração via código:Example Configuration via code:

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

Próximas etapasNext steps

Saiba mais sobre a API.Learn more about the API.