diff --git a/skywalking-sniffer/skywalking-api/src/main/java/com/a/eye/skywalking/api/conf/Config.java b/skywalking-sniffer/skywalking-api/src/main/java/com/a/eye/skywalking/api/conf/Config.java index 402b4be81..1c2cd1022 100644 --- a/skywalking-sniffer/skywalking-api/src/main/java/com/a/eye/skywalking/api/conf/Config.java +++ b/skywalking-sniffer/skywalking-api/src/main/java/com/a/eye/skywalking/api/conf/Config.java @@ -9,7 +9,7 @@ public class Config { public static String PATH = ""; - public static int SAMPLING_RATE = 10000; + public static int SAMPLING_CYCLE = 1; } public static class Collector{ diff --git a/skywalking-sniffer/skywalking-api/src/main/java/com/a/eye/skywalking/api/sampling/SamplingService.java b/skywalking-sniffer/skywalking-api/src/main/java/com/a/eye/skywalking/api/sampling/SamplingService.java index f1701dd37..a2bfa0a2d 100644 --- a/skywalking-sniffer/skywalking-api/src/main/java/com/a/eye/skywalking/api/sampling/SamplingService.java +++ b/skywalking-sniffer/skywalking-api/src/main/java/com/a/eye/skywalking/api/sampling/SamplingService.java @@ -12,7 +12,7 @@ import com.a.eye.skywalking.trace.TraceSegment; * have been traced, but, considering CPU cost of serialization/deserialization, and network bandwidth, the agent do NOT * send all of them to collector, if SAMPLING is on. * - * By default, SAMPLING is off, and {@link Config.Agent#SAMPLING_RATE} == 1000. + * By default, SAMPLING is off, and {@link Config.Agent#SAMPLING_CYCLE} == 1. * * @author wusheng */ @@ -20,26 +20,25 @@ public class SamplingService implements BootService { private static ILog logger = LogManager.getLogger(SamplingService.class); private volatile boolean on = false; - private volatile int rate = 0; private volatile int rollingSeed = 1; @Override public void bootUp() throws Throwable { - if (Config.Agent.SAMPLING_RATE == 10000) { + if (Config.Agent.SAMPLING_CYCLE == 1) { + this.on = false; return; } - if (Config.Agent.SAMPLING_RATE > 10000 || Config.Agent.SAMPLING_RATE < 1) { - throw new IllegalSamplingRateException("sampling rate should stay in (0, 10000]."); + if (Config.Agent.SAMPLING_CYCLE < 1) { + throw new IllegalSamplingRateException("sampling cycle must greater than 0."); } - rate = 10000 / Config.Agent.SAMPLING_RATE; - on = true; + this.on = true; - logger.debug("The trace sampling is on, and the sampling rate is: {}", rate); + logger.debug("The trace sampling is on, and the sampling cycle is: {}", Config.Agent.SAMPLING_CYCLE); } public void trySampling(TraceSegment segment) { if (on) { - if (rollingSeed % rate != 0) { + if (rollingSeed % Config.Agent.SAMPLING_CYCLE != 0) { segment.setSampled(false); } rollingSeed++; diff --git a/skywalking-sniffer/skywalking-api/src/test/java/com/a/eye/skywalking/api/sampling/SamplingServiceTest.java b/skywalking-sniffer/skywalking-api/src/test/java/com/a/eye/skywalking/api/sampling/SamplingServiceTest.java index 6fedcb121..d3d406cad 100644 --- a/skywalking-sniffer/skywalking-api/src/test/java/com/a/eye/skywalking/api/sampling/SamplingServiceTest.java +++ b/skywalking-sniffer/skywalking-api/src/test/java/com/a/eye/skywalking/api/sampling/SamplingServiceTest.java @@ -13,7 +13,7 @@ import org.junit.Test; public class SamplingServiceTest { @Test public void test50Percent(){ - Config.Agent.SAMPLING_RATE = 5000; + Config.Agent.SAMPLING_CYCLE = 2; ServiceManager.INSTANCE.boot(); TraceSegment segment = new TraceSegment(); @@ -30,7 +30,7 @@ public class SamplingServiceTest { @AfterClass public static void clear(){ - Config.Agent.SAMPLING_RATE = 10000; + Config.Agent.SAMPLING_CYCLE = 1; ServiceManager.INSTANCE.boot(); } } diff --git a/skywalking-sniffer/skywalking-sdk-plugin/jdbc-plugin/src/main/java/com/a/eye/skywalking/plugin/jdbc/CallableStatementTracing.java b/skywalking-sniffer/skywalking-sdk-plugin/jdbc-plugin/src/main/java/com/a/eye/skywalking/plugin/jdbc/CallableStatementTracing.java index 797908dcd..02975b3b2 100644 --- a/skywalking-sniffer/skywalking-sdk-plugin/jdbc-plugin/src/main/java/com/a/eye/skywalking/plugin/jdbc/CallableStatementTracing.java +++ b/skywalking-sniffer/skywalking-sdk-plugin/jdbc-plugin/src/main/java/com/a/eye/skywalking/plugin/jdbc/CallableStatementTracing.java @@ -24,6 +24,7 @@ public class CallableStatementTracing { try { Span span = ContextManager.createSpan(connectInfo.getDBType() + "/JDBI/CallableStatement/" + method); Tags.DB_TYPE.set(span, "sql"); + Tags.SPAN_KIND.set(span, Tags.SPAN_KIND_CLIENT); Tags.DB_INSTANCE.set(span, connectInfo.getDatabaseName()); Tags.DB_STATEMENT.set(span, sql); Tags.SPAN_LAYER.asDB(span); diff --git a/skywalking-sniffer/skywalking-sdk-plugin/jdbc-plugin/src/main/java/com/a/eye/skywalking/plugin/jdbc/ConnectionTracing.java b/skywalking-sniffer/skywalking-sdk-plugin/jdbc-plugin/src/main/java/com/a/eye/skywalking/plugin/jdbc/ConnectionTracing.java index 1b20172ac..ebb089921 100755 --- a/skywalking-sniffer/skywalking-sdk-plugin/jdbc-plugin/src/main/java/com/a/eye/skywalking/plugin/jdbc/ConnectionTracing.java +++ b/skywalking-sniffer/skywalking-sdk-plugin/jdbc-plugin/src/main/java/com/a/eye/skywalking/plugin/jdbc/ConnectionTracing.java @@ -24,6 +24,7 @@ public class ConnectionTracing { try { Span span = ContextManager.createSpan(connectInfo.getDBType() + "/JDBI/Connection/" + method); Tags.DB_TYPE.set(span, "sql"); + Tags.SPAN_KIND.set(span, Tags.SPAN_KIND_CLIENT); Tags.DB_INSTANCE.set(span, connectInfo.getDatabaseName()); Tags.DB_STATEMENT.set(span, sql); Tags.COMPONENT.set(span, connectInfo.getDBType()); diff --git a/skywalking-sniffer/skywalking-sdk-plugin/jdbc-plugin/src/main/java/com/a/eye/skywalking/plugin/jdbc/PreparedStatementTracing.java b/skywalking-sniffer/skywalking-sdk-plugin/jdbc-plugin/src/main/java/com/a/eye/skywalking/plugin/jdbc/PreparedStatementTracing.java index 20f7fba3b..207bd91e7 100644 --- a/skywalking-sniffer/skywalking-sdk-plugin/jdbc-plugin/src/main/java/com/a/eye/skywalking/plugin/jdbc/PreparedStatementTracing.java +++ b/skywalking-sniffer/skywalking-sdk-plugin/jdbc-plugin/src/main/java/com/a/eye/skywalking/plugin/jdbc/PreparedStatementTracing.java @@ -23,6 +23,7 @@ public class PreparedStatementTracing { try { Span span = ContextManager.createSpan(connectInfo.getDBType() + "/JDBI/PreparedStatement/" + method); Tags.DB_TYPE.set(span, "sql"); + Tags.SPAN_KIND.set(span, Tags.SPAN_KIND_CLIENT); Tags.DB_INSTANCE.set(span, connectInfo.getDatabaseName()); Tags.DB_STATEMENT.set(span, sql); Tags.COMPONENT.set(span, connectInfo.getDBType()); diff --git a/skywalking-sniffer/skywalking-sdk-plugin/jdbc-plugin/src/main/java/com/a/eye/skywalking/plugin/jdbc/StatementTracing.java b/skywalking-sniffer/skywalking-sdk-plugin/jdbc-plugin/src/main/java/com/a/eye/skywalking/plugin/jdbc/StatementTracing.java index f421e0ad0..f27a5033e 100644 --- a/skywalking-sniffer/skywalking-sdk-plugin/jdbc-plugin/src/main/java/com/a/eye/skywalking/plugin/jdbc/StatementTracing.java +++ b/skywalking-sniffer/skywalking-sdk-plugin/jdbc-plugin/src/main/java/com/a/eye/skywalking/plugin/jdbc/StatementTracing.java @@ -23,6 +23,7 @@ public class StatementTracing { try { Span span = ContextManager.createSpan(connectInfo.getDBType() + "/JDBI/Statement/" + method); Tags.DB_TYPE.set(span, "sql"); + Tags.SPAN_KIND.set(span, Tags.SPAN_KIND_CLIENT); Tags.DB_INSTANCE.set(span, connectInfo.getDatabaseName()); Tags.DB_STATEMENT.set(span, sql); Tags.COMPONENT.set(span, connectInfo.getDBType());