Application Insights におけるサンプリングSampling in Application Insights

サンプリングは Azure Application Insights の機能です。Sampling is a feature in Azure Application Insights. サンプリングは、アプリケーション データの分析に関して統計的な正しさを保ちながら、テレメトリのトラフィックと保存スペースを減らす方法として推奨されます。It is the recommended way to reduce telemetry traffic and storage, while preserving a statistically correct analysis of application data. フィルターによって関連のある項目が選択されるため、診断調査を行うときに項目間を移動できるようになります。The filter selects items that are related, so that you can navigate between items when you are doing diagnostic investigations. ポータルにメトリック カウントが表示される場合、それらはサンプリングを考慮するように再正規化されます。When metric counts are presented in the portal, they are renormalized to take into account sampling. それにより、統計への影響が最小限に抑えられます。Doing so minimizes any effect on the statistics.

サンプリングによってトラフィックとデータ コストが減り、スロットルを回避できます。Sampling reduces traffic and data costs, and helps you avoid throttling.

概要:In brief:

  • サンプリングでは、 n 個のレコードのうちの 1 個が保持されて、残りは破棄されます。Sampling retains 1 in n records and discards the rest. たとえば、5 つのイベントのうちの 1 つが保持された場合は 20% のサンプリング レートです。For example, it might retain one in five events, a sampling rate of 20%.
  • アダプティブ サンプリングは、ASP.NET および ASP.NET Core ソフトウェア開発キット (SDK) のすべての最新バージョンで既定で有効になります。Adaptive Sampling is enabled by default in all the latest version of ASP.NET and ASP.NET Core Software Development Kits (SDKs).
  • サンプリングはまた、手動で設定することもできます。You can also set sampling manually. これは、ポータルの [使用量と推定コスト] ページ、ASP.NET SDK の ApplicationInsights.config ファイル、ASP.NET Core SDK でのコード、または Java SDK の ApplicationInsights.xml ファイルで構成できます。This can be configured in the portal on the Usage and estimated costs page, in the ASP.NET SDK in the ApplicationInsights.config file, in the ASP.NET Core SDK via code or in the Java SDK in the ApplicationInsights.xml file.
  • カスタム イベントを記録しており、一連のイベントが確実にまとめて保持または破棄されるようにする必要がある場合は、それらのイベントに同じ OperationId 値を割り当てる必要があります。If you log custom events and need to ensure that a set of events is retained or discarded together, the events must have the same OperationId value.
  • サンプリング除数 n は、itemCount プロパティでレコードごとに報告されます。この値は、"要求カウント" または "イベント数" というわかりやすい名前で検索結果に表示されます。The sampling divisor n is reported in each record in the property itemCount, which in Search appears under the friendly name "request count" or "event count". サンプリング操作が行われていない場合は、itemCount==1 になります。itemCount==1when sampling is not in operation.
  • Analytics クエリを作成する場合は、 サンプリングを考慮する必要があります。If you write Analytics queries, you should take account of sampling. 具体的には、単純にレコードをカウントするのではなく、 summarize sum(itemCount)を使用する必要があります。In particular, instead of simply counting records, you should use summarize sum(itemCount).

サンプリングの種類Types of sampling

現在は 3 つのサンプリング メソッドがあります。There are three alternative sampling methods:

  • アダプティブ サンプリングは、ASP.NET/ASP.NET Core アプリの SDK から送信されるテレメトリの量を自動的に調整します。Adaptive sampling automatically adjusts the volume of telemetry sent from the SDK in your ASP.NET/ASP.NET Core app. これは、ASP.NET Web SDK v 2.0.0-beta3 以降、および Microsoft.ApplicationInsights.AspNetCore SDK v 2.2.0-beta1 以降の既定のサンプリングです。This is the default sampling from ASP.NET Web SDK v 2.0.0-beta3 onwards and Microsoft.ApplicationInsights.AspNetCore SDK v 2.2.0-beta1 onwards. アダプティブ サンプリングは、現在、ASP.NET サーバー側テレメトリでのみ利用できます。Adaptive sampling is currently only available for ASP.NET server-side telemetry.

  • 固定レート サンプリングは、ASP.NET、ASP.NET Core、または Java サーバーとユーザーのブラウザーの両方から送信されるテレメトリの量を削減します。Fixed-rate sampling reduces the volume of telemetry sent from both your ASP.NET or ASP.NET Core or Java server and from your users' browsers. 管理者がレートを設定します。You set the rate. クライアントとサーバーはサンプリングを同期するので、検索では関連のあるページ ビューと要求の間を移動できます。The client and server will synchronize their sampling so that, in Search, you can navigate between related page views and requests.

  • インジェスト サンプリングは Azure Portal で動作し、Ingestion sampling Works in the Azure portal. アプリケーションから受信したテレメトリの一部を、設定したサンプリング レートで破棄します。It discards some of the telemetry that arrives from your app, at a sampling rate that you set. インジェスト サンプリングはアプリから送信されるテレメトリのトラフィックを削減しませんが、トラフィックを月間のクォータ (上限) 以内で維持するのに役立ちます。It doesn't reduce telemetry traffic sent from your app, but helps you keep within your monthly quota. インジェスト サンプリングの主な利点は、アプリを再デプロイすることなくサンプリング レートを設定できることです。The main advantage of ingestion sampling is that you can set the sampling rate without redeploying your app. インジェスト サンプリングは、すべてのサーバーおよびクライアントに対して均一に動作します。Ingestion sampling works uniformly for all servers and clients.

アダプティブ サンプリングまたは固定レート サンプリングの実行中は、インジェスト サンプリングが無効になります。If Adaptive or Fixed rate sampling are in operation, Ingestion sampling is disabled.

ASP.NET/ASP.NET Core Web アプリケーションでのアダプティブ サンプリングAdaptive sampling in your ASP.NET/ASP.NET Core Web Applications

アダプティブ サンプリングは ASP.NET v 2.0.0-beta3 以降の Application Insights SDK、Microsoft.ApplicationInsights.AspNetCore SDK v 2.2.0-beta1 以降で使用でき、既定で有効になります。Adaptive sampling is available for the Application Insights SDK for ASP.NET v 2.0.0-beta3 and later, Microsoft.ApplicationInsights.AspNetCore SDK v 2.2.0-beta1 and later, and is enabled by default.

