应用性能管理 APM-调用链:智能采样算法

时间:2025-02-28 16:26:01

智能采样算法

APM 系统会采用智能采样算法,决定是否对请求进行调用链跟踪。

  • 如果决定要跟踪,那么就会生成一个TraceID,拦截A下面的一些重要方法(一般具有树结构父子关系)的详细信息(称为event),同时APM会将TraceID透传到B,B也会拦截下面的重要方法,同时透传TraceID到C,C也跟B和A类似。每个节点分别上报event信息,通过TraceID形成关联,这样通过TraceID就可以查看整个请求的调用详情。
  • 如果决定不跟踪,那么就不会生成TraceID,B服务由于没有收到TraceID,自身也会产生跟A服务一样的算法,决定是否要进行调用链跟踪。
  • 数据上报后,APM系统除了会存储所有event详情,同时会将每个服务的根event(称为span)信息额外存储起来,用于后续调用链搜索。用户一般是先搜索到span信息,然后根据span信息上附带的TraceID获取到总体调用链详情。
  • 调用链采样策略系统默认是智能采样,url分为错误url、慢url(默认800ms、用户自定义配置)、正常url三种url,每种url调用链数据的采样率单独计算。APM的统计数据是一分钟采集上报一次,第一个采集周期所有url调用链数据都按正常url采样。第二个采集周期时,根据上一个采集周期的统计数据,将url分类为错误url、慢url、正常url三种url。
    • 错误url的采样率:cpu小于30%每分钟采集100条,cpu大于或等于30%小于60%每分钟采集50条,cpu大于或等于60%每分钟采集10条,每条url至少采集2条。
    • 慢url的采样率:cpu小于30%每分钟采集100条,cpu大于或等于30%小于60%每分钟采集50条,cpu大于或等于60%每分钟采集10条,每条url至少采集2条。
    • 正常url的采样率:cpu小于30%每分钟采集20条,cpu大于或等于30%小于60%每分钟采集10条,cpu大于或等于60%每分钟采集5条,每条url至少采集1条。

上述调用链算法优点是,一旦决定产生调用链信息,那么链路是完整的,帮用户做正确决策。对于大量调用的url,可能会采集不到异常请求,可以通过异常监控的指标采集等其他方式来定位系统中的异常。

support.huaweicloud.com/usermanual-apm2/apm_07_0018.html