21、Skywalking的埋点-Agent动态采样控制

2021-07-19  本文已影响0人  rock_fish

通过Skywalking的动态配置机制,可以动态下发Agent端的采样配置,官方提供了如下几种:

Config Key Value Description Value Format Example Required Plugin(s)
agent.sample_n_per_3_secs The number of sampled traces per 3 seconds -1 -
agent.ignore_suffix If the operation name of the first span is included in this set, this segment should be ignored. Multiple values should be separated by , .txt,.log -
agent.trace.ignore_path The value is the path that you need to ignore, multiple paths should be separated by , more details /your/path/1/**,/your/path/2/** apm-trace-ignore-plugin
agent.span_limit_per_segment The max number of spans per segment. 300 -

采样控制的逻辑如下图所示:


image.png
agent.ignore_suffix

后缀匹配成功则忽略,其内容是集合,多个值之间使用,隔开,如:.jpg,.jpeg

如果segment中第一个span(通常是EntrySpan)的operation 名称匹配到了,那么这个segment 将被忽略。

agent.trace.ignore_path
  1. 其内容是集合,多个值之间使用,隔开,如:/your/path/1/** , /your/path/2/**
  2. 此功能由apm-trace-ignore-plugin完成,此插件在optional-plugins目录下,若要使用,需要拷贝到plugins目录下。
  3. 如果segment中第一个span(通常是EntrySpan)的operation 名称匹配到了,那么这个segment 将被忽略;从采样逻辑来看,其作为采样判断的第三道检查(第二道是是否强制采样),如果没有匹配到,则继续按照agent.sample_n_per_3_secs的值来控制采样。

实例:

#  /path/?   Match any single character
#  /path/*   Match any number of characters
#  /path/**  Match any number of characters and support multilevel directories
agent.sample_n_per_3_secs

每3秒钟,采样多少个segment ,超出部分直接丢弃;如果采样率是-1 ,则全采样

agent.span_limit_per_segment

上边的那些参数控制是否采样(是否创建traceSegment)后,而这个参数则用来控制创建了segment后,它里边最多有多少个span,多出的部分丢弃掉。

番外篇forceSample

如果有上游请求,即ContextCarrier不是空,则一定创建此TraceSegment,进而会创建跟此TraceSegment相关的Entryspan、Localspan、Exitspan。

上一篇下一篇

猜你喜欢

热点阅读