アダプティブ サンプリングは、Web サーバー アプリから Application Insights サービス エンドポイントに送信されるテレメトリの量に適用されます。Adaptive sampling affects the volume of telemetry sent from your web server app to the Application Insights service endpoint. この量は、指定されたトラフィックの最大レート内に維持されるように自動的に調整され、設定 MaxTelemetryItemsPerSecond を使用して制御されます。The volume is adjusted automatically to keep within a specified maximum rate of traffic, and is controlled via the setting MaxTelemetryItemsPerSecond. アプリケーションが少量のテレメトリを生成している場合 (デバッグ時や使用量が少ない場合など)、量が MaxTelemetryItemsPerSecond を下回っている限り、サンプリング プロセッサによって項目がドロップされることはありません。If the application produces a low amount of telemetry, such as when debugging or due to low usage, items won't be dropped by the sampling processor as long as volume is below MaxTelemetryItemsPerSecond. テレメトリの量が増えてくると、目的の量を達成するようにサンプリング レートが調整されます。As the volume of telemetry increases, sampling rate is adjusted so as to achieve the target volume.

目標の量を達成するため、生成されたテレメトリの一部は破棄されます。To achieve the target volume, some of the generated telemetry is discarded. 他のサンプリング種類と同様に、このアルゴリズムは関連するテレメトリ項目を維持します。But like other types of sampling, the algorithm retains related telemetry items. たとえば、検索でテレメトリを調べているときは、特定の例外に関連する要求を検索できます。For example, when you're inspecting the telemetry in Search, you'll be able to find the request related to a particular exception.

要求レートや例外レートなどのメトリック カウントはサンプリング レートを補正するように調整され、メトリックス エクスプローラーにはほぼ正しい値が表示されます。Metric counts such as request rate and exception rate are adjusted to compensate for the sampling rate, so that they show approximately correct values in Metric Explorer.

ASP.NET アプリケーションのためのアダプティブ サンプリングの構成Configuring adaptive sampling for ASP.NET Applications

ASP.NET Core アプリケーションのためのアダプティブ サンプリングの構成については、こちらを参照してください。Learn about configuring adaptive sampling for ASP.NET Core Applications.

ApplicationInsights.config で、AdaptiveSamplingTelemetryProcessor ノードのいくつかのパラメーターを調整できます。In ApplicationInsights.config, you can adjust several parameters in the AdaptiveSamplingTelemetryProcessor node. 次の図は既定値です。The figures shown are the default values:

  • <MaxTelemetryItemsPerSecond>5</MaxTelemetryItemsPerSecond>

    アダプティブ アルゴリズムが 各サーバー ホストで目標とするレート。The target rate that the adaptive algorithm aims for on each server host. Web アプリが多数のホストで実行される場合は、Application Insights ポータルのトラフィックの目標レート内に収まるようにこの値を減らします。If your web app runs on many hosts, reduce this value so as to remain within your target rate of traffic at the Application Insights portal.

  • <EvaluationInterval>00:00:15</EvaluationInterval>

    テレメトリの現在のレートを再評価する間隔。The interval at which the current rate of telemetry is reevaluated. 評価は移動平均として実行されます。Evaluation is performed as a moving average. 急変しやすいテレメトリの場合は、この間隔を短くすることもできます。You might want to shorten this interval if your telemetry is liable to sudden bursts.

  • <SamplingPercentageDecreaseTimeout>00:02:00</SamplingPercentageDecreaseTimeout>

    サンプリング率が変化してから、どのくらいの時間が経過すると、サンプリング率を下げてキャプチャ データ量を減らすことができるようになるかを指定します。When sampling percentage value changes, how soon after are we allowed to lower sampling percentage again to capture less data.

  • <SamplingPercentageIncreaseTimeout>00:15:00</SamplingPercentageIncreaseTimeout>

    サンプリング率が変化してから、どのくらいの時間が経過すると、サンプリング率を上げてキャプチャ データ量を増やすことができるようになるかを指定します。When sampling percentage value changes, how soon after are we allowed to increase sampling percentage again to capture more data.

  • <MinSamplingPercentage>0.1</MinSamplingPercentage>

    サンプリング率の変化に合わせて、設定できる最小値。As sampling percentage varies, what is the minimum value we're allowed to set.

  • <MaxSamplingPercentage>100.0</MaxSamplingPercentage>

    サンプリング率の変化に合わせて、設定できる最大値。As sampling percentage varies, what is the maximum value we're allowed to set.

  • <MovingAverageRatio>0.25</MovingAverageRatio>

    移動平均の計算で最新値に割り当てられる重み。In the calculation of the moving average, the weight assigned to the most recent value. 1 以下の値を使用します。Use a value equal to or less than 1. 小さい値にすると、急変に対する反応が低いアルゴリズムになります。Smaller values make the algorithm less reactive to sudden changes.

  • <InitialSamplingPercentage>100</InitialSamplingPercentage>

    アプリの起動直後に割り当てられる値。The value assigned when the app has just started. デバッグ中はこの値を減らさないでください。Don't reduce value while you're debugging.

  • <ExcludedTypes>Trace;Exception</ExcludedTypes>

    サンプリング対象にしない型のセミコロン区切りのリスト。A semi-colon delimited list of types that you do not want to be sampled. 認識される型は、Dependency、Event、Exception、PageView、Request、Trace です。Recognized types are: Dependency, Event, Exception, PageView, Request, Trace. 指定した型はすべてのインスタンスが転送されます。指定されていない型はサンプリングされます。All instances of the specified types are transmitted; the types that are not specified are sampled.

  • <IncludedTypes>Request;Dependency</IncludedTypes>

    サンプリング対象にする型のセミコロン区切りのリスト。A semi-colon delimited list of types that you want to be sampled. 認識される型は、Dependency、Event、Exception、PageView、Request、Trace です。Recognized types are: Dependency, Event, Exception, PageView, Request, Trace. 指定した型はサンプリングされます。他の型のすべてのインスタンスは常に転送されます。The specified types are sampled; all instances of the other types will always be transmitted.

アダプティブ サンプリングをオフにするには、applicationinsights-config から AdaptiveSamplingTelemetryProcessor ノードを削除します。To switch off adaptive sampling, remove the AdaptiveSamplingTelemetryProcessor node(s) from applicationinsights-config.

代替方法: コードでのアダプティブ サンプリングの構成Alternative: configure adaptive sampling in code

