ApplicationInsights.config または .xml を使った Application Insights SDK の構成Configuring the Application Insights SDK with ApplicationInsights.config or .xml

Application Insights .NET SDK は、いくつかの NuGet パッケージで構成されます。The Application Insights .NET SDK consists of a number of NuGet packages. コア パッケージ は、テレメトリを Application Insights に送信するための API を提供します。The core package provides the API for sending telemetry to the Application Insights. その他のパッケージは、アプリケーションとそのコンテキストからテレメトリを自動的に追跡するためのテレメトリ モジュール初期化子を提供します。Additional packages provide telemetry modules and initializers for automatically tracking telemetry from your application and its context. 構成ファイルを調整することによって、テレメトリ モジュールと初期化子を有効または無効にしたり、その中のいくつかに対してパラメーターを設定したりできます。By adjusting the configuration file, you can enable or disable Telemetry Modules and initializers, and set parameters for some of them.

アプリケーションの種類に応じて、構成ファイルの名前は ApplicationInsights.config または ApplicationInsights.xml になります。The configuration file is named ApplicationInsights.config or ApplicationInsights.xml, depending on the type of your application. 構成ファイルは、SDK のほとんどのバージョンのインストール時にプロジェクトに自動的に追加されます。It is automatically added to your project when you install most versions of the SDK. 既定では、 [追加] > [Application Insights Telemetry] がサポートされている Visual Studio テンプレート プロジェクトからの自動化されたエクスペリエンスを使用すると、ApplicationInsights.config ファイルがプロジェクトのルート フォルダーに作成され、コンパイル時に 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. また、IIS サーバー上の Status Monitor によって Web アプリに追加されます。It is also added to a web app by Status Monitor on an IIS server. Azure Web サイトの拡張機能または Azure VM の拡張機能と仮想マシン スケールセットが使用されている場合、構成ファイルは無視されます。The configuration file is ignored if extension for Azure website or extension for Azure VM and virtual machine scale set is used.

Web ページの SDK を制御するための同等のファイルはありません。There isn't an equivalent file to control the SDK in a web page.

このドキュメントでは、構成ファイルの各セクション、SDK のコンポーネントの制御方法、それらのコンポーネントを読み込む NuGet パッケージについて説明します。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.

注意

ApplicationInsights.config および .xml の手順は、.NET Core SDK には適用されません。ApplicationInsights.config and .xml instructions do not apply to the .NET Core SDK. .NET Core アプリケーションを構成するには、こちらのガイドに従ってください。For configuring .NET Core applications, follow this guide.

テレメトリ モジュール (ASP.NET)Telemetry Modules (ASP.NET)

各テレメトリ モジュールでは特定の種類のデータを収集し、コア API を利用してデータを送信します。Each Telemetry Module collects a specific type of data and uses the core API to send the data. モジュールはさまざまな NuGet パッケージによりインストールされます。NuGet パッケージはまた、必要な行を .config ファイルに追加します。The modules are installed by different NuGet packages, which also add the required lines to the .config file.

各モジュールの構成ファイルにノードが存在します。There's a node in the configuration file for each module. モジュールを無効にするには、ノードを削除するか、コメント アウトします。To disable a module, delete the node or comment it out.

依存関係の追跡Dependency Tracking

依存関係の追跡 により、アプリがデータベースと外部サービスに行った呼び出しに関するテレメトリが回収されます。Dependency tracking collects telemetry about calls your app makes to databases and external services and databases. このモジュールを IIS サーバーで機能させるには、Status Monitor をインストールする必要があります。To allow this module to work in an IIS server, you need to install Status Monitor.

TrackDependency APIを使用して、独自の依存関係追跡コードを記述することもできます。You can also write your own dependency tracking code using the TrackDependency API.

