跨度压缩编辑

在某些情况下,APM 代理可能会在事务中收集大量非常相似或相同的跨度。例如,如果在循环内捕获跨度,或者在未优化的 SQL 查询中使用多个查询而不是连接来获取相关数据,就会发生这种情况。在这种情况下,每个事务的跨度上限(默认情况下为 500 个跨度)可能会很快达到,导致代理停止捕获给定事务的潜在更相关跨度。

这种重复的相似跨度通常本身并不十分相关,尤其是如果它们持续时间很短。它们还会使 UI 混乱,并导致处理和存储开销。

为了解决这个问题,APM 代理可以将这些跨度压缩成单个跨度。压缩后的跨度保留了大多数原始跨度信息,例如总持续时间和它所代表的跨度数量。

无论压缩策略如何,如果跨度满足以下条件,则可以进行压缩

  • 它没有传播其跟踪上下文。
  • 出口跨度(例如数据库查询跨度)。
  • 其结果不是"failure"

压缩策略编辑

APM 代理可以选择两种策略来决定两个相邻跨度是否可以压缩。两种策略都有一个好处,即只需要将一个之前的跨度保存在内存中。这对于确保代理不需要大量内存来启用跨度压缩非常重要。

相同类型策略编辑

如果两个相邻跨度具有相同的

  • 跨度类型
  • 跨度子类型
  • destination.service.resource(例如数据库名称)
完全匹配策略编辑

如果两个相邻跨度具有相同的

  • 跨度名称
  • 跨度类型
  • 跨度子类型
  • destination.service.resource(例如数据库名称)

设置编辑

代理具有配置设置,用于根据两种策略的跨度持续时间定义上限。对于“相同类型”策略,默认限制为 0 毫秒,这意味着“相同类型”策略默认情况下处于禁用状态。对于“完全匹配”策略,默认限制为 50 毫秒。持续时间更长的跨度不会被压缩。有关详细信息,请参阅代理文档。

代理支持编辑

以下代理支持跨度压缩