.config ファイルでサンプリング パラメーターを設定する代わりに、プログラムでこれらの値を設定できます。Instead of setting the sampling parameter in the .config file, you can programmatically set these values.

  1. .config ファイルからすべての AdaptiveSamplingTelemetryProcessor ノードを削除します。Remove all the AdaptiveSamplingTelemetryProcessor node(s) from the .config file.
  2. 次のスニペットを使用してアダプティブ サンプリングを構成します。Use the following snippet to configure Adaptive Sampling.

C#C#


    using Microsoft.ApplicationInsights;
    using Microsoft.ApplicationInsights.Extensibility;
    using Microsoft.ApplicationInsights.WindowsServer.Channel.Implementation;
    using Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel;
    ...

    var builder = TelemetryConfiguration.Active.TelemetryProcessorChainBuilder;
    // If you are on ApplicationInsights SDK v 2.8.0-beta2 or higher, use the following line instead
    // var builder = TelemetryConfiguration.Active.DefaultTelemetrySink.TelemetryProcessorChainBuilder;

    // Enable AdaptiveSampling so as to keep overall telemetry volume to 5 items per second.
    builder.UseAdaptiveSampling(maxTelemetryItemsPerSecond:5);

    // If you have other telemetry processors:
    builder.Use((next) => new AnotherProcessor(next));

    builder.Build();

(テレメトリ プロセッサについてはこちらをご覧ください。)(Learn about telemetry processors.)

テレメトリの種類ごとにサンプリング レートを個別に調整したり、特定の種類をまったくサンプリングされないように除外したりすることもできます。You can also adjust the sampling rate for each Telemetry type individually, or can even exclude certain types from being sampled at all.

C#C#

    // The following configures adaptive sampling with 5 items per second, and also excludes DependencyTelemetry from being subject to sampling.
    builder.UseAdaptiveSampling(maxTelemetryItemsPerSecond:5, excludedTypes: "Dependency");

ASP.NET Core アプリケーションのためのアダプティブ サンプリングの構成。Configuring adaptive sampling for ASP.NET Core Applications.

ASP.NET Core アプリケーションには ApplicationInsights.Config が存在しないため、すべての構成がコードを使用して実行されます。There is no ApplicationInsights.Config for ASP.NET Core Applications, so every configuration is done via code. アダプティブ サンプリングは、すべての ASP.NET Core アプリケーションで既定で有効にされています。Adaptive sampling is enabled by default for all ASP.NET Core applications. サンプリング動作は無効にしたり、カスタマイズしたりできます。You can disable or customize the sampling behavior.

アダプティブ サンプリングを無効にするTurning off Adaptive Sampling

Application Insights サービスを追加するときに、メソッド ConfigureServicesStartup.cs ファイル内の ApplicationInsightsServiceOptions を使用して、既定のサンプリング機能を無効にできます。The default sampling feature can be disabled while adding Application Insights service, in the method ConfigureServices, using ApplicationInsightsServiceOptions within the Startup.cs file:

public void ConfigureServices(IServiceCollection services)
{
    // ...

    var aiOptions = new Microsoft.ApplicationInsights.AspNetCore.Extensions.ApplicationInsightsServiceOptions();
    aiOptions.EnableAdaptiveSampling = false;
    services.AddApplicationInsightsTelemetry(aiOptions);
    //...
}

上記のコードによって、サンプリング機能が無効になります。The above code will disable sampling feature. その他のカスタマイズ オプションを使用したサンプリングを追加するには、次の手順に従います。Follow the steps below to add sampling with more customization options.

サンプリング設定を構成するConfigure Sampling settings

サンプリング動作をカスタマイズするには、次に示すように、TelemetryProcessorChainBuilder の拡張メソッドを使用します。Use extension methods of TelemetryProcessorChainBuilder as shown below to customize sampling behavior.

重要

このメソッドを使用して、サンプリングを構成する場合、AddApplicationInsightsTelemetry() で aiOptions.EnableAdaptiveSampling = false; 設定を使用してください。If you use this method to configure sampling, please make sure to use aiOptions.EnableAdaptiveSampling = false; settings with AddApplicationInsightsTelemetry().

public void Configure(IApplicationBuilder app, IHostingEnvironment env, TelemetryConfiguration configuration)
{
    var builder = configuration.TelemetryProcessorChainBuilder;
    // version 2.5.0-beta2 and above should use the following line instead of above. (https://github.com/Microsoft/ApplicationInsights-aspnetcore/blob/develop/CHANGELOG.md#version-250-beta2)
    // var builder = configuration.DefaultTelemetrySink.TelemetryProcessorChainBuilder;

    // Using adaptive sampling
    builder.UseAdaptiveSampling(maxTelemetryItemsPerSecond:5);

    // Alternately, the following configures adaptive sampling with 5 items per second, and also excludes DependencyTelemetry from being subject to sampling.
    // builder.UseAdaptiveSampling(maxTelemetryItemsPerSecond:5, excludedTypes: "Dependency");

    builder.Build();

    // If you have other telemetry processors:
    builder.Use((next) => new AnotherProcessor(next));
    // ...
}

上のメソッドを使用してサンプリングを構成する場合は、AddApplicationInsightsTelemetry() で aiOptions.EnableAdaptiveSampling = false; 設定を使用するようにしてください。If using the above method to configure sampling, make sure to use aiOptions.EnableAdaptiveSampling = false; settings with AddApplicationInsightsTelemetry().

ASP.NET、ASP.NET Core、および Java Web サイトのための固定レート サンプリングFixed-rate sampling for ASP.NET, ASP.NET Core, and Java websites

固定レート サンプリングは、Web サーバーおよび Web ブラウザーから送信されるトラフィックを削減します。Fixed rate sampling reduces the traffic sent from your web server and web browsers. アダプティブ サンプリングとは異なり、管理者によって決定された固定レートでテレメトリを削減します。Unlike adaptive sampling, it reduces telemetry at a fixed rate decided by you. また、クライアントとサーバーのサンプリングが同期されて、関連する項目が維持されます。たとえば、検索でページ ビューを見るとき、それに関連する要求を検索できます。It also synchronizes the client and server sampling so that related items are retained - for example, when you look at a page view in Search, you can find its related request.

他のサンプリング手法と同様に、ここでも関連する項目が保持されます。Like other sampling techniques, this also retains related items. HTTP 要求イベントごとに、要求とそれに関連するイベントがまとめて破棄または転送されます。For each HTTP request event, the request and its related events are either discarded or transmitted together.

