ZipKin是一个链路追踪服务,可以帮助我们追踪、分析多个服务之间调用延迟情况,可到官网了解更多情况 https://zipkin.io/,本文主要通过源码来探析一下ZipKin如何进行抽样统计。
在zipkin客户端采样率是通过Sampler类来完全控制,代码如下,
package com.github.kristofa.brave;
public abstract class Sampler {
public static final Sampler ALWAYS_SAMPLE = new Sampler() {
@Override public boolean isSampled(long traceId) {
return true;
}
@Override public String toString() {
return "AlwaysSample";
}
};
public static final Sampler NEVER_SAMPLE = new Sampler() {
@Override public boolean isSampled(long traceId) {
return false;
}
@Override public String toString() {
return "NeverSample";
}
};
public abstract boolean is