Application Insights 包括自定义采样器,并与 OpenTelemetry 集成,以减少遥测量、降低成本并保留你关心的诊断数据。
重要
有关使用 Application Insights 经典 API 软件开发工具包(SDK)时采样的信息,请参阅 经典 API 采样。
先决条件
在继续之前,请确保具备:
- 基本了解 数据收集 方法。
- 对 OpenTelemetry 采样概念的基本理解。
- 使用 OpenTelemetry 检测的应用程序。
为什么采样很重要
采样对于生成大量遥测的应用程序至关重要。 如果不进行数据采样,过量数据引入可能会导致存储和处理成本增加,并导致 Application Insights 限制遥测数据。 有效的采样可保留足够的数据,以便进行有意义的诊断,同时控制成本。
默认情况下,Application Insights OpenTelemetry 发行版中 未启用 采样。 你必须显式启用并配置采样功能,以管理您的遥测数据量。
注释
如果在 Application Insights 中看到意外费用或高成本,本指南将有所帮助。 它涵盖了常见的原因,例如高遥测量、数据引入峰值和配置错误的采样。 如果您正在解决与成本峰值、遥测数据量、采样失效、数据上限、数据摄取量高或意外计费相关的问题,这将特别有用。 如需入门,请参阅 对 Application Insights 中数据引入量过高的问题进行故障排除。
Application Insights 自定义采样器
基于 Azure Monitor OpenTelemetry 的发行版包括自定义采样器。
- 采样器默认处于禁用状态。 必须显式启用和配置采样以使用采样器。
- Application Insights 依赖于此采样工具来提供完整的跟踪并避免错误的跟踪。
- 实时指标和 Application Insights 经典 API SDK 需要此采样器以保证兼容性。
采样选项
Application Insights 支持两种采样策略:
固定速率(百分比): 设置介于 0 和 1 之间的采样比率。
示例:
0.1将大约 10% 的跟踪发送到 Azure Monitor。速率限制: 设置每秒的最大跟踪数。
示例:
0.5每两秒≈一个跟踪;5.0= 每秒 5 个跟踪。
支持语言提供可选的基于跟踪的日志采样功能,该功能会删除与未采样跟踪相关联的日志。
若要配置采样,请参阅 使用 OpenTelemetry 在 Application Insights 中启用采样。
自定义采样器优势
- 在使用 Application Insights 经典 API 软件开发工具包(SDK)与应用程序实现互操作性时做出一致的采样决策。
- 与 实时指标 完全兼容,因为采样器知道实时指标要求。
有关更多详细信息和采样边缘事例,请参阅 常见问题解答。
引入采样(不建议)
如果无法进行源级别控制,则摄取采样可以作为备用方案。 它会在 Azure Monitor 引入点丢弃数据,并且无法对保留哪些跟踪和跨度进行控制。 这会增加遇到断裂痕迹的几率。
唯一可行或最实用选项的方案包括:
- 无法修改应用程序源代码。
- 无需重新部署应用程序即可立即减少遥测数据量。
- 收到来自多个源的遥测数据,这些源的采样配置不一致或未知。
若要配置引入采样,请执行以下操作:
- 转到 Application Insights>使用情况和估计成本。
- 选择 数据采样。
- 选择要保留的数据百分比。
设置每日上限
设置每日上限以防止意外成本。 此限制在达到阈值时停止遥测数据接收。
请将此上限用作最后的控制手段,而不是替代采样。 数据量突然增加可能会触发上限,造成遥测中断,直到第二天重置为止。
若要配置上限,请参阅 为 Azure Monitor 设置每日上限。