メトリックス エクスプローラーでは、要求や例外の数などのレートに係数が乗算されて、サンプリング レートに対してほぼ正しくなるように補正されます。In Metrics Explorer, rates such as request and exception counts are multiplied by a factor to compensate for the sampling rate, so that they are approximately correct.

ASP.NET での固定レート サンプリングの構成Configuring fixed-rate sampling in ASP.NET

  1. アダプティブ サンプリングを無効にする:ApplicationInsights.config で、AdaptiveSamplingTelemetryProcessor ノードを削除するか、コメントにします。Disable adaptive sampling: In ApplicationInsights.config, remove or comment out the AdaptiveSamplingTelemetryProcessor node.

    
    <TelemetryProcessors>
    
    <!-- Disabled adaptive sampling:
      <Add Type="Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.AdaptiveSamplingTelemetryProcessor, Microsoft.AI.ServerTelemetryChannel">
        <MaxTelemetryItemsPerSecond>5</MaxTelemetryItemsPerSecond>
      </Add>
    -->
    
  2. 固定レート サンプリング モジュールを有効にします。Enable the fixed-rate sampling module. 次のスニペットを ApplicationInsights.configに追加します。Add this snippet to ApplicationInsights.config:

    
    <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>
    
    

    代替方法: サーバー コードでの固定レート サンプリングの有効化Alternative: enable fixed-rate sampling in your server code

    .config ファイルでサンプリング パラメーターを設定する代わりに、プログラムでこれらの値を設定できます。Instead of setting the sampling parameter in the .config file, you can programmatically set these values.

C#C#


    using Microsoft.ApplicationInsights.Extensibility;
    using Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel;
    ...

    var builder = TelemetryConfiguration.Active.TelemetryProcessorChainBuilder;
    // If you are on ApplicationInsights SDK v 2.8.0-beta2 or higher, use the following line instead
    // var builder = TelemetryConfiguration.Active.DefaultTelemetrySink.TelemetryProcessorChainBuilder;

    builder.UseSampling(10.0); // percentage

    // If you have other telemetry processors:
    builder.Use((next) => new AnotherProcessor(next));

    builder.Build();

(テレメトリ プロセッサについてはこちらをご覧ください。)(Learn about telemetry processors.)

ASP.NET Core での固定レート サンプリングの構成Configuring fixed-rate sampling in ASP.NET Core

  1. アダプティブ サンプリングを無効にする:ApplicationInsightsServiceOptions を使用して、メソッド ConfigureServices で変更を行うことができます。Disable adaptive sampling: Changes can be made in the method ConfigureServices, using ApplicationInsightsServiceOptions:

    public void ConfigureServices(IServiceCollection services)
    {
    // ...
    
        var aiOptions = new Microsoft.ApplicationInsights.AspNetCore.Extensions.ApplicationInsightsServiceOptions();
        aiOptions.EnableAdaptiveSampling = false;
        services.AddApplicationInsightsTelemetry(aiOptions);
    //...
    }
    
  2. 固定レート サンプリング モジュールを有効にします。Enable the fixed-rate sampling module. 次のスニペットに示すように、メソッド Configure で変更を行うことができます。Changes can be made in the method Configure as shown in below snippet:

    public void Configure(IApplicationBuilder app, IHostingEnvironment env)
    {
        var configuration = app.ApplicationServices.GetService<TelemetryConfiguration>();
    
        var builder = configuration.TelemetryProcessorChainBuilder;
        // version 2.5.0-beta2 and above should use the following line instead of above. (https://github.com/Microsoft/ApplicationInsights-aspnetcore/blob/develop/CHANGELOG.md#version-250-beta2)
        // var builder = configuration.DefaultTelemetrySink.TelemetryProcessorChainBuilder;
    
        // Using fixed rate sampling   
        double fixedSamplingPercentage = 10;
        builder.UseSampling(fixedSamplingPercentage);
    
        builder.Build();
    
        // ...
    }
    
    

Java での固定レート サンプリングの構成Configuring fixed-rate sampling in JAVA

  1. 最新の Application Insights Java SDK を使用して Web アプリケーションをダウンロードして構成するDownload and configure your web application with latest application insights java SDK

  2. ApplicationInsights.xml ファイルに次のスニペットを追加することによって、固定レート サンプリング モジュールを有効にしますEnable the fixed-rate sampling module by adding the following snippet to ApplicationInsights.xml file.

        <TelemetryProcessors>
            <BuiltInProcessors>
                <Processor type = "FixedRateSamplingTelemetryProcessor">
                    <!-- 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) -->
                    <Add name = "SamplingPercentage" value = "50" />
                </Processor>
            </BuiltInProcessors>
        </TelemetryProcessors>
    
  3. プロセッサ タグ "FixedRateSamplingTelemetryProcessor" 内の次のタグを使用して、特定の種類のテレメトリをサンプリングに含めたり、サンプリングから除外したりできます。You can Include or Exclude specific types of telemetry from Sampling using the following tags inside the Processor tag "FixedRateSamplingTelemetryProcessor"

        <ExcludedTypes>
            <ExcludedType>Request</ExcludedType>
        </ExcludedTypes>
    
        <IncludedTypes>
            <IncludedType>Exception</IncludedType>
        </IncludedTypes>
    

サンプリングに含めたり、サンプリングから除外したりできるテレメトリの種類は、依存関係、イベント、例外、ページビュー、要求、およびトレースです。The telemetry types that can be included or excluded from sampling are: Dependency, Event, Exception, PageView, Request, and Trace.

注意

サンプリング率には、N を整数として 100/N に近い割合を選択します。For the sampling percentage, choose a percentage that is close to 100/N where N is an integer. サンプリングでは現在、その他の値はサポートされていません。Currently sampling doesn't support other values.

インジェスト サンプリングIngestion sampling

この形式のサンプリングは、Web サーバー、ブラウザー、デバイスからのテレメトリが Application Insights サービス エンドポイントに到達した場所で動作します。This form of sampling operates at the point where the telemetry from your web server, browsers, and devices reaches the Application Insights service endpoint. アプリから送信されるテレメトリ トラフィックを削減することはありませんが、Application Insights によって処理および維持 (そして課金) される量を削減します。Although it doesn't reduce the telemetry traffic sent from your app, it does reduce the amount processed and retained (and charged for) by Application Insights.