エージェントベース (コードなし) アタッチを使用してコードを変更することなく、依存関係を自動収集できます。Dependencies can be auto-collected without modifying your code by using agent-based (codeless) attach. これを Azure Web アプリで使用するには、Application Insights 拡張機能を有効にします。To use it in Azure web apps, enable the Application Insights extension. Azure VM または Azure 仮想マシン スケール セットで使用するには、VM と仮想マシン スケール セットのアプリケーション監視拡張を有効にします。To use it in Azure VM or Azure virtual machine scale set enable the Application Monitoring extension for VM and virtual machine scale set.

パフォーマンス コレクターPerformance collector

CPU、メモリ、IIS インストールのネットワーク負荷など、システム パフォーマンス カウンターを収集します。Collects system performance counters such as CPU, memory, and network load from IIS installations. 自分で設定したパフォーマンス カウンターなど、回収するカウンターを指定できます。You can specify which counters to collect, including performance counters you have set up yourself.

Application Insights 診断テレメトリApplication Insights Diagnostics Telemetry

DiagnosticsTelemetryModule は Application Insights インストルメンテーション コード自体のエラーを報告します。The DiagnosticsTelemetryModule reports errors in the Application Insights instrumentation code itself. たとえば、コードのパフォーマンス カウンターにアクセスできない場合、または ITelemetryInitializer が例外をスローする場合です。For example, if the code cannot access performance counters or if an ITelemetryInitializer throws an exception. 診断検索に、このモジュールが追跡するトレース テレメトリが表示されます。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.

開発者モードDeveloper Mode

DeveloperModeWithDebuggerAttachedTelemetryModule は、デバッガーがアプリケーション プロセスに接続されているときに、Application Insights の TelemetryChannel にデータを即座に、一度に 1 つのテレメトリ項目を送信するよう強制します。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. これにより、アプリケーションによるテレメトリの追跡時や、アプリケーションが 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. ここでは、CPU とネットワーク帯域幅のオーバーヘッドが著しく費やされます。It causes significant overhead in CPU and network bandwidth.

Web 要求の追跡Web Request Tracking

HTTP 要求の 応答時間と結果コード を報告します。Reports the response time and result code of HTTP requests.

例外の追跡Exception tracking

ExceptionTrackingTelemetryModule は Web アプリで処理されない例外を追跡します。ExceptionTrackingTelemetryModule tracks unhandled exceptions in your web app. 失敗と例外に関する記事をご覧ください。See Failures and exceptions.

EventSource の追跡EventSource Tracking

EventSourceTelemetryModule を使用すると、Application Insights にトレースとして送信される EventSource イベントを構成できます。EventSourceTelemetryModule allows you to configure EventSource events to be sent to Application Insights as traces. EventSource イベントの追跡については、「EventSource イベントを使用する」をご覧ください。For information on tracking EventSource events, see Using EventSource Events.

ETW イベントの追跡ETW Event Tracking

EtwCollectorTelemetryModule を使用すると、Application Insights にトレースとして送信される ETW プロバイダーを構成できます。EtwCollectorTelemetryModule allows you to configure events from ETW providers to be sent to Application Insights as traces. ETW イベントの追跡については、「ETW イベントを使用する」をご覧ください。For information on tracking ETW events, see Using ETW Events.

Microsoft.ApplicationInsightsMicrosoft.ApplicationInsights

Microsoft.ApplicationInsights パッケージには、SDK のコア API が含まれています。The Microsoft.ApplicationInsights package provides the core API of the SDK. その他のテレメトリ モジュールではこれが使用されると共に、独自のテレメトリを定義するために使用することも可能です。The other Telemetry Modules use this, and you can also use it to define your own telemetry.

  • ApplicationInsights.config にエントリがありません。No entry in ApplicationInsights.config.
  • Microsoft.ApplicationInsights NuGet パッケージMicrosoft.ApplicationInsights NuGet package. この NuGet だけをインストールする場合、.config ファイルは生成されません。If you just install this NuGet, no .config file is generated.

テレメトリ チャネルTelemetry Channel

