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 493897c74..4623a2c76 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(); } }