关于Application Insights采样机制的疑问及日志缺失排查
Application Insights 采样相关问题解答
疑问1:采样是针对相同消息还是所有消息?
自适应采样的限制是针对所有符合采样规则的遥测项,和消息内容是否重复无关。你配置的maxTelemetryItemsPerSecond: 5,意思是每秒最多保留5条被纳入采样范围的遥测数据(这里是除了Request、Exception之外的类型,包括你的traces日志),超出这个数量的遥测会被随机丢弃,不管日志内容是否相同。
疑问2:日志缺失是否由采样配置导致?如何调整配置?
你的日志缺失大概率是当前采样配置导致的。虽然你在AddApplicationInsightsTelemetry里设置了EnableAdaptiveSampling = false,但手动通过telemetryProcessorChainBuilder.UseAdaptiveSampling添加的采样处理器依然会生效,traces属于被采样的范围,当每秒生成的traces数量超过5条时,超出部分会被丢弃。
如果只记录必要日志,可根据实际情况调整:
- 若日志量始终可控(远低于每秒5条),可以保留采样规则,调高
maxTelemetryItemsPerSecond的阈值(比如设为20、50等符合你业务日志量的数值) - 若需要确保所有必要日志都被完整收集,直接关闭客户端采样:删除代码中
telemetryProcessorChainBuilder.UseAdaptiveSampling(...)这一段配置即可,因为你Azure端已经设置为100%采样,不会再有采样导致的日志丢失。
内容的提问来源于stack exchange,提问作者Katarina
相关产品推荐
相关产品推荐