テレメトリ チャネルでは、テレメトリのバッファリングと Application Insights サービスへの送信が管理されます。The telemetry channel manages buffering and transmission of telemetry to the Application Insights service.

  • Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.ServerTelemetryChannel は Web アプリケーション用の既定のチャネルです。Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.ServerTelemetryChannel is the default channel for web applications. メモリ内にデータをバッファーし、より信頼性の高いテレメトリ配信のために、再試行のメカニズムとローカル ディスク ストレージを採用しています。It buffers data in memory, and employs retry mechanisms and local disk storage for more reliable telemetry delivery.
  • Microsoft.ApplicationInsights.InMemoryChannel は軽量なテレメトリ チャネルであり、他のチャネルが構成されていない場合に使用されます。Microsoft.ApplicationInsights.InMemoryChannel is a lightweight telemetry channel, which is used if no other channel is configured.

テレメトリの初期化子 (ASP.NET)Telemetry Initializers (ASP.NET)

テレメトリの初期化子は、テレメトリのあらゆる項目と共に送信されるコンテキスト プロパティを設定します。Telemetry Initializers set context properties that are sent along with every item of telemetry.

独自の初期化子を記述し 、コンテキスト プロパティを設定できます。You can write your own initializers to set context properties.

標準の初期化子は Web または WindowsServer NuGet パッケージによりすべて設定されます。The standard initializers are all set either by the Web or WindowsServer NuGet packages:

  • AccountIdTelemetryInitializer は AccountId プロパティを設定します。AccountIdTelemetryInitializer sets the AccountId property.

  • AuthenticatedUserIdTelemetryInitializer は JavaScript SDK による設定に基づき AuthenticatedUserId プロパティを設定します。AuthenticatedUserIdTelemetryInitializer sets the AuthenticatedUserId property as set by the JavaScript SDK.

  • AzureRoleEnvironmentTelemetryInitializer は、Azure ランタイム環境から抽出された情報により、すべてのテレメトリ項目の Device コンテキストの RoleName および RoleInstance プロパティを更新します。AzureRoleEnvironmentTelemetryInitializer updates the RoleName and RoleInstance properties of the Device context for all telemetry items with information extracted from the Azure runtime environment.

  • BuildInfoConfigComponentVersionTelemetryInitializer は、MS ビルドによって生成された BuildInfo.config ファイルから抽出された値を使用して、すべてのテレメトリ項目の Component コンテキストの Version プロパティを更新します。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 は、要求の X-Forwarded-For HTTP ヘッダーに基づいて、すべてのテレメトリ項目の Location コンテキストの Ip プロパティを更新します。ClientIpHeaderTelemetryInitializer updates Ip property of the Location context of all telemetry items based on the X-Forwarded-For HTTP header of the request.

  • DeviceTelemetryInitializer は、すべてのテレメトリ項目の Device コンテキストの次のプロパティを更新します。DeviceTelemetryInitializer updates the following properties of the Device context for all telemetry items.

    • Type は "PC" に設定しますType is set to "PC"
    • Id は Web アプリケーションが実行中のコンピューターのドメイン名に設定します。Id is set to the domain name of the computer where the web application is running.
    • OemName は WMI を使用して Win32_ComputerSystem.Manufacturer フィールドから抽出された値に設定します。OemName is set to the value extracted from the Win32_ComputerSystem.Manufacturer field using WMI.
    • Model は WMI を使用して Win32_ComputerSystem.Model フィールドから抽出された値に設定します。Model is set to the value extracted from the Win32_ComputerSystem.Model field using WMI.
    • NetworkTypeNetworkInterface から抽出された値に設定します。NetworkType is set to the value extracted from the NetworkInterface.
    • LanguageCurrentCulture の名前に設定します。Language is set to the name of the CurrentCulture.
  • DomainNameRoleInstanceTelemetryInitializer は、Web アプリケーションを実行中のコンピューターのドメイン名を使用して、すべてのテレメトリ項目の Device コンテキストの RoleInstance プロパティを更新します。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 は、HTTP メソッドのほか、ASP.NET MVC コントローラーの名前、要求の処理のために呼び出されるアクションに基づいて、すべてのテレメトリ項目のRequestTelemetryName プロパティと Operation コンテキストの Name プロパティを更新します。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 または OperationCorrelationTelemetryInitializer は、追跡されたすべてのテレメトリ項目の Operation.Id コンテキスト プロパティを更新し、自動生成された RequestTelemetry.Id が付いた要求を処理します。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 は、ユーザーのブラウザーで実行する Application Insights JavaScript インストルメンテーション コードが生成する ai_session Cookie から抽出された値を使用して、すべてのテレメトリ項目の Session コンテキストの Id プロパティを更新します。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 または SyntheticUserAgentTelemetryInitializer は、可用性テストや検索エンジン ボットなど、合成ソースからの要求の処理時に追跡されるすべてのテレメトリ項目の UserSessionOperation コンテキスト プロパティを更新します。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. 既定では、 メトリックス エクスプローラー には合成テレメトリは表示されません。By default, Metrics Explorer does not display synthetic telemetry.

    <Filters> は、要求の識別プロパティを設定します。The <Filters> set identifying properties of the requests.

  • UserTelemetryInitializer は、ユーザーのブラウザーで実行する Application Insights JavaScript インストルメンテーション コードが生成する ai_user Cookie から抽出された値を使用して、すべてのテレメトリ項目の User コンテキストの Id および AcquisitionDate プロパティを更新します。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 は、可用性テストからの HTTP 要求に対してユーザー ID、セッション ID、および合成ソース プロパティを設定します。WebTestTelemetryInitializer sets the user ID, session ID, and synthetic source properties for HTTP requests that come from availability tests. <Filters> は、要求の識別プロパティを設定します。The <Filters> set identifying properties of the requests.

