diff --git a/oap-server/analyzer/agent-analyzer/src/main/java/org/apache/skywalking/oap/server/analyzer/provider/trace/parser/listener/TraceSegmentSampler.java b/oap-server/analyzer/agent-analyzer/src/main/java/org/apache/skywalking/oap/server/analyzer/provider/trace/parser/listener/TraceSegmentSampler.java index 493897c74d2c0d59eeb79c14c7935308e9343bc3..4623a2c761ddf05c7acd746ead699f138f6274ac 100644 --- a/oap-server/analyzer/agent-analyzer/src/main/java/org/apache/skywalking/oap/server/analyzer/provider/trace/parser/listener/TraceSegmentSampler.java +++ b/oap-server/analyzer/agent-analyzer/src/main/java/org/apache/skywalking/oap/server/analyzer/provider/trace/parser/listener/TraceSegmentSampler.java @@ -32,6 +32,6 @@ public class TraceSegmentSampler { } public boolean shouldSample(String traceId) { - return traceId.hashCode() % 10000 < traceSampleRateWatcher.getSampleRate(); + return Math.abs(traceId.hashCode()) % 10000 < traceSampleRateWatcher.getSampleRate(); } }