You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ApplicationInsights自适应采样(Adaptive Sampling)无法正常工作求助

Application Insights Adaptive Sampling Not Working (All Events Show itemCount=1)

Hey, I’ve run into this exact sampling issue with App Insights before—let’s break down what’s going wrong and how to fix it.

What’s Happening

You set up adaptive sampling to cap telemetry at 1 item per second, but when you send 500 SampledThingHappened events (with a 1-second delay every 100 events), all 500 show up individually with itemCount=1. No merged events, so your query for itemCount > 1 returns nothing.

The Root Cause

Looking at your code order, here’s the critical problem: you created the TelemetryClient before building the sampling processor chain. When you instantiate a TelemetryClient, it locks in the current state of the telemetry processor chain. Any changes you make to the chain after creating the client won’t apply to that existing client instance.

The Fix: Reorder Your Code

Just swap the sequence—build the sampling processor first, then create the TelemetryClient:

// First, set up configuration and sampling logic
TelemetryConfiguration configuration = TelemetryConfiguration.CreateDefault();
configuration.InstrumentationKey = "f7968b3b-b5ac-4e00-a6d9-f4915e5c5d32";

// Build the sampling processor chain BEFORE creating the client
var builder = configuration.DefaultTelemetrySink.TelemetryProcessorChainBuilder;
builder.UseAdaptiveSampling(maxTelemetryItemsPerSecond: 1);
builder.Build();

// Now create the TelemetryClient with the updated configuration
telemetryClientTest = new TelemetryClient(configuration);

// Then send your events
for(var i = 0; i < 500; i++) {
    telemetryClientTest.TrackEvent("SampledThingHappened");
    if(i % 100 == 0) await Task.Delay(1000);
}

Extra Checks If It Still Doesn’t Work

If adjusting the order doesn’t fix it, try these troubleshooting steps:

  • Verify processor order: If you have other telemetry processors configured, make sure the sampling processor is near the start of the chain. Other processors might filter events before sampling logic can kick in.
  • Tweak the sampling threshold: Your current setting is 1 item per second. Since you’re sending 100 events in quick bursts every second, that should trigger sampling, but try lowering it to 0.5 to make it more aggressive and test if merging starts working.
  • Update your SDK: Old versions of the Application Insights SDK had bugs with sampling behavior. Ensure you’re using at least version 2.15.0 of Microsoft.ApplicationInsights.

Expected Outcome After Fixing

Once you reorder the code, you’ll start seeing SampledThingHappened events with itemCount values greater than 1. The batches of 100 events will be merged according to your sampling rate, instead of being logged individually.

内容的提问来源于stack exchange,提问作者Mike Christensen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.09 12:47:38