Service Fabric で実行されている .NET アプリケーションの場合、Microsoft.ApplicationInsights.ServiceFabric NuGet パッケージを含めることができます。For .NET applications running in Service Fabric, you can include the Microsoft.ApplicationInsights.ServiceFabric NuGet package. このパッケージには、Service Fabric のプロパティをテレメトリ項目に追加する FabricTelemetryInitializer が含まれています。This package includes a FabricTelemetryInitializer, which adds Service Fabric properties to telemetry items. 詳細については、この NuGet パッケージによって追加されるプロパティに関する GitHub のページをご覧ください。For more information, see the GitHub page about the properties added by this NuGet package.

テレメトリ プロセッサ (ASP.NET)Telemetry Processors (ASP.NET)

テレメトリ プロセッサは、SDK からポータルに送信される直前の各テレメトリ項目をフィルター処理して変更できます。Telemetry Processors can filter and modify each telemetry item just before it is sent from the SDK to the portal.

独自のテレメトリ プロセッサを記述できます。You can write your own Telemetry Processors.

アダプティブ サンプリング テレメトリ プロセッサー (2.0.0-beta3 以降)Adaptive sampling Telemetry Processor (from 2.0.0-beta3)

この機能は、既定では有効になっています。This is enabled by default. アプリが多数のテレメトリを送信する場合、このプロセッサはその一部を削除します。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>

パラメーターは、アルゴリズムが実現しようとするターゲットを指定します。The parameter provides the target that the algorithm tries to achieve. SDK の各インスタンスは独立して機能するため、サーバーが複数のコンピューターのクラスターである場合、テレメトリの実際の量もそれに応じて増加します。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.

サンプリングの詳細についてはこちらを参照してくださいLearn more about sampling.

固定レート サンプリング テレメトリ プロセッサー (2.0.0-beta1 以降)Fixed-rate sampling Telemetry Processor (from 2.0.0-beta1)