アプリが頻繁に月間クォータを超えて、SDK ベースのいずれかのサンプリング種類を使用するオプションがない場合は、この種類のサンプリングを使用します。Use this type of sampling if your app often goes over its monthly quota and you don't have the option of using either of the SDK-based types of sampling.

[使用量と推定コスト] ページで、サンプリング レートを設定します。Set the sampling rate in the Usage and estimated costs page:

アプリケーションの [概要] ブレードで、[設定]、[クォータ]、[サンプル] の順にクリックし、サンプリング レートを選択して、[更新] をクリックします。

他のサンプリング種類と同様に、このアルゴリズムは関連するテレメトリ項目を維持します。Like other types of sampling, the algorithm retains related telemetry items. たとえば、検索でテレメトリを調べているときは、特定の例外に関連する要求を検索できます。For example, when you're inspecting the telemetry in Search, you'll be able to find the request related to a particular exception. メトリックはそのような要求のレートをカウントし、例外レートを正しく維持します。Metric counts such as request rate and exception rate are correctly retained.

サンプリングによって破棄されたデータ ポイントは、 連続エクスポートなどの Application Insights の機能では使用できません。Data points that are discarded by sampling are not available in any Application Insights feature such as Continuous Export.

SDK ベースのアダプティブ サンプリングまたは固定レート サンプリングの実行中は、インジェスト サンプリングは動作しません。Ingestion sampling doesn't operate while SDK-based adaptive or fixed-rate sampling is in operation. アダプティブ サンプリングは、Visual Studio で ASP.NET/ASP.NET Core SDK が有効になったときに既定で有効になるか、あるいは Azure Web アプリ拡張機能で、または Status Monitor を使用して有効になります。そのとき、インジェスト サンプリングは無効になります。Adaptive sampling is enabled by default when ASP.NET/ASP.NET Core SDK is enabled in Visual Studio or enabled in Azure Web App extensions or by using Status Monitor, and ingestion sampling is disabled. SDK でのサンプリング レートが 100% 未満である (つまり、If the sampling rate at the SDK is less than 100% (i.e 項目がサンプリングされている) 場合、設定したインジェスト サンプリング レートは無視されます。items are being sampled) then the ingestion sampling rate that you set is ignored.

警告

タイルに表示される値は、インジェスト サンプリングに設定した値を示します。The value shown on the tile indicates the value that you set for ingestion sampling. SDK サンプリングの実行中は、この値は実際のサンプリング レートを表しません。It doesn't represent the actual sampling rate if SDK sampling is in operation.

JavaScript を使用した Web ページのサンプリングSampling for web pages with JavaScript

任意のサーバーから固定レートのサンプリング用に Web ページを構成できます。You can configure web pages for fixed-rate sampling from any server.

Application Insights 用に Web ページを構成する場合は、Application Insights ポータルから JavaScript スニペットを入手して、それを変更しますWhen you configure the web pages for Application Insights, modify the JavaScript snippet that you get from the Application Insights portal. (通常、ASP.NET アプリでは _Layout.cshtml を利用できます)。samplingPercentage: 10, のような行をインストルメンテーション キーの前に挿入します。(In ASP.NET apps, the snippet typically goes in _Layout.cshtml.) Insert a line like samplingPercentage: 10, before the instrumentation key:

<script>
var appInsights= ... 
}({ 


// Value must be 100/N where N is an integer.
// Valid examples: 50, 25, 20, 10, 5, 1, 0.1, ...
samplingPercentage: 10, 

instrumentationKey:...
}); 

window.appInsights=appInsights; 
appInsights.trackPageView(); 
</script> 

サンプリング率には、N を整数として 100/N に近い割合を選択します。For the sampling percentage, choose a percentage that is close to 100/N where N is an integer. サンプリングでは現在、その他の値はサポートされていません。Currently sampling doesn't support other values.

サーバーでも固定レート サンプリングを有効にしている場合は、クライアントとサーバーはサンプリングを同期するので、検索で関連のあるページ ビューと要求の間を移動できます。If you also enable fixed-rate sampling at the server, the clients and server will synchronize so that, in Search, you can navigate between related page views and requests.

サンプリングを使用する場合When to use sampling?

最新の .NET および .NET Core SDK では、アダプティブ サンプリングが自動的に有効になります。Adaptive sampling is automatically enabled in latest .NET and .NET Core SDKs. 使っている SDK のバージョンにかかわらず、インジェスト サンプリングを有効にして、収集されたデータを Application Insights でサンプリングできます。Regardless of which version of the SDK you use, you can enable ingestion sampling to allow Application Insights to sample the collected data.

Java SDK では、既定ではどのサンプリングも有効になっていません。By default no sampling is enabled in Java SDK. 現在、固定レート サンプリングのみがサポートされています。Currently, it only supports Fixed Rate Sampling. Java SDK では、アダプティブ サンプリングはサポートされていません。Adaptive Sampling is not supported in Java SDK.

一般に、ほとんどの中小規模アプリケーションでは、サンプリングは不要です。In general, for most small and medium size applications you don’t need sampling. 最も役立つ診断情報や最も正確な統計は、すべてのユーザー アクティビティからデータを収集することで入手します。The most useful diagnostic information and most accurate statistics are obtained by collecting data on all your user activities.

サンプリングの主な利点:The main advantages of sampling are:

  • アプリが短期間に非常に高いレートのテレメトリを送信すると、Application Insights サービスがデータ ポイントを削減 ("スロットル") する。Application Insights service drops ("throttles") data points when your app sends a very high rate of telemetry in short time interval.
  • データ ポイントを、価格レベルの クォータ 以内に抑える。To keep within the quota of data points for your pricing tier.
  • テレメトリの収集によるネットワーク トラフィックを削減する。To reduce network traffic from the collection of telemetry.

使用する必要があるサンプリングの種類Which type of sampling should I use?

次の場合はインジェスト サンプリングを使用します。Use ingestion sampling if:

  • テレメトリの月間クォータを超えることが多い場合。You often go through your monthly quota of telemetry.
  • サンプリングをサポートしていない SDK のバージョン (たとえば、2 より前の ASP.NET バージョン) を使用している場合。You're using a version of the SDK that doesn't support sampling - for example ASP.NET versions earlier than 2.
  • ユーザーの Web ブラウザーから取得するテレメトリが多すぎる場合。You're getting too much telemetry from your users' web browsers.

