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

.NET控制台应用中Adaptive Sampling默认状态咨询

.NET控制台手动配置Application Insights的自适应采样状态及禁用方法

自适应采样默认状态

当你通过手动创建TelemetryConfiguration和TelemetryClient的方式使用Application Insights时,自适应采样默认是关闭的。

ASP.NET Core或Worker Service中默认开启自适应采样,是因为对应的SDK集成包在初始化时会自动向TelemetryConfiguration的处理器链中添加自适应采样处理器。而手动配置的场景下,这个默认的处理器链不会包含采样相关组件,所有遥测数据都会被完整发送到Azure。

如何确保完全禁用采样(记录所有日志)

虽然默认关闭,但为了避免后续依赖变更或版本更新带来的意外采样,建议手动明确配置以强制记录所有遥测:

方法1:移除所有采样处理器

遍历并移除配置中所有的采样处理器工厂,确保没有任何采样逻辑生效:

// 创建默认配置
var telemetryConfig = TelemetryConfiguration.CreateDefault();

// 移除所有采样处理器工厂
telemetryConfig.TelemetryProcessorChainBuilder.ProcessorFactories
    .RemoveAll(factory => factory is SamplingTelemetryProcessorFactory);

// 构建处理器链
telemetryConfig.TelemetryProcessorChainBuilder.Build();

// 创建TelemetryClient并添加自定义初始化器
var telemetryClient = new TelemetryClient(telemetryConfig);
telemetryClient.TelemetryInitializers.Add(new CustomTelemetryInitializer());

方法2:强制设置100%采样率

直接配置采样率为100%,确保所有数据都被保留:

var telemetryConfig = TelemetryConfiguration.CreateDefault();

// 配置采样率为100%
var samplingSettings = new SamplingPercentageEstimatorSettings
{
    InitialSamplingPercentage = 100
};
telemetryConfig.TelemetryProcessorChainBuilder.UseSampling(samplingSettings);

telemetryConfig.TelemetryProcessorChainBuilder.Build();

var telemetryClient = new TelemetryClient(telemetryConfig);
telemetryClient.TelemetryInitializers.Add(new CustomTelemetryInitializer());

这两种方法都能确保你的控制台应用发送所有日志到Application Insights,不会有采样丢弃的情况。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 12:27:37