【Application Insights】采样率对Function App日志收集的影响和解决方法

📅 2026/7/5 18:37:25
【Application Insights】采样率对Function App日志收集的影响和解决方法
如何来判断真实的情况呢是否真的是采样率导致了日志数据的不完整呢具体的检查方法是在Application Insights 的门户上进入Logs 页面执行如下语句来查看采样百分比union requests,dependencies,pageViews,browserTimings,exceptions,traces | where timestamp ago(1d) | summarize RetainedPercentage 100/avg(itemCount) by bin(timestamp, 1h), itemTypeRetainedPercentage 100 则表示该类型的数据在统计周期中执行了采样日志数据收集并不完整实际效果图RetainedPercentage 的解释RetainedPercentage含义 100未采样数据完整 100该时间窗口内发生了采样数据不完整。比如第一个红圈中 Trace只收集了50%的数据 Exception 只收集了68.72%的数据itemCount 的解释采样SamplingSDK 在客户端按比例随机丢弃部分遥测数据仅上报代表性的样本。itemCount每一条上报的遥测记录都会带这个字段表示「这条样本背后实际代表了多少条原始记录」。itemCount 1未采样1 条记录就是 1 次真实调用itemCount 10采样了这一条记录其实代表了 10 次原始调用其余 9 次被丢弃。聚合统计时如count()、sum()需要按itemCount加权否则数字会偏低。解决方法是的可以避免采样情况的发生。对于Request和Exception等关键的日志数据需要100%收集就可以修改Function App的 host.json 配置来实现。{ version: 2.0, logging: { applicationInsights: { samplingSettings: { isEnabled: true, maxTelemetryItemsPerSecond: 20, excludedTypes: Request;Exception } } } }要点说明isEnabled: true保留对traces/dependencies等高频数据的采样控制成本excludedTypes用分号分隔可选值包括Request/Exception/Trace/Dependency/PageView/Event也可以通过maxTelemetryItemsPerSecond调整阈值而不是一刀切关掉。操作截图