次の場合は固定レート サンプリングを使用します。Use fixed-rate sampling if:

  • ASP.NET Web サービス バージョン 2.0.0 以降または Java SDK v2.0.1 以降の Application Insights SDK を使用している場合。You're using the Application Insights SDK for ASP.NET web services version 2.0.0 or later or Java SDK v2.0.1 or later, and
  • クライアントとサーバーのサンプリングを同期する場合。検索でイベントを調査するときに、クライアントとサーバーの関連するイベント単位 (ページ ビュー、HTTP 要求など) で操作できます。You want synchronized sampling between client and server, so that, when you're investigating events in Search, you can navigate between related events on the client and server, such as page views and http requests.
  • アプリに適したサンプリング率を確保する場合。You are confident of the appropriate sampling percentage for your app. 正確なメトリックを取得できる程度に高く、価格クォータとスロットル制限を超えないレートにする必要があります。It should be high enough to get accurate metrics, but below the rate that exceeds your pricing quota and the throttling limits.

アダプティブ サンプリングを使用する場合。Use adaptive sampling:

他の形式のサンプリングを使う条件に当てはまらない場合は、アダプティブ サンプリングをお勧めします。If the conditions to use the other forms of sampling do not apply, we recommend adaptive sampling. この設定は、ASP.NET/ASP.NET Core サーバー SDK で既定で有効になります。This setting is enabled by default in the ASP.NET/ASP.NET Core server SDK. 一定の最小レートに達するまでトラフィックは減らないので、使用頻度の低いサイトは影響を受けません。It will not reduce traffic until a certain minimum rate is reached, therefore, low-use sites will not be affected.

サンプリングが実行中かどうかを知る方法How do I know whether sampling is in operation?

適用されている場所に関係なく、実際のサンプリング レートを検出するには、次のように Analytics クエリ を使用します。To discover the actual sampling rate no matter where it has been applied, use an Analytics query such as this:

union requests,dependencies,pageViews,browserTimings,exceptions,traces
| where timestamp > ago(1d)
| summarize RetainedPercentage = 100/avg(itemCount) by bin(timestamp, 1h), itemType

いずれかの種類の RetainedPercentage が 100 未満である場合、その項目はサンプリングされています。If RetainedPercentage for any type is less than 100, then that item is being sampled.

Application Insights は、上で説明したどのサンプリング手法でも、セッション、メトリック、およびパフォーマンス カウンターのテレメトリの種類をサンプリングしません。これらのテレメトリの種類では精度の低下が非常に好ましくないため、これらの種類は常にサンプリングから除外されますApplication Insights does not sample session, metrics and performance counters telemetry types in any sampling techniques described above. These types are always excluded from sampling as reduction in precision can be highly undesirable for these telemetry types

サンプリングのしくみHow does sampling work?

ASP.NET バージョン 2.0.0 以降および Java SDK バージョン 2.0.1 以降の SDK の固定レート サンプリング機能。Fixed-rate sampling feature of the SDK in ASP.NET versions from 2.0.0 and Java SDK version 2.0.1 and onwards. アダプティブ サンプリングは、ASP.NET バージョン 2.0.0 以降の SDK の機能です。Adaptive sampling is a feature of SDK in ASP.NET versions from 2.0.0 onwards. インジェスト サンプリングは Application Insights サービスの機能であり、SDK がサンプリングを実行していない場合に有効になります。Ingestion sampling is a feature of the Application Insights service, and can be in operation if the SDK is not performing sampling.

