使用 OpenTelemetry 在 Azure Monitor Application Insights 中采样

Application Insights 包括自定义采样器,并与 OpenTelemetry 集成,以减少遥测量、降低成本并保留你关心的诊断数据。

重要

有关使用 Application Insights 经典 API 软件开发工具包(SDK)时采样的信息,请参阅 经典 API 采样

先决条件

在继续之前,请确保具备:

为什么采样很重要

采样对于生成大量遥测的应用程序至关重要。

缺乏采样时,过量的数据摄入可能会导致:

  • 增加存储和处理成本
  • 导致 Application Insights 限制遥测

有效的采样可保留足够的数据,以便进行有意义的诊断,同时控制成本。

默认情况下,Application Insights OpenTelemetry 发行版中 未启用 采样。 你必须显式启用并配置采样功能,以管理您的遥测数据量。

注释

如果在 Application Insights 中看到意外费用或高成本,本指南将有所帮助。 它涵盖了常见的原因,例如高遥测量、数据引入峰值和配置错误的采样。 如果您正在解决与成本峰值、遥测数据量、采样失效、数据上限、数据摄取量高或意外计费相关的问题,这将特别有用。 如需入门,请参阅 对 Application Insights 中数据引入量过高的问题进行故障排除

Application Insights 自定义采样器

基于 Azure Monitor OpenTelemetry 的发行版包括自定义采样器。

  • 实时指标和 Application Insights 经典 API SDK 需要此采样器以保证兼容性。
  • 采样器默认处于禁用状态。 必须显式启用和配置采样以使用采样器。
  • 它使用固定速率算法。 例如,采样率为 10% 时,会将大约 10% 的跟踪发送到 Azure Monitor。
  • Azure Monitor Application Insights 服务依赖此采样器来显示完整的跟踪并避免出现损坏的跟踪。

好处

  • 在使用 Application Insights 经典 API 软件开发工具包(SDK)与应用程序实现互操作性时做出一致的采样决策。
  • 实时指标 完全兼容,因为采样器知道实时指标要求。

若要配置采样百分比,请参阅 使用 OpenTelemetry 在 Application Insights 中启用采样

有关更多详细信息和采样边缘事例,请参阅 常见问题解答

如果无法进行源级别控制,则摄取采样可以作为备用方案。 它会在 Azure Monitor 引入点丢弃数据,并且无法对保留哪些跟踪和跨度进行控制。 这会增加遇到断裂痕迹的几率。

唯一可行或最实用选项的方案包括:

  • 无法修改应用程序源代码。
  • 无需重新部署应用程序即可立即减少遥测数据量。
  • 收到来自多个源的遥测数据,这些源的采样配置不一致或未知。

若要配置引入采样,请执行以下操作:

  1. 转到 Application Insights>使用情况和估计成本
  2. 选择 数据采样
  3. 选择要保留的数据百分比。

设置每日上限

设置每日上限以防止意外成本。 此限制在达到阈值时停止遥测数据接收。

请将此上限用作最后的控制手段,而不是替代采样。 数据量突然增加可能会触发上限,造成遥测中断,直到第二天重置为止。

若要配置上限,请参阅 为 Azure Monitor 设置每日上限

后续步骤