Application Insights 数据采样
Posted
技术标签:
【中文标题】Application Insights 数据采样【英文标题】:Application Insights data sampling 【发布时间】:2018-07-04 14:56:46 【问题描述】:我有一个与 Application Insights 链接的 Azure 函数。我登录了 AppInsights 几个业务数据,我可以在短时间内运行我的函数的很多实例。
我阅读了documentation of Data Sampling in AppInsights,我想知道:我会因为这种数据采样算法而丢失数据吗?
【问题讨论】:
【参考方案1】:我想知道我是否会因为这种数据采样算法而丢失数据? -> 是的,这就是采样的重点:
抽样保留 n 条记录中的 1 条,丢弃其余记录。例如,它可能会保留 5 个事件中的 1 个,采样率为 20%。
如果所有数据对于您的日志记录/分析目的都至关重要,则不应应用抽样,或至少限制抽样。
您的问题的链接中应该有足够的材料来告诉您如何启用/禁用采样以及如何检查它当前是否适用。
请注意,默认情况下不会对指标进行抽样:
Application Insights 不会对指标和会话遥测类型进行抽样
【讨论】:
在我的 App Insight 配置中,我有以下设置:“选择 Application Insights 服务将使用摄取采样保留从您的应用接收到的数据的比例:所有数据 (100%)”,这意味着如果我是对的,我永远不会丢失任何数据,对吧?【参考方案2】:关于 Azure Functions 的 App Insights 采样from the docs:
“Application Insights 有一个采样功能,可以保护您免受 在峰值负载时产生过多的遥测数据。当。。。的时候 遥测项目数超过指定速率,应用程序 Insights 开始随机忽略一些传入的项目。这 每秒最大项目数的默认设置为 5。您可以 在 host.json 中配置采样。”
您可以使用 host.json 配置或禁用采样
"applicationInsights":
"sampling":
"isEnabled": true,
"maxTelemetryItemsPerSecond" : 5
如果日志非常关键,还需要考虑aggregation process,这可能导致re-cycles中丢失trace等。
HTH
【讨论】:
以上是关于Application Insights 数据采样的主要内容,如果未能解决你的问题,请参考以下文章
Azure Application Insights 不显示数据
Application Insights - 没有“进程 cpu”的数据