サンプリング アルゴリズムでは、削除するテレメトリ項目と、保持するテレメトリ項目を決定します (SDK または Application Insights サービスのいずれで動作しているかに関係なく)。The sampling algorithm decides which telemetry items to drop, and which ones to keep (whether it's in the SDK or in the Application Insights service). サンプリングはいくつかのルールに基づいて決定されますが、このルールのねらいは、削減されたデータ セットを使用する場合でも、Application Insights の診断機能を実用的で信頼性の高いものに維持しながら、すべての相互に関連するデータ ポイントはそのままの状態で保持することです。The sampling decision is based on several rules that aim to preserve all interrelated data points intact, maintaining a diagnostic experience in Application Insights that is actionable and reliable even with a reduced data set. たとえば、失敗した要求に対してアプリが追加のテレメトリ項目 (この要求からログに記録された例外やトレースなど) を送信した場合、サンプリングでは、この要求とその他のテレメトリを分割することはありません。For example, if for a failed request your app sends additional telemetry items (such as exception and traces logged from this request), sampling will not split this request and other telemetry. すべてをまとめて維持するか、削除するかのどちらかです。It either keeps or drops them all together. そのため、Application Insights で要求の詳細を表示する場合は、その要求に加えて、関連付けられているテレメトリ項目も常に表示されます。As a result, when you look at the request details in Application Insights, you can always see the request along with its associated telemetry items.

サンプリングの判定は、要求の操作 ID に基づいています。つまり、特定の操作に属するすべてのテレメトリ項目が保持されるか、または破棄されるかのどちらかです。The sampling decision is based on the operation ID of the request, which means that all telemetry items belonging to a particular operation is either preserved or dropped. 操作 ID が設定されていないテレメトリ項目 (たとえば、HTTP コンテキストのない非同期スレッドから報告されたテレメトリ項目) の場合、サンプリングでは単純に各種類のテレメトリ項目の一定の割合をキャプチャします。For the telemetry items that do not have operation ID set (for example telemetry items reported from asynchronous threads with no http context) sampling simply captures a percentage of telemetry items of each type. .NET SDK の 2.5.0-beta2 および ASP.NET Core SDK の 2.2.0-beta3 より前では、サンプリングの判定は、"ユーザー" を定義するアプリケーション (つまり、最も一般的な Web アプリケーション) のユーザー ID のハッシュに基づいていました。Prior to 2.5.0-beta2 of .NET SDK, and 2.2.0-beta3 of ASP.NET Core SDK, the sampling decision was based on the hash of the user ID for applications that define "user" (that is, most typical web applications). ユーザーを定義しない種類のアプリケーション (Web サービスなど) の場合、サンプリングの判定は要求の操作 ID に基づいていました。For the types of applications that didn't define users (such as web services) the sampling decision was based on the operation ID of the request.

テレメトリを表示する場合、Application Insights サービスは、不足しているデータ ポイントを補正するために、収集時に使用したものと同じサンプリング率でメトリックを調整します。When presenting telemetry back to you, the Application Insights service adjusts the metrics by the same sampling percentage that was used at the time of collection, to compensate for the missing data points. そのため、Application Insights でテレメトリを表示する場合、ユーザーは統計的に正しく、実際の数値に非常に近い近似値を見ていることになります。Hence, when looking at the telemetry in Application Insights, the users are seeing statistically correct approximations that are very close to the real numbers.

近似精度は、構成したサンプリング率に大きく左右されます。The accuracy of the approximation largely depends on the configured sampling percentage. また、多数のユーザーからの同じような要求を大量に処理するアプリケーションの場合は、近似精度が高くなります。Also, the accuracy increases for applications that handle a large volume of generally similar requests from lots of users. 一方で、処理量が膨大ではないアプリケーションの場合、通常はクォータの範囲内ですべてのテレメトリを送信でき、スロットルによるデータの損失もないため、サンプリングは必要ありません。On the other hand, for applications that don't work with a significant load, sampling is not needed as these applications can usually send all their telemetry while staying within the quota, without causing data loss from throttling.

警告

Application Insights は、メトリックとセッションのテレメトリの種類をサンプリングしません。Application Insights does not sample metrics and sessions telemetry types. このようなテレメトリの種類では、精度の低下は望ましくありません。Reduction in the precision can be highly undesirable for these telemetry types.

アダプティブ サンプリングAdaptive sampling

アダプティブ サンプリングの場合、SDK からの現在の転送速度を監視し、目標最大レート以下になるようにサンプリング率を調整するコンポーネントが追加されます。Adaptive sampling adds a component that monitors the current rate of transmission from the SDK, and adjusts the sampling percentage to try to stay within the target maximum rate. 調整は、定期的に、送信レートの移動平均に基づいて再計算されます。The adjustment is recalculated at regular intervals, and is based on a moving average of the outgoing transmission rate.

サンプリングと JavaScript SDKSampling and the JavaScript SDK

固定レート サンプリングでは、クライアント側 (JavaScript) SDK とサーバー側 SDK を組み合わせて使用します。The client-side (JavaScript) SDK participates in fixed-rate sampling in conjunction with the server-side SDK. SDK が追加されたページは、サーバー側が "サンプリングに入れる" と判断したユーザーと同じユーザーからのクライアント側テレメトリのみを送信します。The instrumented pages will only send client-side telemetry from the same users for which the server-side made its decision to "sample in." これは、クライアント側とサーバー側の間でユーザー セッションの整合性を維持するためのロジックです。This logic is designed to maintain integrity of user session across client- and server-sides. その結果、Application Insights 内の特定のテレメトリ項目から、このユーザーまたはセッションに関するその他すべてのテレメトリ項目を見つけることができます。As a result, from any particular telemetry item in Application Insights you can find all other telemetry items for this user or session.

"クライアント側とサーバー側のテレメトリに、前述されているような調整済みのサンプルが表示されない場合。"My client and server-side telemetry don't show coordinated samples as you describe above.

  • サーバーとクライアントの両方で固定レート サンプリングを有効にしていることを確認してください。Verify that you enabled fixed-rate sampling both on server and client.
  • SDK のバージョンが 2.0 以降であることを確認してください。Make sure that the SDK version is 2.0 or above.
  • クライアントとサーバーの両方で同じサンプリング率を設定していることを確認してください。Check that you set the same sampling percentage in both the client and server.

よく寄せられる質問Frequently Asked Questions

ASP.NET および ASP.NET Core SDK での既定のサンプリング動作はどのようなものですかWhat is the default sampling behavior in ASP.NET and ASP.NET Core SDK?

  • 上の SDK の最新バージョンのいずれかを使用している場合は、1 秒あたり 5 つのテレメトリ項目のアダプティブ サンプリングが既定で有効になります。If you are using one of the latest versions of the above SDK, Adaptive Sampling is enabled by default with five telemetry items per second. 既定では 2 つの AdaptiveSamplingTelemetryProcessor が追加され、その 1 つがサンプリングにイベントの種類を含め、もう一方がサンプリングからイベントの種類を除外します。There are 2 AdaptiveSamplingTelemetryProcessors added by default, and one includes Event type in sampling, and the other excludes Event type from sampling. この構成は、SDK がテレメトリ項目をイベントの種類の 5 つのテレメトリ項目と、その他のすべての種類の組み合わせの 5 つのテレメトリ項目に制限することにより、イベントが確実に他のテレメトリの種類とは別にサンプリングされるようにしようと試みることを示します。This configuration means that the SDK will try to limit telemetry items to five telemetry items of Event types, and five telemetry items of all other types combined, thereby ensuring that Events are sampled separately from other Telemetry types. イベントは通常、ビジネス テレメトリに使用されるため、多くの場合、診断テレメトリの量によって影響を受けないようにする必要があります。Events are typically used for business telemetry, and most likely should not be affected by diagnostic telemetry volumes.

    生成される既定の ApplicationInsights.Config ファイルを次に示します。The following shows the default ApplicationInsights.Config file generated. 前に説明したように、2 つの個別の AdaptiveSamplingTelemetryProcessor ノードが追加され、その 1 つがイベントの種類を除外し、もう一方がそれを含めます。As described, there are two separate AdaptiveSamplingTelemetryProcessor nodes added, one excluding Event types, and another including it. ASP.NET Core では、まったく同じ既定の動作がコードで有効になります。In ASP.NET Core, exact same default behavior is enabled in code. この既定の動作を変更するには、このドキュメントの前のセクションの例を使用します。Use the examples in the earlier section of the document to change this default behavior.

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

テレメトリを複数回サンプリングできますかCan telemetry be sampled more than once?

  • いいえ。No. ある項目が既にサンプリングされている場合、SamplingTelemetryProcessor はサンプリングの検討からその項目を無視します。SamplingTelemetryProcessors ignore items from sampling considerations if the item is already sampled. 同じことがインジェスト サンプリングにも当てはまります。これにより、SDK 自体で既にサンプリングされている項目にはサンプリングが適用されません。The same is true for Ingestion sampling as well, which won't apply sampling to those items already sampled in the SDK itself.'

サンプリングを、"各テレメトリ タイプの X% を収集" という単純な方法にしないのはなぜですか。Why isn't sampling a simple "collect X percent of each telemetry type"?

  • このサンプリング方法ではメトリックの近似での高レベルの精度が提供されますが、診断にとって重要な、ユーザー、セッション、および要求ごとに診断データを関連付ける機能が使用できなくなります。While this sampling approach would provide with a high level of precision in metric approximations, it would break ability to correlate diagnostic data per user, session, and request, which is critical for diagnostics. そのため、サンプリングには "アプリ ユーザーの X% に関するすべてのテレメトリ項目を収集"、または "アプリ要求の X% に関するすべてのテレメトリを収集" というロジックが適しています。Therefore, sampling works better with "collect all telemetry items for X percent of app users", or "collect all telemetry for X percent of app requests" logic. 要求に関連付けられていないテレメトリ項目 (バックグラウンドの非同期処理など) の場合、フォールバックは "テレメトリの種類ごとにすべての項目の X % を収集する" ことです。For the telemetry items not associated with the requests (such as background asynchronous processing), the fallback is to "collect X percent of all items for each telemetry type."

サンプリング率は、時間経過に伴い変化する可能性がありますか。Can the sampling percentage change over time?

  • はい。アダプティブ サンプリングの場合、現在監視されているテレメトリのデータ量に基づいて、サンプリング率が徐々に変化します。Yes, adaptive sampling gradually changes the sampling percentage, based on the currently observed volume of the telemetry.

固定レート サンプリング率を使用している場合、自分のアプリに最適なサンプリング率は、どのようにして確認できますか。If I use fixed-rate sampling, how do I know which sampling percentage will work the best for my app?

  • 1 つの方法として、アダプティブ サンプリングから始め、決定されたレートを確認したら (前の質問を参照)、そのレートを使って固定レート サンプリングに切り替えます。One way is to start with adaptive sampling, find out what rate it settles on (see the above question), and then switch to fixed-rate sampling using that rate.

    それ以外では、推測するしかありません。Otherwise, you have to guess. Application Insights での現在のテレメトリ使用状況を分析し、発生しているスロットルを観察して、収集されるテレメトリの量を見積もります。Analyze your current telemetry usage in Application Insights, observe any throttling that is occurring, and estimate the volume of the collected telemetry. この 3 つの情報に、選択した価格レベルを合わせて考えると、収集されるテレメトリの量をどれくらい削減すればよいかがわかります。These three inputs, together with your selected pricing tier, suggest how much you might want to reduce the volume of the collected telemetry. ただし、ユーザー数の増加やテレメトリ量の何らかの変化によって、見積りが無効になることがあります。However, an increase in the number of your users or some other shift in the volume of telemetry might invalidate your estimate.

サンプリング率を低く構成しすぎると、どうなりますか。What happens if I configure sampling percentage too low?

  • Application Insights がデータ量の減少に関してデータの視覚化を補正しようとしている場合、極端に低いサンプリング率 (過度にアグレッシブなサンプリング) は、近似精度の低下につながります。Excessively low sampling percentage (over-aggressive sampling) reduces the accuracy of the approximations, when Application Insights attempts to compensate the visualization of the data for the data volume reduction. また、低頻度の失敗や遅い要求の一部はサンプリングから除外される場合があるため、診断機能に悪影響を及ぼす可能性もあります。Also, diagnostic experience might be negatively impacted, as some of the infrequently failing or slow requests may be sampled out.

サンプリング率を高く構成しすぎると、どうなりますか。What happens if I configure sampling percentage too high?

  • サンプリング率を高く構成しすぎた (十分にアグレッシブでない) 場合は、収集されるテレメトリの量が十分に減少しないことになります。Configuring too high sampling percentage (not aggressive enough) results in an insufficient reduction in the volume of the collected telemetry. スロットルに関連するテレメトリ データが失われる可能性が残り、超過料金によって Application Insights の使用コストが予定額を超える場合もあります。You may still experience telemetry data loss related to throttling, and the cost of using Application Insights might be higher than you planned due to overage charges.

サンプリングはどのようなプラットフォームで使用できますか。On what platforms can I use sampling?

  • インジェスト サンプリングは、SDK がサンプリングを実行していない場合に任意のテレメトリが特定の量を超えると、自動的に実行される場合があります。Ingestion sampling can occur automatically for any telemetry above a certain volume, if the SDK is not performing sampling. この構成は、たとえば、古いバージョンの ASP.NET SDK または以前のバージョンの Java SDK (1.0.10 以前) を使用している場合に機能します。This configuration would work, for example, if you are using an older version of the ASP.NET SDK or previous version of Java SDK(1.0.10 or before).
  • ASP.NET SDK バージョン 2.0.0 以上または ASP.NET Core SDK バージョン 2.2.0 以上 (Azure または独自のサーバーのどちらかでホストされている) を使用している場合、既定ではアダプティブ サンプリングが得られますが、上で説明されているように固定レートに切り替えることができます。If you're using ASP.NET SDK versions 2.0.0 and above or ASP.NET CORE SDK version 2.2.0 and above (hosted either in Azure or on your own server), you get adaptive sampling by default, but you can switch to fixed-rate as described above. 固定レート サンプリングの場合、ブラウザー SDK は自動的にサンプル関連のイベントに同期します。With fixed-rate sampling, the browser SDK automatically synchronizes to sample related events.
  • Java SDK バージョン 2.0.1 以降を使用している場合は、固定レート サンプリングを有効にするように ApplicationInsights.xml を構成できます。If you're using Java SDK version 2.0.1 or above, you can configure ApplicationInsights.xml to turn on Fixed Rate Sampling. サンプリングは、既定で無効になっています。Sampling is turned off by default. 固定レート サンプリングの場合、ブラウザー SDK は自動的にサンプル関連のイベントに同期します。With fixed-rate sampling, the browser SDK automatically synchronizes to sample related events.

常に確認したい頻度の低いイベントがあります。サンプリング モジュールを使わずに確認するにはどうすればよいですか。There are certain rare events I always want to see. How can I get them past the sampling module?

  • これを実現する最善の方法は、次に示すように、保持したいテレメトリ項目で SamplingPercentage を 100 に設定するカスタムの TelemetryProcessor を記述することです。The best way to achieve this is to write a custom TelemetryProcessor, which sets the SamplingPercentage to 100 on the telemetry item you want retained, as shown below. これにより、すべてのサンプリング手法で、任意のサンプリングに関する考慮事項からこの項目が無視されるようになります。This ensures that all sampling techniques will ignore this item from any sampling considerations.
    if(somecondition)
    {
        ((ISupportSampling)item).SamplingPercentage = 100;
    }

次の手順Next steps