Loading sharding-opentracing/src/main/java/io/shardingsphere/opentracing/ExecuteEventListener.java +8 −0 Original line number Diff line number Diff line Loading @@ -30,6 +30,7 @@ import io.shardingsphere.core.executor.event.DMLExecutionEvent; import io.shardingsphere.core.executor.event.DQLExecutionEvent; import io.shardingsphere.core.executor.event.OverallExecutionEvent; import io.shardingsphere.core.executor.threadlocal.ExecutorDataMap; import io.shardingsphere.opentracing.sampling.SamplingService; import io.shardingsphere.opentracing.tag.LocalTags; import java.util.HashMap; import java.util.Map; Loading Loading @@ -61,6 +62,9 @@ public final class ExecuteEventListener { @Subscribe @AllowConcurrentEvents public void listenOverall(final OverallExecutionEvent event) { if (!SamplingService.getInstance().trySampling()) { return; } Tracer tracer = ShardingJDBCTracer.get(); ActiveSpan activeSpan; switch (event.getEventExecutionType()) { Loading Loading @@ -95,6 +99,7 @@ public final class ExecuteEventListener { private void deactivate() { trunkContainer.get().deactivate(); trunkContainer.remove(); SamplingService.getInstance().samplingAdd(); } /** Loading @@ -120,6 +125,9 @@ public final class ExecuteEventListener { } private void handle(final AbstractSQLExecutionEvent event, final String operation) { if (!SamplingService.getInstance().trySampling()) { return; } Tracer tracer = ShardingJDBCTracer.get(); switch (event.getEventExecutionType()) { case BEFORE_EXECUTE: Loading sharding-opentracing/src/main/java/io/shardingsphere/opentracing/MergeEventListener.java +4 −0 Original line number Diff line number Diff line Loading @@ -24,6 +24,7 @@ import io.opentracing.Tracer; import io.opentracing.tag.Tags; import io.shardingsphere.core.exception.ShardingException; import io.shardingsphere.core.merger.event.ResultSetMergeEvent; import io.shardingsphere.opentracing.sampling.SamplingService; import io.shardingsphere.opentracing.tag.LocalTags; import java.util.HashMap; Loading @@ -48,6 +49,9 @@ public final class MergeEventListener { @Subscribe @AllowConcurrentEvents public void listenResultSetMergeEvent(final ResultSetMergeEvent event) { if (!SamplingService.getInstance().trySampling()) { return; } Tracer tracer = ShardingJDBCTracer.get(); ActiveSpan activeSpan; switch (event.getEventMergeType()) { Loading sharding-opentracing/src/main/java/io/shardingsphere/opentracing/ShardingJDBCTracer.java +18 −4 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ import io.opentracing.util.GlobalTracer; import io.shardingsphere.core.exception.ShardingException; import io.shardingsphere.core.util.EventBusInstance; import io.shardingsphere.opentracing.config.ConfigurationLoader; import io.shardingsphere.opentracing.sampling.SamplingService; import lombok.AccessLevel; import lombok.NoArgsConstructor; Loading @@ -41,9 +42,11 @@ public final class ShardingJDBCTracer { if (GlobalTracer.isRegistered()) { return; } String tracerClassName = new ConfigurationLoader().getTracerClassName(); ConfigurationLoader configuration = new ConfigurationLoader(); String tracerClassName = configuration.getTracerClassName(); int sampleNumPM = configuration.getSampleNumPM(); try { init((Tracer) Class.forName(tracerClassName).newInstance()); init((Tracer) Class.forName(tracerClassName).newInstance(), sampleNumPM); } catch (final InstantiationException | IllegalAccessException | ClassNotFoundException ex) { throw new ShardingException("Parse tracer class name", ex); } Loading @@ -55,10 +58,21 @@ public final class ShardingJDBCTracer { * @param tracer that is delegated */ public static void init(final Tracer tracer) { init(tracer, 0); } /** * Initialize tracer from another one. * * @param tracer that is delegated * @param sampleNumPM sampling num in one minutes */ public static void init(final Tracer tracer, final int sampleNumPM) { if (GlobalTracer.isRegistered()) { return; } GlobalTracer.register(tracer); SamplingService.getInstance().init(sampleNumPM); EventBusInstance.getInstance().register(new ExecuteEventListener()); EventBusInstance.getInstance().register(new SqlRoutingEventListener()); EventBusInstance.getInstance().register(new MergeEventListener()); Loading sharding-opentracing/src/main/java/io/shardingsphere/opentracing/SqlRoutingEventListener.java +7 −3 Original line number Diff line number Diff line Loading @@ -24,6 +24,7 @@ import io.opentracing.Tracer; import io.opentracing.tag.Tags; import io.shardingsphere.core.exception.ShardingException; import io.shardingsphere.core.routing.event.SqlRoutingEvent; import io.shardingsphere.opentracing.sampling.SamplingService; import io.shardingsphere.opentracing.tag.LocalTags; import java.util.HashMap; Loading @@ -48,6 +49,9 @@ public final class SqlRoutingEventListener { @Subscribe @AllowConcurrentEvents public void listenSqlRoutingEvent(final SqlRoutingEvent event) { if (!SamplingService.getInstance().trySampling()) { return; } Tracer tracer = ShardingJDBCTracer.get(); ActiveSpan activeSpan; switch (event.getEventRoutingType()) { Loading sharding-opentracing/src/main/java/io/shardingsphere/opentracing/config/ConfigurationLoader.java +10 −1 Original line number Diff line number Diff line Loading @@ -34,9 +34,17 @@ public final class ConfigurationLoader { @Getter private final String tracerClassName; @Getter private final int sampleNumPM; public ConfigurationLoader() { String tracerClassName = null; int maxSampleNum = 0; for (ConfigurationParser each : PARSERS) { Optional<String> sampleNumPMOptional = each.parse("tracer.sampleNumPM"); if (sampleNumPMOptional.isPresent()) { maxSampleNum = Integer.parseInt(sampleNumPMOptional.get()); } Optional<String> tracerClassOptional = each.parse("tracer.class"); if (tracerClassOptional.isPresent()) { tracerClassName = tracerClassOptional.get(); Loading @@ -45,5 +53,6 @@ public final class ConfigurationLoader { } Preconditions.checkNotNull(tracerClassName); this.tracerClassName = tracerClassName; this.sampleNumPM = maxSampleNum; } } Loading
sharding-opentracing/src/main/java/io/shardingsphere/opentracing/ExecuteEventListener.java +8 −0 Original line number Diff line number Diff line Loading @@ -30,6 +30,7 @@ import io.shardingsphere.core.executor.event.DMLExecutionEvent; import io.shardingsphere.core.executor.event.DQLExecutionEvent; import io.shardingsphere.core.executor.event.OverallExecutionEvent; import io.shardingsphere.core.executor.threadlocal.ExecutorDataMap; import io.shardingsphere.opentracing.sampling.SamplingService; import io.shardingsphere.opentracing.tag.LocalTags; import java.util.HashMap; import java.util.Map; Loading Loading @@ -61,6 +62,9 @@ public final class ExecuteEventListener { @Subscribe @AllowConcurrentEvents public void listenOverall(final OverallExecutionEvent event) { if (!SamplingService.getInstance().trySampling()) { return; } Tracer tracer = ShardingJDBCTracer.get(); ActiveSpan activeSpan; switch (event.getEventExecutionType()) { Loading Loading @@ -95,6 +99,7 @@ public final class ExecuteEventListener { private void deactivate() { trunkContainer.get().deactivate(); trunkContainer.remove(); SamplingService.getInstance().samplingAdd(); } /** Loading @@ -120,6 +125,9 @@ public final class ExecuteEventListener { } private void handle(final AbstractSQLExecutionEvent event, final String operation) { if (!SamplingService.getInstance().trySampling()) { return; } Tracer tracer = ShardingJDBCTracer.get(); switch (event.getEventExecutionType()) { case BEFORE_EXECUTE: Loading
sharding-opentracing/src/main/java/io/shardingsphere/opentracing/MergeEventListener.java +4 −0 Original line number Diff line number Diff line Loading @@ -24,6 +24,7 @@ import io.opentracing.Tracer; import io.opentracing.tag.Tags; import io.shardingsphere.core.exception.ShardingException; import io.shardingsphere.core.merger.event.ResultSetMergeEvent; import io.shardingsphere.opentracing.sampling.SamplingService; import io.shardingsphere.opentracing.tag.LocalTags; import java.util.HashMap; Loading @@ -48,6 +49,9 @@ public final class MergeEventListener { @Subscribe @AllowConcurrentEvents public void listenResultSetMergeEvent(final ResultSetMergeEvent event) { if (!SamplingService.getInstance().trySampling()) { return; } Tracer tracer = ShardingJDBCTracer.get(); ActiveSpan activeSpan; switch (event.getEventMergeType()) { Loading
sharding-opentracing/src/main/java/io/shardingsphere/opentracing/ShardingJDBCTracer.java +18 −4 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ import io.opentracing.util.GlobalTracer; import io.shardingsphere.core.exception.ShardingException; import io.shardingsphere.core.util.EventBusInstance; import io.shardingsphere.opentracing.config.ConfigurationLoader; import io.shardingsphere.opentracing.sampling.SamplingService; import lombok.AccessLevel; import lombok.NoArgsConstructor; Loading @@ -41,9 +42,11 @@ public final class ShardingJDBCTracer { if (GlobalTracer.isRegistered()) { return; } String tracerClassName = new ConfigurationLoader().getTracerClassName(); ConfigurationLoader configuration = new ConfigurationLoader(); String tracerClassName = configuration.getTracerClassName(); int sampleNumPM = configuration.getSampleNumPM(); try { init((Tracer) Class.forName(tracerClassName).newInstance()); init((Tracer) Class.forName(tracerClassName).newInstance(), sampleNumPM); } catch (final InstantiationException | IllegalAccessException | ClassNotFoundException ex) { throw new ShardingException("Parse tracer class name", ex); } Loading @@ -55,10 +58,21 @@ public final class ShardingJDBCTracer { * @param tracer that is delegated */ public static void init(final Tracer tracer) { init(tracer, 0); } /** * Initialize tracer from another one. * * @param tracer that is delegated * @param sampleNumPM sampling num in one minutes */ public static void init(final Tracer tracer, final int sampleNumPM) { if (GlobalTracer.isRegistered()) { return; } GlobalTracer.register(tracer); SamplingService.getInstance().init(sampleNumPM); EventBusInstance.getInstance().register(new ExecuteEventListener()); EventBusInstance.getInstance().register(new SqlRoutingEventListener()); EventBusInstance.getInstance().register(new MergeEventListener()); Loading
sharding-opentracing/src/main/java/io/shardingsphere/opentracing/SqlRoutingEventListener.java +7 −3 Original line number Diff line number Diff line Loading @@ -24,6 +24,7 @@ import io.opentracing.Tracer; import io.opentracing.tag.Tags; import io.shardingsphere.core.exception.ShardingException; import io.shardingsphere.core.routing.event.SqlRoutingEvent; import io.shardingsphere.opentracing.sampling.SamplingService; import io.shardingsphere.opentracing.tag.LocalTags; import java.util.HashMap; Loading @@ -48,6 +49,9 @@ public final class SqlRoutingEventListener { @Subscribe @AllowConcurrentEvents public void listenSqlRoutingEvent(final SqlRoutingEvent event) { if (!SamplingService.getInstance().trySampling()) { return; } Tracer tracer = ShardingJDBCTracer.get(); ActiveSpan activeSpan; switch (event.getEventRoutingType()) { Loading
sharding-opentracing/src/main/java/io/shardingsphere/opentracing/config/ConfigurationLoader.java +10 −1 Original line number Diff line number Diff line Loading @@ -34,9 +34,17 @@ public final class ConfigurationLoader { @Getter private final String tracerClassName; @Getter private final int sampleNumPM; public ConfigurationLoader() { String tracerClassName = null; int maxSampleNum = 0; for (ConfigurationParser each : PARSERS) { Optional<String> sampleNumPMOptional = each.parse("tracer.sampleNumPM"); if (sampleNumPMOptional.isPresent()) { maxSampleNum = Integer.parseInt(sampleNumPMOptional.get()); } Optional<String> tracerClassOptional = each.parse("tracer.class"); if (tracerClassOptional.isPresent()) { tracerClassName = tracerClassOptional.get(); Loading @@ -45,5 +53,6 @@ public final class ConfigurationLoader { } Preconditions.checkNotNull(tracerClassName); this.tracerClassName = tracerClassName; this.sampleNumPM = maxSampleNum; } }