標準的なサンプリング テレメトリ プロセッサも用意されています (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>

チャネル パラメーター (Java)Channel parameters (Java)

これらのパラメーターは、Java SDK が収集するテレメトリ データの格納とフラッシュする方法に影響します。These parameters affect how the Java SDK should store and flush the telemetry data that it collects.

MaxTelemetryBufferCapacityMaxTelemetryBufferCapacity

SDK のメモリー内ストレージに格納できるテレメトリ項目の数。The number of telemetry items that can be stored in the SDK's in-memory storage. この数に達すると、テレメトリのバッファーがフラッシュされます。つまり、テレメトリの項目が、Application Insights サーバーに送信されます。When this number is reached, the telemetry buffer is flushed - that is, the telemetry items are sent to the Application Insights server.

  • 最小:1Min: 1
  • 最大:1000Max: 1000
  • 既定値は500Default: 500

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

FlushIntervalInSecondsFlushIntervalInSeconds

メモリー内ストレージに格納されているデータがフラッシュされる (Application Insights に送信される) 頻度を決定します。Determines how often the data that is stored in the in-memory storage should be flushed (sent to Application Insights).

  • 最小:1Min: 1
  • 最大:300Max: 300
  • 既定値は5Default: 5

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

MaxTransmissionStorageCapacityInMBMaxTransmissionStorageCapacityInMB

ローカル ディスクの永続的なストレージに割り当てられる MB 単位の最大サイズを決定します。Determines the maximum size in MB that is allotted to the persistent storage on the local disk. このストレージは、Application Insights のエンドポイントへの転送に失敗したテレメトリの項目を保存するために使用されます。This storage is used for persisting telemetry items that failed to be transmitted to the Application Insights endpoint. ストレージのサイズが満たされている場合は、テレメトリの新しい項目は破棄されます。When the storage size has been met, new telemetry items will be discarded.

  • 最小:1Min: 1
  • 最大:100Max: 100
  • 既定値は10Default: 10

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

ローカル フォワーダーLocal forwarder

ローカル フォワーダーとは、さまざまな SDK やフレームワークから Application Insights または OpenCensus のテレメトリを収集して、それを Application Insights にルーティングするエージェントです。Local forwarder is an agent that collects Application Insights or OpenCensus telemetry from a variety of SDKs and frameworks and routes it to Application Insights. これは、Windows と Linux で実行できます。It's capable of running under Windows and Linux. Application Insights Java SDK と組み合わせた場合、ローカル フォワーダーで、Live Metrics とアダプティブ サンプリングが完全にサポートされます。When coupled with the Application Insights Java SDK the local forwarder provides full support for Live Metrics and adaptive sampling.

<Channel type="com.microsoft.applicationinsights.channel.concrete.localforwarder.LocalForwarderTelemetryChannel">
<EndpointAddress><!-- put the hostname:port of your LocalForwarder instance here --></EndpointAddress>

<!-- The properties below are optional. The values shown are the defaults for each property -->

<FlushIntervalInSeconds>5</FlushIntervalInSeconds><!-- must be between [1, 500]. values outside the bound will be rounded to nearest bound -->
<MaxTelemetryBufferCapacity>500</MaxTelemetryBufferCapacity><!-- units=number of telemetry items; must be between [1, 1000] -->
</Channel>

SpringBoot スターターを使用する場合は、構成ファイル (application.properties) に以下を追加します。If you are using SpringBoot starter, add the following to your configuration file (application.properties):

azure.application-insights.channel.local-forwarder.endpoint-address=<!--put the hostname:port of your LocalForwarder instance here-->
azure.application-insights.channel.local-forwarder.flush-interval-in-seconds=<!--optional-->
azure.application-insights.channel.local-forwarder.max-telemetry-buffer-capacity=<!--optional-->

SpringBoot の application.properties と applicationinsights.xml の構成の既定値は同じです。Default values are the same for SpringBoot application.properties and applicationinsights.xml configuration.

InstrumentationKeyInstrumentationKey

これは、データが表示される Application Insights のリソースを決定します。This determines the Application Insights resource in which your data appears. 通常、アプリケーションごとに、個別のキーを持つリソースを作成します。Typically you create a separate resource, with a separate key, for each of your applications.

キーを動的に設定する場合 (たとえば、アプリケーションからの結果を別のリソースに送信する場合)、構成ファイルからキーを省略し、代わりにコードで設定することができます。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.

TelemetryClient のすべてのインスタンスにキーを設定するには (標準のテレメトリ モジュールを含む)、TelemetryConfiguration.Active にキーを設定します。To set the key for all instances of TelemetryClient, including standard Telemetry Modules, set the key in TelemetryConfiguration.Active. ASP.NET サービスの global.aspx.cs など、初期化メソッドでキーの設定を行います。Do this in an initialization method, such as global.aspx.cs in an ASP.NET service:


    protected void Application_Start()
    {
      Microsoft.ApplicationInsights.Extensibility.
        TelemetryConfiguration.Active.InstrumentationKey =
          // - for example -
          WebConfigurationManager.AppSettings["ikey"];
      //...

特定のイベント セットを異なるリソースに送信する場合、特定の TelemetryClient のキーを設定できます。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");
    // ...

新しいキーを取得するには、Application Insights ポータルで新しいリソースを作成します。To get a new key, create a new resource in the Application Insights portal.

ApplicationId プロバイダーApplicationId Provider

v2.6.0 以降で利用可能Available starting in v2.6.0

このプロバイダーの目的は、インストルメンテーション キーに基づいてアプリケーション ID を参照することです。The purpose of this provider is to lookup an Application ID based on an Instrumentation Key. アプリケーション ID は RequestTelemetry と DependencyTelemetry に含まれ、ポータルでの相関関係を決定するために使用されます。The Application ID is included in RequestTelemetry and DependencyTelemetry and used to determine Correlation in the Portal.

これは、TelemetryConfiguration.ApplicationIdProvider をコード内または構成内に設定することで有効にできます。This is available by setting TelemetryConfiguration.ApplicationIdProvider either in code or in config.

インターフェイス:IApplicationIdProviderInterface: IApplicationIdProvider

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

Microsoft.ApplicationInsights SDK 内に次の 2 つの実装が用意されています。ApplicationInsightsApplicationIdProviderDictionaryApplicationIdProviderWe provide two implementations in the Microsoft.ApplicationInsights sdk: ApplicationInsightsApplicationIdProvider and DictionaryApplicationIdProvider.

ApplicationInsightsApplicationIdProviderApplicationInsightsApplicationIdProvider

これはプロファイル API のラッパーです。This is a wrapper around our Profile API. 要求とキャッシュの結果を調整します。It will throttle requests and cache results.

このプロバイダーは、Microsoft.ApplicationInsights.DependencyCollector または Microsoft.ApplicationInsights.Web のいずれかをインストールしたときに、構成ファイルに追加されます。This provider is added to your config file when you install either Microsoft.ApplicationInsights.DependencyCollector or Microsoft.ApplicationInsights.Web

このクラスには、省略可能なプロパティ ProfileQueryEndpoint があります。This class has an optional property ProfileQueryEndpoint. 既定では、これは https://dc.services.visualstudio.com/api/profiles/{0}/appId に設定されます。By default this is set to https://dc.services.visualstudio.com/api/profiles/{0}/appId. この構成のプロキシを構成する必要がある場合は、ベース アドレスのプロキシ化と "/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". '{0}' は実行時に要求ごとにインストルメンテーション キーに置き換わることに注意してください。Note that '{0}' is substituted at runtime per request with the Instrumentation Key.

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>

コードによる構成の例:Example Configuration via code:

TelemetryConfiguration.Active.ApplicationIdProvider = new ApplicationInsightsApplicationIdProvider();

DictionaryApplicationIdProviderDictionaryApplicationIdProvider

これは、構成済みのインストルメンテーション キーとアプリケーション ID のペアに依存する静的プロバイダーです。This is a static provider, which will rely on your configured Instrumentation Key / Application ID pairs.

このクラスには、Defined プロパティがあります。これは、インストルメンテーション キーとアプリケーション ID のペアである Dictionary<string,string> です。This class has a property Defined, which is a Dictionary<string,string> of Instrumentation Key to Application ID pairs.

このクラスには、省略可能なプロパティ Next があります。これを使用して、構成に存在しないインストルメンテーション キーが要求されたときに使用する別のプロバイダーを構成できます。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.

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>

コードによる構成の例:Example Configuration via code:

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

次の手順Next steps

API の詳細については、こちらをご覧ください。Learn more about the API.