diff --git a/skywalking-collector/pom.xml b/skywalking-collector/pom.xml index 79845cfe7..bf65dec4b 100644 --- a/skywalking-collector/pom.xml +++ b/skywalking-collector/pom.xml @@ -26,6 +26,11 @@ akka-cluster_2.11 ${akka.version} + + com.typesafe.akka + akka-slf4j_2.11 + ${akka.version} + org.apache.logging.log4j log4j-core diff --git a/skywalking-collector/skywalking-collector-cluster/src/main/java/com/a/eye/skywalking/collector/AkkaSystem.java b/skywalking-collector/skywalking-collector-cluster/src/main/java/com/a/eye/skywalking/collector/AkkaSystem.java index cbf4df4f2..0b62746e2 100644 --- a/skywalking-collector/skywalking-collector-cluster/src/main/java/com/a/eye/skywalking/collector/AkkaSystem.java +++ b/skywalking-collector/skywalking-collector-cluster/src/main/java/com/a/eye/skywalking/collector/AkkaSystem.java @@ -6,6 +6,7 @@ import com.a.eye.skywalking.collector.cluster.ClusterConfig; import com.a.eye.skywalking.collector.cluster.Const; import com.typesafe.config.Config; import com.typesafe.config.ConfigFactory; +import org.apache.logging.log4j.Level; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; @@ -17,10 +18,12 @@ public enum AkkaSystem { private Logger logger = LogManager.getFormatterLogger(AkkaSystem.class); public ActorSystem create() { + Level logLevel = logger.getLevel(); + final Config config = ConfigFactory.parseString("akka.remote.netty.tcp.HOSTNAME=" + ClusterConfig.Cluster.Current.HOSTNAME). withFallback(ConfigFactory.parseString("akka.remote.netty.tcp.PORT=" + ClusterConfig.Cluster.Current.PORT)). withFallback(ConfigFactory.parseString("akka.loggers=[\"akka.event.slf4j.Slf4jLogger\"]")). - withFallback(ConfigFactory.parseString("akka.loglevel=\"ERROR\"")). + withFallback(ConfigFactory.parseString("akka.loglevel=\"" + logLevel.name() + "\"")). withFallback(ConfigFactory.load("application.conf")); if (!StringUtil.isEmpty(ClusterConfig.Cluster.SEED_NODES)) { diff --git a/skywalking-collector/skywalking-collector-cluster/src/main/java/com/a/eye/skywalking/collector/actor/AbstractClusterWorker.java b/skywalking-collector/skywalking-collector-cluster/src/main/java/com/a/eye/skywalking/collector/actor/AbstractClusterWorker.java index 5775bea81..a7e5ddf49 100644 --- a/skywalking-collector/skywalking-collector-cluster/src/main/java/com/a/eye/skywalking/collector/actor/AbstractClusterWorker.java +++ b/skywalking-collector/skywalking-collector-cluster/src/main/java/com/a/eye/skywalking/collector/actor/AbstractClusterWorker.java @@ -7,7 +7,7 @@ import akka.cluster.Member; import akka.cluster.MemberStatus; import com.a.eye.skywalking.collector.cluster.WorkerListenerMessage; import com.a.eye.skywalking.collector.cluster.WorkersListener; -import org.apache.logging.log4j.LogManager; +import com.a.eye.skywalking.collector.log.LogManager; import org.apache.logging.log4j.Logger; /** @@ -52,7 +52,7 @@ public abstract class AbstractClusterWorker extends AbstractWorker { protected abstract void onWork(Object message) throws Exception; static class WorkerWithAkka extends UntypedActor { - private Logger logger = LogManager.getFormatterLogger(WorkerWithAkka.class); + private Logger logger = LogManager.INSTANCE.getFormatterLogger(WorkerWithAkka.class); private Cluster cluster; private final AbstractClusterWorker ownerWorker; diff --git a/skywalking-collector/skywalking-collector-cluster/src/main/java/com/a/eye/skywalking/collector/actor/AbstractWorker.java b/skywalking-collector/skywalking-collector-cluster/src/main/java/com/a/eye/skywalking/collector/actor/AbstractWorker.java index e5a5f8a03..81d5774df 100644 --- a/skywalking-collector/skywalking-collector-cluster/src/main/java/com/a/eye/skywalking/collector/actor/AbstractWorker.java +++ b/skywalking-collector/skywalking-collector-cluster/src/main/java/com/a/eye/skywalking/collector/actor/AbstractWorker.java @@ -1,9 +1,15 @@ package com.a.eye.skywalking.collector.actor; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + /** * @author pengys5 */ public abstract class AbstractWorker { + + private final Logger logger; + private final LocalWorkerContext selfContext; private final Role role; @@ -14,6 +20,11 @@ public abstract class AbstractWorker { this.role = role; this.clusterContext = clusterContext; this.selfContext = selfContext; + this.logger = LogManager.getFormatterLogger(role.roleName()); + } + + final public Logger logger() { + return logger; } public abstract void preStart() throws ProviderNotFoundException; @@ -35,6 +46,6 @@ public abstract class AbstractWorker { } final protected void saveException(Exception e) { -// e.printStackTrace(); + logger().error(e); } } diff --git a/skywalking-collector/skywalking-collector-cluster/src/main/java/com/a/eye/skywalking/collector/actor/AbstractWorkerProvider.java b/skywalking-collector/skywalking-collector-cluster/src/main/java/com/a/eye/skywalking/collector/actor/AbstractWorkerProvider.java index dfe72f348..945b06b54 100644 --- a/skywalking-collector/skywalking-collector-cluster/src/main/java/com/a/eye/skywalking/collector/actor/AbstractWorkerProvider.java +++ b/skywalking-collector/skywalking-collector-cluster/src/main/java/com/a/eye/skywalking/collector/actor/AbstractWorkerProvider.java @@ -24,9 +24,6 @@ public abstract class AbstractWorkerProvider implement final public WorkerRef create( AbstractWorker workerOwner) throws IllegalArgumentException, ProviderNotFoundException { - if (workerInstance(clusterContext) == null) { - throw new IllegalArgumentException("cannot get worker instance with nothing obtained from workerInstance()"); - } if (workerOwner == null) { return onCreate(null); diff --git a/skywalking-collector/skywalking-collector-cluster/src/main/java/com/a/eye/skywalking/collector/log/LogManager.java b/skywalking-collector/skywalking-collector-cluster/src/main/java/com/a/eye/skywalking/collector/log/LogManager.java new file mode 100644 index 000000000..c374de557 --- /dev/null +++ b/skywalking-collector/skywalking-collector-cluster/src/main/java/com/a/eye/skywalking/collector/log/LogManager.java @@ -0,0 +1,14 @@ +package com.a.eye.skywalking.collector.log; + +import org.apache.logging.log4j.Logger; + +/** + * @author pengys5 + */ +public enum LogManager { + INSTANCE; + + public Logger getFormatterLogger(final Class clazz) { + return org.apache.logging.log4j.LogManager.getFormatterLogger(clazz); + } +} diff --git a/skywalking-collector/skywalking-collector-cluster/src/test/java/com/a/eye/skywalking/collector/actor/AbstractClusterWorkerProviderTestCase.java b/skywalking-collector/skywalking-collector-cluster/src/test/java/com/a/eye/skywalking/collector/actor/AbstractClusterWorkerProviderTestCase.java new file mode 100644 index 000000000..6b6927217 --- /dev/null +++ b/skywalking-collector/skywalking-collector-cluster/src/test/java/com/a/eye/skywalking/collector/actor/AbstractClusterWorkerProviderTestCase.java @@ -0,0 +1,58 @@ +package com.a.eye.skywalking.collector.actor; + +import akka.actor.ActorSystem; +import com.a.eye.skywalking.collector.actor.selector.RollingSelector; +import com.a.eye.skywalking.collector.actor.selector.WorkerSelector; +import com.a.eye.skywalking.collector.log.LogManager; +import org.apache.logging.log4j.Logger; +import org.mockito.Mockito; +import org.powermock.reflect.Whitebox; + +/** + * @author pengys5 + */ +//@RunWith(PowerMockRunner.class) +//@PrepareForTest({LogManager.class}) +public class AbstractClusterWorkerProviderTestCase { + +// @Test + public void testOnCreate() throws ProviderNotFoundException { + LogManager logManager = Mockito.mock(LogManager.class); + Whitebox.setInternalState(LogManager.class, "INSTANCE", logManager); + Logger logger = Mockito.mock(Logger.class); + Mockito.when(logManager.getFormatterLogger(Mockito.any())).thenReturn(logger); + + ActorSystem actorSystem = Mockito.mock(ActorSystem.class); + ClusterWorkerContext clusterWorkerContext = new ClusterWorkerContext(actorSystem); + Impl impl = new Impl(); + impl.onCreate(null); + } + + class Impl extends AbstractClusterWorkerProvider { + @Override public Role role() { + return Role.INSTANCE; + } + + @Override public AbstractClusterWorkerTestCase.Impl workerInstance(ClusterWorkerContext clusterContext) { + return new AbstractClusterWorkerTestCase.Impl(role(), clusterContext, new LocalWorkerContext()); + } + + @Override public int workerNum() { + return 0; + } + } + + enum Role implements com.a.eye.skywalking.collector.actor.Role { + INSTANCE; + + @Override + public String roleName() { + return AbstractClusterWorkerTestCase.Impl.class.getSimpleName(); + } + + @Override + public WorkerSelector workerSelector() { + return new RollingSelector(); + } + } +} diff --git a/skywalking-collector/skywalking-collector-cluster/src/test/java/com/a/eye/skywalking/collector/actor/AbstractClusterWorkerTestCase.java b/skywalking-collector/skywalking-collector-cluster/src/test/java/com/a/eye/skywalking/collector/actor/AbstractClusterWorkerTestCase.java index 968ff41ed..96c2de6ea 100644 --- a/skywalking-collector/skywalking-collector-cluster/src/test/java/com/a/eye/skywalking/collector/actor/AbstractClusterWorkerTestCase.java +++ b/skywalking-collector/skywalking-collector-cluster/src/test/java/com/a/eye/skywalking/collector/actor/AbstractClusterWorkerTestCase.java @@ -1,21 +1,99 @@ package com.a.eye.skywalking.collector.actor; +import akka.actor.Address; +import akka.cluster.ClusterEvent; +import akka.cluster.Member; +import com.a.eye.skywalking.collector.actor.selector.RollingSelector; +import com.a.eye.skywalking.collector.actor.selector.WorkerSelector; +import org.apache.logging.log4j.Logger; +import org.junit.Before; import org.junit.Test; -import org.mockito.Mockito; +import org.junit.runner.RunWith; import org.powermock.api.mockito.PowerMockito; +import org.powermock.core.classloader.annotations.PrepareForTest; +import org.powermock.modules.junit4.PowerMockRunner; +import org.powermock.reflect.Whitebox; + +import static org.mockito.Mockito.CALLS_REAL_METHODS; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; /** * @author pengys5 */ +@RunWith(PowerMockRunner.class) +@PrepareForTest({ClusterEvent.MemberUp.class, Address.class}) public class AbstractClusterWorkerTestCase { + private AbstractClusterWorker.WorkerWithAkka workerWithAkka = mock(AbstractClusterWorker.WorkerWithAkka.class, CALLS_REAL_METHODS); + private AbstractClusterWorker worker = PowerMockito.spy(new Impl(WorkerRole.INSTANCE, null, null)); + + @Before + public void init(){ + Logger logger = mock(Logger.class); + Whitebox.setInternalState(workerWithAkka, "logger", logger); + Whitebox.setInternalState(workerWithAkka, "ownerWorker", worker); + } + @Test public void testAllocateJob() throws Exception { - AbstractClusterWorker worker = PowerMockito.mock(AbstractClusterWorker.class); String jobStr = "TestJob"; worker.allocateJob(jobStr); - Mockito.verify(worker).onWork(jobStr); + verify(worker).onWork(jobStr); + } + + @Test + public void testMemberUp() throws Throwable { + ClusterEvent.MemberUp memberUp = mock(ClusterEvent.MemberUp.class); + + Address address = mock(Address.class); + when(address.toString()).thenReturn("address"); + + Member member = mock(Member.class); + when(member.address()).thenReturn(address); + + when(memberUp.member()).thenReturn(member); + + workerWithAkka.onReceive(memberUp); + + verify(workerWithAkka).register(member); + } + + @Test + public void testMessage() throws Throwable { + String message = "test"; + workerWithAkka.onReceive(message); + + verify(worker).allocateJob(message); + } + + static class Impl extends AbstractClusterWorker { + @Override public void preStart() throws ProviderNotFoundException { + } + + public Impl(Role role, ClusterWorkerContext clusterContext, LocalWorkerContext selfContext) { + super(role, clusterContext, selfContext); + } + + @Override protected void onWork(Object message) throws Exception { + + } + } + + public enum WorkerRole implements Role { + INSTANCE; + + @Override + public String roleName() { + return Impl.class.getSimpleName(); + } + + @Override + public WorkerSelector workerSelector() { + return new RollingSelector(); + } } } diff --git a/skywalking-collector/skywalking-collector-cluster/src/test/java/com/a/eye/skywalking/collector/actor/selector/AbstractHashMessageTestCase.java b/skywalking-collector/skywalking-collector-cluster/src/test/java/com/a/eye/skywalking/collector/actor/selector/AbstractHashMessageTestCase.java new file mode 100644 index 000000000..f3a66c952 --- /dev/null +++ b/skywalking-collector/skywalking-collector-cluster/src/test/java/com/a/eye/skywalking/collector/actor/selector/AbstractHashMessageTestCase.java @@ -0,0 +1,24 @@ +package com.a.eye.skywalking.collector.actor.selector; + +import org.junit.Assert; +import org.junit.Test; + +/** + * @author pengys5 + */ +public class AbstractHashMessageTestCase { + + @Test + public void testGetHashCode() { + String key = "key"; + + Impl impl = new Impl(key); + Assert.assertEquals(key.hashCode(), impl.getHashCode()); + } + + class Impl extends AbstractHashMessage { + public Impl(String key) { + super(key); + } + } +} diff --git a/skywalking-collector/skywalking-collector-cluster/src/test/java/com/a/eye/skywalking/collector/actor/selector/HashCodeSelectorTestCase.java b/skywalking-collector/skywalking-collector-cluster/src/test/java/com/a/eye/skywalking/collector/actor/selector/HashCodeSelectorTestCase.java index 13cfda87c..9a71c6b19 100644 --- a/skywalking-collector/skywalking-collector-cluster/src/test/java/com/a/eye/skywalking/collector/actor/selector/HashCodeSelectorTestCase.java +++ b/skywalking-collector/skywalking-collector-cluster/src/test/java/com/a/eye/skywalking/collector/actor/selector/HashCodeSelectorTestCase.java @@ -46,4 +46,10 @@ public class HashCodeSelectorTestCase { WorkerRef select_3 = selector.select(members, message_3); Assert.assertEquals(workerRef_3.hashCode(), select_3.hashCode()); } + + @Test(expected = IllegalArgumentException.class) + public void testSelectError() { + HashCodeSelector selector = new HashCodeSelector(); + selector.select(null, new Object()); + } } diff --git a/skywalking-collector/skywalking-collector-cluster/src/test/java/com/a/eye/skywalking/collector/log/MockLog.java b/skywalking-collector/skywalking-collector-cluster/src/test/java/com/a/eye/skywalking/collector/log/MockLog.java new file mode 100644 index 000000000..313fa0463 --- /dev/null +++ b/skywalking-collector/skywalking-collector-cluster/src/test/java/com/a/eye/skywalking/collector/log/MockLog.java @@ -0,0 +1,18 @@ +package com.a.eye.skywalking.collector.log; + +import org.apache.logging.log4j.Logger; +import org.mockito.Mockito; +import org.powermock.api.mockito.PowerMockito; + +/** + * @author pengys5 + */ +public class MockLog { + + public Logger mockito() { + LogManager logManager = PowerMockito.mock(LogManager.class); + Logger logger = Mockito.mock(Logger.class); + Mockito.when(logManager.getFormatterLogger(Mockito.any())).thenReturn(logger); + return logger; + } +} diff --git a/skywalking-collector/skywalking-collector-cluster/src/test/resources/application.conf b/skywalking-collector/skywalking-collector-cluster/src/test/resources/application.conf deleted file mode 100644 index 63ff45216..000000000 --- a/skywalking-collector/skywalking-collector-cluster/src/test/resources/application.conf +++ /dev/null @@ -1,37 +0,0 @@ -akka { - actor { - provider = "akka.cluster.ClusterActorRefProvider" - - serializers { - java = "akka.serialization.JavaSerializer" - proto = "akka.remote.serialization.ProtobufSerializer" -// data = "com.a.eye.skywalking.collector.worker.TraceSegmentSerializer" -// json = "com.a.eye.skywalking.collector.commons.serializer.JsonSerializer" - } - - serialization-bindings { - "java.lang.String" = java - "com.google.protobuf.Message" = proto -// "com.a.eye.skywalking.messages.ISerializable" = data -// "com.google.gson.JsonObject" = json - // "java.io.Serializable" = none - } - - // serialize-messages = on - warn-about-java-serializer-usage = on - } - - remote { - log-remote-lifecycle-events = off - - netty.tcp { - hostname = "127.0.0.1" - port = 1000 - } - } - - cluster { - auto-down-unreachable-after = off - metrics.enabled = off - } -} \ No newline at end of file diff --git a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/AnalysisMember.java b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/AnalysisMember.java index ef821a8cd..a5291819e 100644 --- a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/AnalysisMember.java +++ b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/AnalysisMember.java @@ -2,6 +2,7 @@ package com.a.eye.skywalking.collector.worker; import com.a.eye.skywalking.collector.actor.*; import com.a.eye.skywalking.collector.queue.EndOfBatchCommand; +import com.a.eye.skywalking.collector.worker.config.CacheSizeConfig; /** * @author pengys5 @@ -12,6 +13,8 @@ public abstract class AnalysisMember extends AbstractLocalAsyncWorker { super(role, clusterContext, selfContext); } + private int messageNum; + public abstract void analyse(Object message) throws Exception; @Override @@ -23,11 +26,17 @@ public abstract class AnalysisMember extends AbstractLocalAsyncWorker { if (message instanceof EndOfBatchCommand) { aggregation(); } else { + messageNum++; try { analyse(message); } catch (Exception e) { saveException(e); } + + if (messageNum >= CacheSizeConfig.Cache.Analysis.SIZE) { + aggregation(); + messageNum = 0; + } } } diff --git a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/CollectorBootStartUp.java b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/CollectorBootStartUp.java index daaccf41e..5d5636194 100644 --- a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/CollectorBootStartUp.java +++ b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/CollectorBootStartUp.java @@ -5,6 +5,7 @@ import com.a.eye.skywalking.collector.actor.ClusterWorkerContext; import com.a.eye.skywalking.collector.worker.httpserver.HttpServer; import com.a.eye.skywalking.collector.worker.storage.EsClient; import com.a.eye.skywalking.collector.worker.storage.IndexCreator; +import com.a.eye.skywalking.collector.worker.storage.PersistenceTimer; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; @@ -20,6 +21,7 @@ public class CollectorBootStartUp { collectorSystem.boot(); EsClient.INSTANCE.boot(); IndexCreator.INSTANCE.create(); + PersistenceTimer.INSTANCE.boot(); HttpServer.INSTANCE.boot((ClusterWorkerContext)collectorSystem.getClusterContext()); } } diff --git a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/JoinAndSplitAnalysisMember.java b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/JoinAndSplitAnalysisMember.java new file mode 100644 index 000000000..92f61295e --- /dev/null +++ b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/JoinAndSplitAnalysisMember.java @@ -0,0 +1,41 @@ +package com.a.eye.skywalking.collector.worker; + +import com.a.eye.skywalking.collector.actor.ClusterWorkerContext; +import com.a.eye.skywalking.collector.actor.LocalWorkerContext; +import com.a.eye.skywalking.collector.actor.Role; +import com.a.eye.skywalking.collector.actor.WorkerRefs; +import com.a.eye.skywalking.collector.worker.storage.JoinAndSplitAnalysisData; + +/** + * @author pengys5 + */ +public abstract class JoinAndSplitAnalysisMember extends AnalysisMember { + private JoinAndSplitAnalysisData joinAndSplitAnalysisData; + + public JoinAndSplitAnalysisMember(Role role, ClusterWorkerContext clusterContext, LocalWorkerContext selfContext) { + super(role, clusterContext, selfContext); + joinAndSplitAnalysisData = new JoinAndSplitAnalysisData(); + } + + private JoinAndSplitAnalysisData getJoinAndSplitAnalysisData() { + return joinAndSplitAnalysisData; + } + + final protected void set(String id, String attributeName, String value) throws Exception { + getJoinAndSplitAnalysisData().getOrCreate(id).set(attributeName, value); + } + + @Override + final protected void aggregation() throws Exception { + getJoinAndSplitAnalysisData().asMap().forEach((key, value) -> { + try { + aggWorkRefs().tell(value); + } catch (Exception e) { + logger().error(e); + } + }); + getJoinAndSplitAnalysisData().asMap().clear(); + } + + protected abstract WorkerRefs aggWorkRefs(); +} diff --git a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/JoinAndSplitPersistenceMember.java b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/JoinAndSplitPersistenceMember.java new file mode 100644 index 000000000..81b9f27a7 --- /dev/null +++ b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/JoinAndSplitPersistenceMember.java @@ -0,0 +1,58 @@ +package com.a.eye.skywalking.collector.worker; + +import com.a.eye.skywalking.collector.actor.ClusterWorkerContext; +import com.a.eye.skywalking.collector.actor.LocalWorkerContext; +import com.a.eye.skywalking.collector.actor.Role; +import com.a.eye.skywalking.collector.worker.storage.EsClient; +import com.a.eye.skywalking.collector.worker.storage.JoinAndSplitData; +import com.a.eye.skywalking.collector.worker.storage.JoinAndSplitPersistenceData; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; +import org.elasticsearch.action.index.IndexRequestBuilder; +import org.elasticsearch.client.Client; + +import java.util.List; +import java.util.Map; + +/** + * @author pengys5 + */ +public abstract class JoinAndSplitPersistenceMember extends PersistenceMember { + + private Logger logger = LogManager.getFormatterLogger(JoinAndSplitPersistenceMember.class); + + protected JoinAndSplitPersistenceMember(Role role, ClusterWorkerContext clusterContext, LocalWorkerContext selfContext) { + super(role, clusterContext, selfContext); + } + + @Override + public JoinAndSplitPersistenceData initializeData() { + return new JoinAndSplitPersistenceData(); + } + + @Override + final public void analyse(Object message) throws Exception { + if (message instanceof JoinAndSplitData) { + JoinAndSplitData joinAndSplitData = (JoinAndSplitData) message; + JoinAndSplitPersistenceData data = getPersistenceData(); + data.hold(); + data.getOrCreate(joinAndSplitData.getId()).merge(joinAndSplitData); + data.release(); + } else { + logger.error("unhandled message, message instance must JoinAndSplitData, but is %s", message.getClass().toString()); + } + } + + @Override + final protected void prepareIndex(List builderList) { + Map lastData = getPersistenceData().getLast().asMap(); + extractData(lastData); + + Client client = EsClient.INSTANCE.getClient(); + lastData.forEach((key, value) -> { + IndexRequestBuilder builder = client.prepareIndex(esIndex(), esType(), key).setSource(value.asMap()); + builderList.add(builder); + }); + lastData.clear(); + } +} diff --git a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/MergeAnalysisMember.java b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/MergeAnalysisMember.java deleted file mode 100644 index 9864a5e29..000000000 --- a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/MergeAnalysisMember.java +++ /dev/null @@ -1,39 +0,0 @@ -package com.a.eye.skywalking.collector.worker; - -import com.a.eye.skywalking.collector.actor.ClusterWorkerContext; -import com.a.eye.skywalking.collector.actor.LocalWorkerContext; -import com.a.eye.skywalking.collector.actor.Role; -import com.a.eye.skywalking.collector.worker.config.CacheSizeConfig; -import com.a.eye.skywalking.collector.worker.storage.MergeData; -import com.a.eye.skywalking.collector.worker.storage.MergePersistenceData; - -/** - * @author pengys5 - */ -public abstract class MergeAnalysisMember extends AnalysisMember { - - private MergePersistenceData persistenceData; - - protected MergeAnalysisMember(Role role, ClusterWorkerContext clusterContext, LocalWorkerContext selfContext) { - super(role, clusterContext, selfContext); - persistenceData = new MergePersistenceData(); - } - - private MergePersistenceData getPersistenceData() { - return persistenceData; - } - - final protected void setMergeData(String id, String column, String value) throws Exception { - getPersistenceData().getElseCreate(id).setMergeData(column, value); - if (getPersistenceData().size() >= CacheSizeConfig.Cache.Analysis.SIZE) { - aggregation(); - } - } - - final public MergeData pushOne() { - if (getPersistenceData().iterator().hasNext()) { - return getPersistenceData().pushOne(); - } - return null; - } -} diff --git a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/MergePersistenceMember.java b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/MergePersistenceMember.java deleted file mode 100644 index f6d7ebf75..000000000 --- a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/MergePersistenceMember.java +++ /dev/null @@ -1,95 +0,0 @@ -package com.a.eye.skywalking.collector.worker; - -import com.a.eye.skywalking.collector.actor.ClusterWorkerContext; -import com.a.eye.skywalking.collector.actor.LocalWorkerContext; -import com.a.eye.skywalking.collector.actor.Role; -import com.a.eye.skywalking.collector.worker.config.CacheSizeConfig; -import com.a.eye.skywalking.collector.worker.storage.EsClient; -import com.a.eye.skywalking.collector.worker.storage.MergeData; -import com.a.eye.skywalking.collector.worker.storage.MergePersistenceData; -import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; -import org.elasticsearch.action.bulk.BulkRequestBuilder; -import org.elasticsearch.action.bulk.BulkResponse; -import org.elasticsearch.action.get.GetResponse; -import org.elasticsearch.action.get.MultiGetItemResponse; -import org.elasticsearch.action.get.MultiGetRequestBuilder; -import org.elasticsearch.action.get.MultiGetResponse; -import org.elasticsearch.client.Client; - -import java.util.Iterator; -import java.util.Map; - -/** - * @author pengys5 - */ -public abstract class MergePersistenceMember extends PersistenceMember { - - private Logger logger = LogManager.getFormatterLogger(MergePersistenceMember.class); - - private MergePersistenceData persistenceData; - - protected MergePersistenceMember(Role role, ClusterWorkerContext clusterContext, LocalWorkerContext selfContext) { - super(role, clusterContext, selfContext); - persistenceData = new MergePersistenceData(); - } - - private MergePersistenceData getPersistenceData() { - return persistenceData; - } - - @Override final public void analyse(Object message) throws Exception { - if (message instanceof MergeData) { - MergeData mergeData = (MergeData)message; - getPersistenceData().getElseCreate(mergeData.getId()).merge(mergeData); - if (getPersistenceData().size() >= CacheSizeConfig.Cache.Persistence.SIZE) { - persistence(); - } - } else { - logger.error("message unhandled"); - } - } - - final protected void persistence() { - MultiGetResponse multiGetResponse = searchFromEs(); - for (MultiGetItemResponse itemResponse : multiGetResponse) { - GetResponse response = itemResponse.getResponse(); - if (response != null && response.isExists()) { - getPersistenceData().getElseCreate(response.getId()).merge(response.getSource()); - } - } - - boolean success = saveToEs(); - if (success) { - getPersistenceData().clear(); - } - } - - private MultiGetResponse searchFromEs() { - Client client = EsClient.INSTANCE.getClient(); - MultiGetRequestBuilder multiGetRequestBuilder = client.prepareMultiGet(); - - Iterator> iterator = getPersistenceData().iterator(); - - while (iterator.hasNext()) { - multiGetRequestBuilder.add(esIndex(), esType(), iterator.next().getKey()); - } - - return multiGetRequestBuilder.get(); - } - - private boolean saveToEs() { - Client client = EsClient.INSTANCE.getClient(); - BulkRequestBuilder bulkRequest = client.prepareBulk(); - logger.debug("persistenceData SIZE: %s", getPersistenceData().size()); - - Iterator> iterator = getPersistenceData().iterator(); - while (iterator.hasNext()) { - MergeData mergeData = iterator.next().getValue(); - bulkRequest.add(client.prepareIndex(esIndex(), esType(), mergeData.getId()).setSource(mergeData.toMap())); - } - - BulkResponse bulkResponse = bulkRequest.execute().actionGet(); - return !bulkResponse.hasFailures(); - } -} diff --git a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/MetricAnalysisMember.java b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/MetricAnalysisMember.java index 4a63a5e68..51d1e64e3 100644 --- a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/MetricAnalysisMember.java +++ b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/MetricAnalysisMember.java @@ -3,32 +3,38 @@ package com.a.eye.skywalking.collector.worker; import com.a.eye.skywalking.collector.actor.ClusterWorkerContext; import com.a.eye.skywalking.collector.actor.LocalWorkerContext; import com.a.eye.skywalking.collector.actor.Role; -import com.a.eye.skywalking.collector.worker.config.CacheSizeConfig; -import com.a.eye.skywalking.collector.worker.storage.MetricData; -import com.a.eye.skywalking.collector.worker.storage.MetricPersistenceData; +import com.a.eye.skywalking.collector.actor.WorkerRefs; +import com.a.eye.skywalking.collector.worker.storage.MetricAnalysisData; /** * @author pengys5 */ public abstract class MetricAnalysisMember extends AnalysisMember { - - private MetricPersistenceData persistenceData = new MetricPersistenceData(); + private MetricAnalysisData metricAnalysisData = new MetricAnalysisData(); public MetricAnalysisMember(Role role, ClusterWorkerContext clusterContext, LocalWorkerContext selfContext) { super(role, clusterContext, selfContext); } - final protected void setMetric(String id, String column, Long value) throws Exception { - persistenceData.getElseCreate(id).setMetric(column, value); - if (persistenceData.size() >= CacheSizeConfig.Cache.Persistence.SIZE) { - aggregation(); - } + final protected void set(String id, String metricName, Long value) throws Exception { + getMetricAnalysisData().getOrCreate(id).set(metricName, value); } - final public MetricData pushOne() { - if (persistenceData.iterator().hasNext()) { - return persistenceData.pushOne(); - } - return null; + private MetricAnalysisData getMetricAnalysisData() { + return metricAnalysisData; } + + @Override + final protected void aggregation() throws Exception { + getMetricAnalysisData().asMap().forEach((key, value) -> { + try { + aggWorkRefs().tell(value); + } catch (Exception e) { + e.printStackTrace(); + } + }); + getMetricAnalysisData().asMap().clear(); + } + + protected abstract WorkerRefs aggWorkRefs(); } diff --git a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/MetricPersistenceMember.java b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/MetricPersistenceMember.java index 2089848b9..520b100ef 100644 --- a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/MetricPersistenceMember.java +++ b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/MetricPersistenceMember.java @@ -3,89 +3,55 @@ package com.a.eye.skywalking.collector.worker; import com.a.eye.skywalking.collector.actor.ClusterWorkerContext; import com.a.eye.skywalking.collector.actor.LocalWorkerContext; import com.a.eye.skywalking.collector.actor.Role; -import com.a.eye.skywalking.collector.worker.config.CacheSizeConfig; import com.a.eye.skywalking.collector.worker.storage.EsClient; import com.a.eye.skywalking.collector.worker.storage.MetricData; import com.a.eye.skywalking.collector.worker.storage.MetricPersistenceData; +import java.util.List; +import java.util.Map; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; -import org.elasticsearch.action.bulk.BulkRequestBuilder; -import org.elasticsearch.action.bulk.BulkResponse; -import org.elasticsearch.action.get.GetResponse; -import org.elasticsearch.action.get.MultiGetItemResponse; -import org.elasticsearch.action.get.MultiGetRequestBuilder; -import org.elasticsearch.action.get.MultiGetResponse; +import org.elasticsearch.action.index.IndexRequestBuilder; import org.elasticsearch.client.Client; -import java.util.Iterator; -import java.util.Map; - /** * @author pengys5 */ -public abstract class MetricPersistenceMember extends PersistenceMember { +public abstract class MetricPersistenceMember extends PersistenceMember { private Logger logger = LogManager.getFormatterLogger(MetricPersistenceMember.class); - private MetricPersistenceData persistenceData = new MetricPersistenceData(); - public MetricPersistenceMember(Role role, ClusterWorkerContext clusterContext, LocalWorkerContext selfContext) { super(role, clusterContext, selfContext); } - @Override final public void analyse(Object message) throws Exception { + @Override + public MetricPersistenceData initializeData() { + return new MetricPersistenceData(); + } + + @Override + final public void analyse(Object message) throws Exception { if (message instanceof MetricData) { - MetricData metricData = (MetricData)message; - persistenceData.getElseCreate(metricData.getId()).merge(metricData); - if (persistenceData.size() >= CacheSizeConfig.Cache.Persistence.SIZE) { - persistence(); - } + MetricData metricData = (MetricData) message; + MetricPersistenceData data = getPersistenceData(); + data.hold(); + data.getOrCreate(metricData.getId()).merge(metricData); + data.release(); } else { - logger.error("message unhandled"); + logger.error("unhandled message, message instance must MetricData, but is %s", message.getClass().toString()); } } - final protected void persistence() { - MultiGetResponse multiGetResponse = searchFromEs(); - for (MultiGetItemResponse itemResponse : multiGetResponse) { - GetResponse response = itemResponse.getResponse(); - if (response != null && response.isExists()) { - persistenceData.getElseCreate(response.getId()).merge(response.getSource()); - } - } + @Override + final protected void prepareIndex(List builderList) { + Map lastData = getPersistenceData().getLast().asMap(); + extractData(lastData); - boolean success = saveToEs(); - if (success) { - persistenceData.clear(); - } - } - - private MultiGetResponse searchFromEs() { Client client = EsClient.INSTANCE.getClient(); - MultiGetRequestBuilder multiGetRequestBuilder = client.prepareMultiGet(); - - Iterator> iterator = persistenceData.iterator(); - - while (iterator.hasNext()) { - multiGetRequestBuilder.add(esIndex(), esType(), iterator.next().getKey()); - } - - MultiGetResponse multiGetResponse = multiGetRequestBuilder.get(); - return multiGetResponse; + lastData.forEach((key, value) -> { + IndexRequestBuilder builder = client.prepareIndex(esIndex(), esType(), key).setSource(value.asMap()); + builderList.add(builder); + }); + lastData.clear(); } - - private boolean saveToEs() { - Client client = EsClient.INSTANCE.getClient(); - BulkRequestBuilder bulkRequest = client.prepareBulk(); - logger.debug("persistenceData SIZE: %s", persistenceData.size()); - - Iterator> iterator = persistenceData.iterator(); - while (iterator.hasNext()) { - MetricData metricData = iterator.next().getValue(); - bulkRequest.add(client.prepareIndex(esIndex(), esType(), metricData.getId()).setSource(metricData.toMap())); - } - - BulkResponse bulkResponse = bulkRequest.execute().actionGet(); - return !bulkResponse.hasFailures(); - } -} +} \ No newline at end of file diff --git a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/PersistenceMember.java b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/PersistenceMember.java index 4a2817819..ffe16ddab 100644 --- a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/PersistenceMember.java +++ b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/PersistenceMember.java @@ -1,19 +1,38 @@ package com.a.eye.skywalking.collector.worker; import com.a.eye.skywalking.collector.actor.*; -import com.a.eye.skywalking.collector.queue.EndOfBatchCommand; +import com.a.eye.skywalking.collector.worker.storage.*; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; +import org.elasticsearch.action.get.GetResponse; +import org.elasticsearch.action.get.MultiGetItemResponse; +import org.elasticsearch.action.get.MultiGetRequestBuilder; +import org.elasticsearch.action.get.MultiGetResponse; +import org.elasticsearch.action.index.IndexRequestBuilder; +import org.elasticsearch.client.Client; + +import java.util.LinkedList; +import java.util.List; +import java.util.Map; /** * @author pengys5 */ -public abstract class PersistenceMember extends AbstractLocalAsyncWorker { +public abstract class PersistenceMember extends AbstractLocalSyncWorker { private Logger logger = LogManager.getFormatterLogger(PersistenceMember.class); public PersistenceMember(Role role, ClusterWorkerContext clusterContext, LocalWorkerContext selfContext) { super(role, clusterContext, selfContext); + persistenceData = initializeData(); + } + + private T persistenceData; + + public abstract T initializeData(); + + protected T getPersistenceData() { + return persistenceData; } public abstract String esIndex(); @@ -22,17 +41,76 @@ public abstract class PersistenceMember extends AbstractLocalAsyncWorker { public abstract void analyse(Object message) throws Exception; - @Override final public void preStart() throws ProviderNotFoundException { + @Override + final public void preStart() throws ProviderNotFoundException { } - @Override final protected void onWork(Object message) throws Exception { - if (message instanceof EndOfBatchCommand) { - persistence(); + @Override + protected void onWork(Object request, Object response) throws Exception { + if (request instanceof FlushAndSwitch) { + persistenceData.switchPointer(); + while (persistenceData.getLast().isHolding()) { + Thread.sleep(10); + } + + if (response instanceof LinkedList) { + prepareIndex((LinkedList) response); + } else { + logger.error("unhandled response, response instance must LinkedList, but is %s", response.getClass().toString()); + } + } else { - analyse(message); + analyse(request); } } - protected abstract void persistence(); + private MultiGetResponse searchFromEs(Map dataMap) { + Client client = EsClient.INSTANCE.getClient(); + MultiGetRequestBuilder multiGetRequestBuilder = client.prepareMultiGet(); + + HasDataFlag flag = new HasDataFlag(); + dataMap.forEach((key, value) -> { + multiGetRequestBuilder.add(esIndex(), esType(), value.getId()); + flag.doTagHasData(); + }); + + if (flag.isHasData()) { + return multiGetRequestBuilder.get(); + } else { + return null; + } + } + + final void extractData(Map dataMap) { + MultiGetResponse multiGetResponse = searchFromEs(dataMap); + if (multiGetResponse != null) { + for (MultiGetItemResponse itemResponse : multiGetResponse) { + GetResponse response = itemResponse.getResponse(); + if (response != null && response.isExists()) { + if (dataMap.containsKey(response.getId())) { + dataMap.get(response.getId()).merge(response.getSource()); + } + } + } + } + } + + protected abstract void prepareIndex(List builderList); + + class HasDataFlag { + private boolean hasData; + + HasDataFlag() { + hasData = false; + } + + boolean isHasData() { + return hasData; + } + + void doTagHasData() { + this.hasData = true; + } + } } diff --git a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/RecordAnalysisMember.java b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/RecordAnalysisMember.java index 1e52670dc..137b9698d 100644 --- a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/RecordAnalysisMember.java +++ b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/RecordAnalysisMember.java @@ -3,33 +3,43 @@ package com.a.eye.skywalking.collector.worker; import com.a.eye.skywalking.collector.actor.ClusterWorkerContext; import com.a.eye.skywalking.collector.actor.LocalWorkerContext; import com.a.eye.skywalking.collector.actor.Role; -import com.a.eye.skywalking.collector.worker.config.CacheSizeConfig; -import com.a.eye.skywalking.collector.worker.storage.RecordData; -import com.a.eye.skywalking.collector.worker.storage.RecordPersistenceData; +import com.a.eye.skywalking.collector.actor.WorkerRefs; +import com.a.eye.skywalking.collector.worker.storage.RecordAnalysisData; import com.google.gson.JsonObject; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; /** * @author pengys5 */ public abstract class RecordAnalysisMember extends AnalysisMember { - private RecordPersistenceData persistenceData = new RecordPersistenceData(); + private Logger logger = LogManager.getFormatterLogger(RecordAnalysisMember.class); + + private RecordAnalysisData recordAnalysisData = new RecordAnalysisData(); public RecordAnalysisMember(Role role, ClusterWorkerContext clusterContext, LocalWorkerContext selfContext) { super(role, clusterContext, selfContext); } - final public void setRecord(String id, JsonObject record) throws Exception { - persistenceData.getElseCreate(id).setRecord(record); - if (persistenceData.size() >= CacheSizeConfig.Cache.Analysis.SIZE) { - aggregation(); - } + final public void set(String id, JsonObject record) throws Exception { + getRecordAnalysisData().getOrCreate(id).set(record); } - final public RecordData pushOne() { - if (persistenceData.hasNext()) { - return persistenceData.pushOne(); - } - return null; + private RecordAnalysisData getRecordAnalysisData() { + return recordAnalysisData; } + + @Override final protected void aggregation() throws Exception { + getRecordAnalysisData().asMap().forEach((key, value) -> { + try { + aggWorkRefs().tell(value); + } catch (Exception e) { + logger.error(e); + } + }); + getRecordAnalysisData().asMap().clear(); + } + + protected abstract WorkerRefs aggWorkRefs(); } diff --git a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/RecordPersistenceMember.java b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/RecordPersistenceMember.java index 42a9195d2..ec0f56095 100644 --- a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/RecordPersistenceMember.java +++ b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/RecordPersistenceMember.java @@ -3,75 +3,52 @@ package com.a.eye.skywalking.collector.worker; import com.a.eye.skywalking.collector.actor.ClusterWorkerContext; import com.a.eye.skywalking.collector.actor.LocalWorkerContext; import com.a.eye.skywalking.collector.actor.Role; -import com.a.eye.skywalking.collector.worker.config.CacheSizeConfig; import com.a.eye.skywalking.collector.worker.storage.EsClient; import com.a.eye.skywalking.collector.worker.storage.RecordData; import com.a.eye.skywalking.collector.worker.storage.RecordPersistenceData; -import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; -import org.elasticsearch.action.bulk.BulkRequestBuilder; -import org.elasticsearch.action.bulk.BulkResponse; -import org.elasticsearch.client.Client; - -import java.util.Iterator; +import java.util.List; import java.util.Map; +import org.elasticsearch.action.index.IndexRequestBuilder; +import org.elasticsearch.client.Client; /** * @author pengys5 */ -public abstract class RecordPersistenceMember extends PersistenceMember { - - private Logger logger = LogManager.getFormatterLogger(RecordPersistenceMember.class); - - private RecordPersistenceData persistenceData; +public abstract class RecordPersistenceMember extends PersistenceMember { public RecordPersistenceMember(Role role, ClusterWorkerContext clusterContext, LocalWorkerContext selfContext) { super(role, clusterContext, selfContext); - persistenceData = new RecordPersistenceData(); } - private RecordPersistenceData getPersistenceData() { - return this.persistenceData; + @Override + final public RecordPersistenceData initializeData() { + return new RecordPersistenceData(); } @Override public void analyse(Object message) throws Exception { if (message instanceof RecordData) { - RecordData recordData = (RecordData)message; - logger.debug("setRecord: id: %s, data: %s", recordData.getId(), recordData.getRecord()); - getPersistenceData().getElseCreate(recordData.getId()).setRecord(recordData.getRecord()); - if (getPersistenceData().size() >= CacheSizeConfig.Cache.Persistence.SIZE) { - persistence(); - } + RecordData recordData = (RecordData) message; + logger().debug("set: id: %s, data: %s", recordData.getId(), recordData.get()); + RecordPersistenceData data = getPersistenceData(); + data.hold(); + data.getOrCreate(recordData.getId()).set(recordData.get()); + data.release(); } else { - logger.error("message unhandled"); + logger().error("message unhandled"); } } - protected void persistence() { - boolean success = saveToEs(); - if (success) { - getPersistenceData().clear(); - } - } + @Override + final protected void prepareIndex(List builderList) { + Map lastData = getPersistenceData().getLast().asMap(); + extractData(lastData); - private boolean saveToEs() { Client client = EsClient.INSTANCE.getClient(); - BulkRequestBuilder bulkRequest = client.prepareBulk(); - logger.debug("persistenceData SIZE: %s", getPersistenceData().size()); - - Iterator> iterator = getPersistenceData().iterator(); - - while (iterator.hasNext()) { - Map.Entry recordData = iterator.next(); - logger.debug("saveToEs: key: %s, data: %s", recordData.getKey(), recordData.getValue().getRecord().toString()); - bulkRequest.add(client.prepareIndex(esIndex(), esType(), recordData.getKey()).setSource(recordData.getValue().getRecord().toString())); - } - - BulkResponse bulkResponse = bulkRequest.execute().actionGet(); - if (bulkResponse.hasFailures()) { - logger.error(bulkResponse.buildFailureMessage()); - } - return !bulkResponse.hasFailures(); + lastData.forEach((key, value) -> { + IndexRequestBuilder builder = client.prepareIndex(esIndex(), esType(), key).setSource(value.get().toString()); + builderList.add(builder); + }); + lastData.clear(); } } diff --git a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/config/CacheSizeConfig.java b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/config/CacheSizeConfig.java index 69fb26ea0..5fc442615 100644 --- a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/config/CacheSizeConfig.java +++ b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/config/CacheSizeConfig.java @@ -7,11 +7,11 @@ public class CacheSizeConfig { public static class Cache { public static class Analysis { - public static int SIZE = 1000; + public static int SIZE = 1024; } public static class Persistence { - public static int SIZE = 1000; + public static int SIZE = 5000; } } } diff --git a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/config/EsConfig.java b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/config/EsConfig.java index d4dc24a5f..0c8c133fc 100644 --- a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/config/EsConfig.java +++ b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/config/EsConfig.java @@ -15,6 +15,12 @@ public class EsConfig { } } + public static class Persistence { + public static class Timer { + public static Integer VALUE = 3; + } + } + public static class Index { public static class Initialize { @@ -28,6 +34,40 @@ public class EsConfig { public static class Replicas { public static String NUMBER = ""; } + + public static class RefreshInterval { + public static class GlobalTraceIndex { + public static Integer VALUE = 1; + } + + public static class NodeCompIndex { + public static Integer VALUE = 1; + } + + public static class NodeMappingIndex { + public static Integer VALUE = 1; + } + + public static class NodeRefIndex { + public static Integer VALUE = 1; + } + + public static class NodeRefResSumIndex { + public static Integer VALUE = 1; + } + + public static class SegmentCostIndex { + public static Integer VALUE = 10; + } + + public static class SegmentExceptionIndex { + public static Integer VALUE = 10; + } + + public static class SegmentIndex { + public static Integer VALUE = 10; + } + } } } diff --git a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/config/WorkerConfig.java b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/config/WorkerConfig.java index 004cdc63b..c0603a0d7 100644 --- a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/config/WorkerConfig.java +++ b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/config/WorkerConfig.java @@ -8,61 +8,57 @@ public class WorkerConfig { public static class WorkerNum { public static class Node { public static class NodeCompAgg { - public static int VALUE = 10; + public static int VALUE = 2; } public static class NodeMappingDayAgg { - public static int VALUE = 10; + public static int VALUE = 2; } public static class NodeMappingHourAgg { - public static int VALUE = 10; + public static int VALUE = 2; } public static class NodeMappingMinuteAgg { - public static int VALUE = 10; + public static int VALUE = 2; } } public static class NodeRef { public static class NodeRefDayAgg { - public static int VALUE = 10; + public static int VALUE = 2; } public static class NodeRefHourAgg { - public static int VALUE = 10; + public static int VALUE = 2; } public static class NodeRefMinuteAgg { - public static int VALUE = 10; + public static int VALUE = 2; } public static class NodeRefResSumDayAgg { - public static int VALUE = 10; + public static int VALUE = 2; } public static class NodeRefResSumHourAgg { - public static int VALUE = 10; + public static int VALUE = 2; } public static class NodeRefResSumMinuteAgg { - public static int VALUE = 10; + public static int VALUE = 2; } } public static class GlobalTrace { public static class GlobalTraceAgg { - public static int VALUE = 10; + public static int VALUE = 2; } } } public static class Queue { public static class GlobalTrace { - public static class GlobalTraceSave { - public static int SIZE = 1024; - } - public static class GlobalTraceAnalysis { public static int SIZE = 1024; } @@ -70,19 +66,19 @@ public class WorkerConfig { public static class Segment { public static class SegmentPost { + public static int SIZE = 4096; + } + + public static class SegmentAnalysis { public static int SIZE = 1024; } - public static class SegmentCostSave { - public static int SIZE = 1024; + public static class SegmentCostAnalysis { + public static int SIZE = 4096; } - public static class SegmentSave { - public static int SIZE = 1024; - } - - public static class SegmentExceptionSave { - public static int SIZE = 1024; + public static class SegmentExceptionAnalysis { + public static int SIZE = 4096; } } @@ -102,22 +98,6 @@ public class WorkerConfig { public static class NodeMappingMinuteAnalysis { public static int SIZE = 1024; } - - public static class NodeCompSave { - public static int SIZE = 1024; - } - - public static class NodeMappingDaySave { - public static int SIZE = 1024; - } - - public static class NodeMappingHourSave { - public static int SIZE = 1024; - } - - public static class NodeMappingMinuteSave { - public static int SIZE = 1024; - } } public static class NodeRef { @@ -133,30 +113,6 @@ public class WorkerConfig { public static int SIZE = 1024; } - public static class NodeRefDaySave { - public static int SIZE = 1024; - } - - public static class NodeRefHourSave { - public static int SIZE = 1024; - } - - public static class NodeRefMinuteSave { - public static int SIZE = 1024; - } - - public static class NodeRefResSumDaySave { - public static int SIZE = 1024; - } - - public static class NodeRefResSumHourSave { - public static int SIZE = 1024; - } - - public static class NodeRefResSumMinuteSave { - public static int SIZE = 1024; - } - public static class NodeRefResSumDayAnalysis { public static int SIZE = 1024; } diff --git a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/globaltrace/GlobalTraceGetWithGlobalId.java b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/globaltrace/GlobalTraceGetWithGlobalId.java index c3e07f21f..6bf9a5a7d 100644 --- a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/globaltrace/GlobalTraceGetWithGlobalId.java +++ b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/globaltrace/GlobalTraceGetWithGlobalId.java @@ -46,8 +46,6 @@ public class GlobalTraceGetWithGlobalId extends AbstractGet { } public static class Factory extends AbstractGetProvider { - public static Factory INSTANCE = new Factory(); - @Override public Role role() { return WorkerRole.INSTANCE; diff --git a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/globaltrace/GlobalTraceIndex.java b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/globaltrace/GlobalTraceIndex.java index 37d3b95ad..760fa5516 100644 --- a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/globaltrace/GlobalTraceIndex.java +++ b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/globaltrace/GlobalTraceIndex.java @@ -1,5 +1,6 @@ package com.a.eye.skywalking.collector.worker.globaltrace; +import com.a.eye.skywalking.collector.worker.config.EsConfig; import com.a.eye.skywalking.collector.worker.storage.AbstractIndex; import org.elasticsearch.common.xcontent.XContentBuilder; import org.elasticsearch.common.xcontent.XContentFactory; @@ -24,14 +25,18 @@ public class GlobalTraceIndex extends AbstractIndex { return true; } + @Override + public int refreshInterval() { + return EsConfig.Es.Index.RefreshInterval.GlobalTraceIndex.VALUE; + } + @Override public XContentBuilder createMappingBuilder() throws IOException { XContentBuilder mappingBuilder = XContentFactory.jsonBuilder() .startObject() .startObject("properties") .startObject(SUB_SEG_IDS) - .field("type", "text") - .field("index", "not_analyzed") + .field("type", "keyword") .endObject() .endObject() .endObject(); diff --git a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/globaltrace/analysis/GlobalTraceAnalysis.java b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/globaltrace/analysis/GlobalTraceAnalysis.java index e61ea9f11..27a72d1fe 100644 --- a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/globaltrace/analysis/GlobalTraceAnalysis.java +++ b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/globaltrace/analysis/GlobalTraceAnalysis.java @@ -1,26 +1,27 @@ package com.a.eye.skywalking.collector.worker.globaltrace.analysis; -import com.a.eye.skywalking.collector.actor.AbstractLocalAsyncWorkerProvider; -import com.a.eye.skywalking.collector.actor.ClusterWorkerContext; -import com.a.eye.skywalking.collector.actor.LocalWorkerContext; +import com.a.eye.skywalking.collector.actor.*; import com.a.eye.skywalking.collector.actor.selector.RollingSelector; import com.a.eye.skywalking.collector.actor.selector.WorkerSelector; -import com.a.eye.skywalking.collector.worker.MergeAnalysisMember; +import com.a.eye.skywalking.collector.worker.JoinAndSplitAnalysisMember; import com.a.eye.skywalking.collector.worker.config.WorkerConfig; import com.a.eye.skywalking.collector.worker.globaltrace.GlobalTraceIndex; import com.a.eye.skywalking.collector.worker.globaltrace.persistence.GlobalTraceAgg; import com.a.eye.skywalking.collector.worker.segment.SegmentPost; import com.a.eye.skywalking.collector.worker.segment.entity.GlobalTraceId; import com.a.eye.skywalking.collector.worker.segment.entity.Segment; -import com.a.eye.skywalking.collector.worker.storage.MergeData; import com.a.eye.skywalking.collector.worker.tools.CollectionTools; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; import java.util.List; /** * @author pengys5 */ -public class GlobalTraceAnalysis extends MergeAnalysisMember { +public class GlobalTraceAnalysis extends JoinAndSplitAnalysisMember { + + private Logger logger = LogManager.getFormatterLogger(GlobalTraceAnalysis.class); GlobalTraceAnalysis(Role role, ClusterWorkerContext clusterContext, LocalWorkerContext selfContext) { super(role, clusterContext, selfContext); @@ -36,23 +37,25 @@ public class GlobalTraceAnalysis extends MergeAnalysisMember { if (CollectionTools.isNotEmpty(globalTraceIdList)) { for (GlobalTraceId disTraceId : globalTraceIdList) { String traceId = disTraceId.get(); - setMergeData(traceId, GlobalTraceIndex.SUB_SEG_IDS, subSegmentId); + set(traceId, GlobalTraceIndex.SUB_SEG_IDS, subSegmentId); } } + } else { + logger.error("unhandled message, message instance must SegmentPost.SegmentWithTimeSlice, but is %s", message.getClass().toString()); } } @Override - protected void aggregation() throws Exception { - MergeData oneRecord; - while ((oneRecord = pushOne()) != null) { - getClusterContext().lookup(GlobalTraceAgg.Role.INSTANCE).tell(oneRecord); + protected WorkerRefs aggWorkRefs() { + try { + return getClusterContext().lookup(GlobalTraceAgg.Role.INSTANCE); + } catch (WorkerNotFoundException e) { + logger.error("The role of %s worker not found", GlobalTraceAgg.Role.INSTANCE.roleName()); } + return null; } public static class Factory extends AbstractLocalAsyncWorkerProvider { - public static Factory INSTANCE = new Factory(); - @Override public Role role() { return Role.INSTANCE; diff --git a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/globaltrace/persistence/GlobalTraceAgg.java b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/globaltrace/persistence/GlobalTraceAgg.java index d658e936f..5335b20c4 100644 --- a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/globaltrace/persistence/GlobalTraceAgg.java +++ b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/globaltrace/persistence/GlobalTraceAgg.java @@ -4,7 +4,7 @@ import com.a.eye.skywalking.collector.actor.*; import com.a.eye.skywalking.collector.actor.selector.HashCodeSelector; import com.a.eye.skywalking.collector.actor.selector.WorkerSelector; import com.a.eye.skywalking.collector.worker.config.WorkerConfig; -import com.a.eye.skywalking.collector.worker.storage.MergeData; +import com.a.eye.skywalking.collector.worker.storage.JoinAndSplitData; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; @@ -27,16 +27,14 @@ public class GlobalTraceAgg extends AbstractClusterWorker { @Override protected void onWork(Object message) throws Exception { - if (message instanceof MergeData) { + if (message instanceof JoinAndSplitData) { getSelfContext().lookup(GlobalTraceSave.Role.INSTANCE).tell(message); } else { - logger.error("message unhandled"); + logger.error("unhandled message, message instance must JoinAndSplitData, but is %s", message.getClass().toString()); } } public static class Factory extends AbstractClusterWorkerProvider { - public static Factory INSTANCE = new Factory(); - @Override public Role role() { return Role.INSTANCE; diff --git a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/globaltrace/persistence/GlobalTraceSave.java b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/globaltrace/persistence/GlobalTraceSave.java index 5691efbb0..e5d91a38f 100644 --- a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/globaltrace/persistence/GlobalTraceSave.java +++ b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/globaltrace/persistence/GlobalTraceSave.java @@ -1,21 +1,21 @@ package com.a.eye.skywalking.collector.worker.globaltrace.persistence; -import com.a.eye.skywalking.collector.actor.AbstractLocalAsyncWorkerProvider; +import com.a.eye.skywalking.collector.actor.AbstractLocalSyncWorkerProvider; import com.a.eye.skywalking.collector.actor.ClusterWorkerContext; import com.a.eye.skywalking.collector.actor.LocalWorkerContext; import com.a.eye.skywalking.collector.actor.selector.HashCodeSelector; import com.a.eye.skywalking.collector.actor.selector.WorkerSelector; -import com.a.eye.skywalking.collector.worker.MergePersistenceMember; -import com.a.eye.skywalking.collector.worker.config.WorkerConfig; +import com.a.eye.skywalking.collector.worker.JoinAndSplitPersistenceMember; import com.a.eye.skywalking.collector.worker.globaltrace.GlobalTraceIndex; +import com.a.eye.skywalking.collector.worker.storage.PersistenceWorkerListener; /** * @author pengys5 */ -public class GlobalTraceSave extends MergePersistenceMember { +public class GlobalTraceSave extends JoinAndSplitPersistenceMember { GlobalTraceSave(com.a.eye.skywalking.collector.actor.Role role, ClusterWorkerContext clusterContext, - LocalWorkerContext selfContext) { + LocalWorkerContext selfContext) { super(role, clusterContext, selfContext); } @@ -29,22 +29,17 @@ public class GlobalTraceSave extends MergePersistenceMember { return GlobalTraceIndex.TYPE_RECORD; } - public static class Factory extends AbstractLocalAsyncWorkerProvider { - public static Factory INSTANCE = new Factory(); - + public static class Factory extends AbstractLocalSyncWorkerProvider { @Override public Role role() { return Role.INSTANCE; } - @Override - public int queueSize() { - return WorkerConfig.Queue.GlobalTrace.GlobalTraceSave.SIZE; - } - @Override public GlobalTraceSave workerInstance(ClusterWorkerContext clusterContext) { - return new GlobalTraceSave(role(), clusterContext, new LocalWorkerContext()); + GlobalTraceSave worker = new GlobalTraceSave(role(), clusterContext, new LocalWorkerContext()); + PersistenceWorkerListener.INSTANCE.register(worker); + return worker; } } diff --git a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/globaltrace/persistence/GlobalTraceSearchWithGlobalId.java b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/globaltrace/persistence/GlobalTraceSearchWithGlobalId.java index 9d3706027..62a4442dd 100644 --- a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/globaltrace/persistence/GlobalTraceSearchWithGlobalId.java +++ b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/globaltrace/persistence/GlobalTraceSearchWithGlobalId.java @@ -8,7 +8,7 @@ import com.a.eye.skywalking.collector.worker.globaltrace.GlobalTraceIndex; import com.a.eye.skywalking.collector.worker.segment.SegmentIndex; import com.a.eye.skywalking.collector.worker.segment.entity.*; import com.a.eye.skywalking.collector.worker.storage.GetResponseFromEs; -import com.a.eye.skywalking.collector.worker.storage.MergeData; +import com.a.eye.skywalking.collector.worker.storage.JoinAndSplitData; import com.a.eye.skywalking.collector.worker.tools.CollectionTools; import com.google.gson.Gson; import com.google.gson.JsonObject; @@ -28,7 +28,7 @@ public class GlobalTraceSearchWithGlobalId extends AbstractLocalSyncWorker { private Gson gson = new Gson(); - GlobalTraceSearchWithGlobalId(Role role, ClusterWorkerContext clusterContext, LocalWorkerContext selfContext) { + public GlobalTraceSearchWithGlobalId(Role role, ClusterWorkerContext clusterContext, LocalWorkerContext selfContext) { super(role, clusterContext, selfContext); } @@ -41,7 +41,7 @@ public class GlobalTraceSearchWithGlobalId extends AbstractLocalSyncWorker { logger.debug("globalTraceObj: %s", globalTraceObj); String subSegIdsStr = globalTraceObj.get(GlobalTraceIndex.SUB_SEG_IDS).getAsString(); - String[] subSegIds = subSegIdsStr.split(MergeData.SPLIT); + String[] subSegIds = subSegIdsStr.split(JoinAndSplitData.SPLIT); List spanViewList = new ArrayList<>(); for (String subSegId : subSegIds) { @@ -60,6 +60,8 @@ public class GlobalTraceSearchWithGlobalId extends AbstractLocalSyncWorker { JsonObject responseObj = (JsonObject)response; responseObj.addProperty("result", buildTree(spanViewList)); + } else { + logger.error("unhandled message, message instance must String, but is %s", request.getClass().toString()); } } @@ -153,8 +155,6 @@ public class GlobalTraceSearchWithGlobalId extends AbstractLocalSyncWorker { } public static class Factory extends AbstractLocalSyncWorkerProvider { - public static Factory INSTANCE = new Factory(); - @Override public Role role() { return WorkerRole.INSTANCE; diff --git a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/httpserver/AbstractPost.java b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/httpserver/AbstractPost.java index e2c39dd0c..90c945b29 100644 --- a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/httpserver/AbstractPost.java +++ b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/httpserver/AbstractPost.java @@ -1,15 +1,20 @@ package com.a.eye.skywalking.collector.worker.httpserver; -import com.a.eye.skywalking.collector.actor.*; +import com.a.eye.skywalking.collector.actor.AbstractLocalAsyncWorker; +import com.a.eye.skywalking.collector.actor.ClusterWorkerContext; +import com.a.eye.skywalking.collector.actor.LocalAsyncWorkerRef; +import com.a.eye.skywalking.collector.actor.LocalWorkerContext; +import com.a.eye.skywalking.collector.actor.Role; import com.a.eye.skywalking.collector.worker.segment.entity.Segment; import com.google.gson.JsonObject; import com.google.gson.stream.JsonReader; - +import java.io.BufferedReader; +import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; -import java.io.BufferedReader; -import java.io.IOException; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; /** * @author pengys5 @@ -21,8 +26,7 @@ public abstract class AbstractPost extends AbstractLocalAsyncWorker { super(role, clusterContext, selfContext); } - @Override - final public void onWork(Object message) throws Exception { + @Override final public void onWork(Object message) throws Exception { onReceive(message); } @@ -30,21 +34,23 @@ public abstract class AbstractPost extends AbstractLocalAsyncWorker { static class PostWithHttpServlet extends AbstractHttpServlet { + private Logger logger = LogManager.getFormatterLogger(PostWithHttpServlet.class); + private final LocalAsyncWorkerRef ownerWorkerRef; PostWithHttpServlet(LocalAsyncWorkerRef ownerWorkerRef) { this.ownerWorkerRef = ownerWorkerRef; } - @Override - final protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + @Override final protected void doPost(HttpServletRequest request, + HttpServletResponse response) throws ServletException, IOException { JsonObject resJson = new JsonObject(); try { BufferedReader bufferedReader = request.getReader(); streamReader(bufferedReader); reply(response, resJson, HttpServletResponse.SC_OK); } catch (Exception e) { - e.printStackTrace(); + logger.error(e); resJson.addProperty("error", e.getMessage()); reply(response, resJson, HttpServletResponse.SC_INTERNAL_SERVER_ERROR); } diff --git a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/node/NodeCompIndex.java b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/node/NodeCompIndex.java index 69f795b4c..3c9995505 100644 --- a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/node/NodeCompIndex.java +++ b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/node/NodeCompIndex.java @@ -1,5 +1,6 @@ package com.a.eye.skywalking.collector.worker.node; +import com.a.eye.skywalking.collector.worker.config.EsConfig; import com.a.eye.skywalking.collector.worker.storage.AbstractIndex; import org.elasticsearch.common.xcontent.XContentBuilder; import org.elasticsearch.common.xcontent.XContentFactory; @@ -25,25 +26,27 @@ public class NodeCompIndex extends AbstractIndex { return false; } + @Override + public int refreshInterval() { + return EsConfig.Es.Index.RefreshInterval.NodeCompIndex.VALUE; + } + @Override public XContentBuilder createMappingBuilder() throws IOException { XContentBuilder mappingBuilder = XContentFactory.jsonBuilder() - .startObject() - .startObject("properties") - .startObject(NAME) - .field("type", "string") - .field("index", "not_analyzed") - .endObject() - .startObject(PEERS) - .field("type", "string") - .field("index", "not_analyzed") - .endObject() - .startObject(AGG_COLUMN) - .field("type", "string") - .field("index", "not_analyzed") - .endObject() - .endObject() - .endObject(); + .startObject() + .startObject("properties") + .startObject(NAME) + .field("type", "keyword") + .endObject() + .startObject(PEERS) + .field("type", "keyword") + .endObject() + .startObject(AGG_COLUMN) + .field("type", "keyword") + .endObject() + .endObject() + .endObject(); return mappingBuilder; } } diff --git a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/node/NodeMappingIndex.java b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/node/NodeMappingIndex.java index ea9a9c57b..32e901afe 100644 --- a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/node/NodeMappingIndex.java +++ b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/node/NodeMappingIndex.java @@ -1,5 +1,6 @@ package com.a.eye.skywalking.collector.worker.node; +import com.a.eye.skywalking.collector.worker.config.EsConfig; import com.a.eye.skywalking.collector.worker.storage.AbstractIndex; import org.elasticsearch.common.xcontent.XContentBuilder; import org.elasticsearch.common.xcontent.XContentFactory; @@ -25,29 +26,34 @@ public class NodeMappingIndex extends AbstractIndex { return false; } + @Override + public int refreshInterval() { + return EsConfig.Es.Index.RefreshInterval.NodeMappingIndex.VALUE; + } + @Override public XContentBuilder createMappingBuilder() throws IOException { XContentBuilder mappingBuilder = XContentFactory.jsonBuilder() - .startObject() - .startObject("properties") - .startObject(CODE) - .field("type", "string") - .field("index", "not_analyzed") - .endObject() - .startObject(PEERS) - .field("type", "string") - .field("index", "not_analyzed") - .endObject() - .startObject(AGG_COLUMN) - .field("type", "string") - .field("index", "not_analyzed") - .endObject() - .startObject(TIME_SLICE) - .field("type", "long") - .field("index", "not_analyzed") - .endObject() - .endObject() - .endObject(); + .startObject() + .startObject("properties") + .startObject(CODE) + .field("type", "string") + .field("index", "not_analyzed") + .endObject() + .startObject(PEERS) + .field("type", "string") + .field("index", "not_analyzed") + .endObject() + .startObject(AGG_COLUMN) + .field("type", "string") + .field("index", "not_analyzed") + .endObject() + .startObject(TIME_SLICE) + .field("type", "long") + .field("index", "not_analyzed") + .endObject() + .endObject() + .endObject(); return mappingBuilder; } } diff --git a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/node/analysis/AbstractNodeCompAnalysis.java b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/node/analysis/AbstractNodeCompAnalysis.java index 5ee173550..81c155816 100644 --- a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/node/analysis/AbstractNodeCompAnalysis.java +++ b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/node/analysis/AbstractNodeCompAnalysis.java @@ -28,7 +28,7 @@ abstract class AbstractNodeCompAnalysis extends RecordAnalysisMember { super(role, clusterContext, selfContext); } - void analyseSpans(Segment segment) throws Exception { + final void analyseSpans(Segment segment) throws Exception { List spanList = segment.getSpans(); logger.debug("node analysis span isNotEmpty %s", CollectionTools.isNotEmpty(spanList)); @@ -43,7 +43,7 @@ abstract class AbstractNodeCompAnalysis extends RecordAnalysisMember { compJsonObj.addProperty(NodeCompIndex.PEERS, peers); compJsonObj.addProperty(NodeCompIndex.NAME, Tags.COMPONENT.get(span)); - setRecord(peers, compJsonObj); + set(peers, compJsonObj); } else if (Tags.SPAN_KIND_SERVER.equals(kind) && span.getParentSpanId() == -1) { String peers = segment.getApplicationCode(); @@ -51,9 +51,7 @@ abstract class AbstractNodeCompAnalysis extends RecordAnalysisMember { compJsonObj.addProperty(NodeCompIndex.PEERS, peers); compJsonObj.addProperty(NodeCompIndex.NAME, Tags.COMPONENT.get(span)); - setRecord(peers, compJsonObj); - } else { - logger.error("The span kind value is incorrect which segment record id is %s, the value must client or server", segment.getTraceSegmentId()); + set(peers, compJsonObj); } } } diff --git a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/node/analysis/AbstractNodeMappingAnalysis.java b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/node/analysis/AbstractNodeMappingAnalysis.java index 86127d072..59c43b49d 100644 --- a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/node/analysis/AbstractNodeMappingAnalysis.java +++ b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/node/analysis/AbstractNodeMappingAnalysis.java @@ -26,7 +26,7 @@ abstract class AbstractNodeMappingAnalysis extends RecordAnalysisMember { super(role, clusterContext, selfContext); } - void analyseRefs(Segment segment, long timeSlice) throws Exception { + final void analyseRefs(Segment segment, long timeSlice) throws Exception { List segmentRefList = segment.getRefs(); logger.debug("node mapping analysis refs isNotEmpty %s", CollectionTools.isNotEmpty(segmentRefList)); @@ -42,7 +42,7 @@ abstract class AbstractNodeMappingAnalysis extends RecordAnalysisMember { nodeMappingJsonObj.addProperty(NodeMappingIndex.TIME_SLICE, timeSlice); String id = timeSlice + Const.ID_SPLIT + code + Const.ID_SPLIT + peers; - setRecord(id, nodeMappingJsonObj); + set(id, nodeMappingJsonObj); } } } diff --git a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/node/analysis/NodeCompAnalysis.java b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/node/analysis/NodeCompAnalysis.java index 5df3b4d7d..edffd90c8 100644 --- a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/node/analysis/NodeCompAnalysis.java +++ b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/node/analysis/NodeCompAnalysis.java @@ -1,21 +1,22 @@ package com.a.eye.skywalking.collector.worker.node.analysis; -import com.a.eye.skywalking.collector.actor.AbstractLocalAsyncWorkerProvider; -import com.a.eye.skywalking.collector.actor.ClusterWorkerContext; -import com.a.eye.skywalking.collector.actor.LocalWorkerContext; +import com.a.eye.skywalking.collector.actor.*; import com.a.eye.skywalking.collector.actor.selector.RollingSelector; import com.a.eye.skywalking.collector.actor.selector.WorkerSelector; import com.a.eye.skywalking.collector.worker.config.WorkerConfig; import com.a.eye.skywalking.collector.worker.node.persistence.NodeCompAgg; import com.a.eye.skywalking.collector.worker.segment.SegmentPost; import com.a.eye.skywalking.collector.worker.segment.entity.Segment; -import com.a.eye.skywalking.collector.worker.storage.RecordData; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; /** * @author pengys5 */ public class NodeCompAnalysis extends AbstractNodeCompAnalysis { + private Logger logger = LogManager.getFormatterLogger(NodeCompAnalysis.class); + NodeCompAnalysis(com.a.eye.skywalking.collector.actor.Role role, ClusterWorkerContext clusterContext, LocalWorkerContext selfContext) { super(role, clusterContext, selfContext); @@ -27,20 +28,22 @@ public class NodeCompAnalysis extends AbstractNodeCompAnalysis { SegmentPost.SegmentWithTimeSlice segmentWithTimeSlice = (SegmentPost.SegmentWithTimeSlice) message; Segment segment = segmentWithTimeSlice.getSegment(); analyseSpans(segment); + } else { + logger.error("unhandled message, message instance must SegmentPost.SegmentWithTimeSlice, but is %s", message.getClass().toString()); } } @Override - protected void aggregation() throws Exception { - RecordData oneRecord; - while ((oneRecord = pushOne()) != null) { - getClusterContext().lookup(NodeCompAgg.Role.INSTANCE).tell(oneRecord); + protected WorkerRefs aggWorkRefs() { + try { + return getClusterContext().lookup(NodeCompAgg.Role.INSTANCE); + } catch (WorkerNotFoundException e) { + logger.error("The role of %s worker not found", NodeCompAgg.Role.INSTANCE.roleName()); } + return null; } public static class Factory extends AbstractLocalAsyncWorkerProvider { - public static Factory INSTANCE = new Factory(); - @Override public Role role() { return Role.INSTANCE; diff --git a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/node/analysis/NodeMappingDayAnalysis.java b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/node/analysis/NodeMappingDayAnalysis.java index 929e024de..c997a722a 100644 --- a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/node/analysis/NodeMappingDayAnalysis.java +++ b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/node/analysis/NodeMappingDayAnalysis.java @@ -1,21 +1,22 @@ package com.a.eye.skywalking.collector.worker.node.analysis; -import com.a.eye.skywalking.collector.actor.AbstractLocalAsyncWorkerProvider; -import com.a.eye.skywalking.collector.actor.ClusterWorkerContext; -import com.a.eye.skywalking.collector.actor.LocalWorkerContext; +import com.a.eye.skywalking.collector.actor.*; import com.a.eye.skywalking.collector.actor.selector.RollingSelector; import com.a.eye.skywalking.collector.actor.selector.WorkerSelector; import com.a.eye.skywalking.collector.worker.config.WorkerConfig; import com.a.eye.skywalking.collector.worker.node.persistence.NodeMappingDayAgg; import com.a.eye.skywalking.collector.worker.segment.SegmentPost; import com.a.eye.skywalking.collector.worker.segment.entity.Segment; -import com.a.eye.skywalking.collector.worker.storage.RecordData; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; /** * @author pengys5 */ public class NodeMappingDayAnalysis extends AbstractNodeMappingAnalysis { + private Logger logger = LogManager.getFormatterLogger(NodeMappingDayAnalysis.class); + public NodeMappingDayAnalysis(com.a.eye.skywalking.collector.actor.Role role, ClusterWorkerContext clusterContext, LocalWorkerContext selfContext) { super(role, clusterContext, selfContext); @@ -27,20 +28,22 @@ public class NodeMappingDayAnalysis extends AbstractNodeMappingAnalysis { SegmentPost.SegmentWithTimeSlice segmentWithTimeSlice = (SegmentPost.SegmentWithTimeSlice) message; Segment segment = segmentWithTimeSlice.getSegment(); analyseRefs(segment, segmentWithTimeSlice.getDay()); + } else { + logger.error("unhandled message, message instance must SegmentPost.SegmentWithTimeSlice, but is %s", message.getClass().toString()); } } @Override - protected void aggregation() throws Exception { - RecordData oneRecord; - while ((oneRecord = pushOne()) != null) { - getClusterContext().lookup(NodeMappingDayAgg.Role.INSTANCE).tell(oneRecord); + protected WorkerRefs aggWorkRefs() { + try { + return getClusterContext().lookup(NodeMappingDayAgg.Role.INSTANCE); + } catch (WorkerNotFoundException e) { + logger.error("The role of %s worker not found", NodeMappingDayAgg.Role.INSTANCE.roleName()); } + return null; } public static class Factory extends AbstractLocalAsyncWorkerProvider { - public static Factory INSTANCE = new Factory(); - @Override public Role role() { return Role.INSTANCE; diff --git a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/node/analysis/NodeMappingHourAnalysis.java b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/node/analysis/NodeMappingHourAnalysis.java index e61abc25d..176b7168e 100644 --- a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/node/analysis/NodeMappingHourAnalysis.java +++ b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/node/analysis/NodeMappingHourAnalysis.java @@ -1,21 +1,22 @@ package com.a.eye.skywalking.collector.worker.node.analysis; -import com.a.eye.skywalking.collector.actor.AbstractLocalAsyncWorkerProvider; -import com.a.eye.skywalking.collector.actor.ClusterWorkerContext; -import com.a.eye.skywalking.collector.actor.LocalWorkerContext; +import com.a.eye.skywalking.collector.actor.*; import com.a.eye.skywalking.collector.actor.selector.RollingSelector; import com.a.eye.skywalking.collector.actor.selector.WorkerSelector; import com.a.eye.skywalking.collector.worker.config.WorkerConfig; import com.a.eye.skywalking.collector.worker.node.persistence.NodeMappingHourAgg; import com.a.eye.skywalking.collector.worker.segment.SegmentPost; import com.a.eye.skywalking.collector.worker.segment.entity.Segment; -import com.a.eye.skywalking.collector.worker.storage.RecordData; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; /** * @author pengys5 */ public class NodeMappingHourAnalysis extends AbstractNodeMappingAnalysis { + private Logger logger = LogManager.getFormatterLogger(NodeMappingHourAnalysis.class); + NodeMappingHourAnalysis(com.a.eye.skywalking.collector.actor.Role role, ClusterWorkerContext clusterContext, LocalWorkerContext selfContext) { super(role, clusterContext, selfContext); @@ -27,20 +28,22 @@ public class NodeMappingHourAnalysis extends AbstractNodeMappingAnalysis { SegmentPost.SegmentWithTimeSlice segmentWithTimeSlice = (SegmentPost.SegmentWithTimeSlice) message; Segment segment = segmentWithTimeSlice.getSegment(); analyseRefs(segment, segmentWithTimeSlice.getHour()); + } else { + logger.error("unhandled message, message instance must SegmentPost.SegmentWithTimeSlice, but is %s", message.getClass().toString()); } } @Override - protected void aggregation() throws Exception { - RecordData oneRecord; - while ((oneRecord = pushOne()) != null) { - getClusterContext().lookup(NodeMappingHourAgg.Role.INSTANCE).tell(oneRecord); + protected WorkerRefs aggWorkRefs() { + try { + return getClusterContext().lookup(NodeMappingHourAgg.Role.INSTANCE); + } catch (WorkerNotFoundException e) { + logger.error("The role of %s worker not found", NodeMappingHourAgg.Role.INSTANCE.roleName()); } + return null; } - + public static class Factory extends AbstractLocalAsyncWorkerProvider { - public static Factory INSTANCE = new Factory(); - @Override public Role role() { return Role.INSTANCE; diff --git a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/node/analysis/NodeMappingMinuteAnalysis.java b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/node/analysis/NodeMappingMinuteAnalysis.java index 8ee3f3422..c60b6834e 100644 --- a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/node/analysis/NodeMappingMinuteAnalysis.java +++ b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/node/analysis/NodeMappingMinuteAnalysis.java @@ -1,21 +1,22 @@ package com.a.eye.skywalking.collector.worker.node.analysis; -import com.a.eye.skywalking.collector.actor.AbstractLocalAsyncWorkerProvider; -import com.a.eye.skywalking.collector.actor.ClusterWorkerContext; -import com.a.eye.skywalking.collector.actor.LocalWorkerContext; +import com.a.eye.skywalking.collector.actor.*; import com.a.eye.skywalking.collector.actor.selector.RollingSelector; import com.a.eye.skywalking.collector.actor.selector.WorkerSelector; import com.a.eye.skywalking.collector.worker.config.WorkerConfig; import com.a.eye.skywalking.collector.worker.node.persistence.NodeMappingMinuteAgg; import com.a.eye.skywalking.collector.worker.segment.SegmentPost; import com.a.eye.skywalking.collector.worker.segment.entity.Segment; -import com.a.eye.skywalking.collector.worker.storage.RecordData; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; /** * @author pengys5 */ public class NodeMappingMinuteAnalysis extends AbstractNodeMappingAnalysis { + private Logger logger = LogManager.getFormatterLogger(NodeMappingMinuteAnalysis.class); + NodeMappingMinuteAnalysis(com.a.eye.skywalking.collector.actor.Role role, ClusterWorkerContext clusterContext, LocalWorkerContext selfContext) { super(role, clusterContext, selfContext); @@ -27,20 +28,22 @@ public class NodeMappingMinuteAnalysis extends AbstractNodeMappingAnalysis { SegmentPost.SegmentWithTimeSlice segmentWithTimeSlice = (SegmentPost.SegmentWithTimeSlice) message; Segment segment = segmentWithTimeSlice.getSegment(); analyseRefs(segment, segmentWithTimeSlice.getMinute()); + } else { + logger.error("unhandled message, message instance must SegmentPost.SegmentWithTimeSlice, but is %s", message.getClass().toString()); } } @Override - protected void aggregation() throws Exception { - RecordData oneRecord; - while ((oneRecord = pushOne()) != null) { - getClusterContext().lookup(NodeMappingMinuteAgg.Role.INSTANCE).tell(oneRecord); + protected WorkerRefs aggWorkRefs() { + try { + return getClusterContext().lookup(NodeMappingMinuteAgg.Role.INSTANCE); + } catch (WorkerNotFoundException e) { + logger.error("The role of %s worker not found", NodeMappingMinuteAgg.Role.INSTANCE.roleName()); } + return null; } - + public static class Factory extends AbstractLocalAsyncWorkerProvider { - public static Factory INSTANCE = new Factory(); - @Override public Role role() { return Role.INSTANCE; diff --git a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/node/persistence/NodeCompAgg.java b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/node/persistence/NodeCompAgg.java index 380616800..ea34b101e 100644 --- a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/node/persistence/NodeCompAgg.java +++ b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/node/persistence/NodeCompAgg.java @@ -5,12 +5,16 @@ import com.a.eye.skywalking.collector.actor.selector.HashCodeSelector; import com.a.eye.skywalking.collector.actor.selector.WorkerSelector; import com.a.eye.skywalking.collector.worker.config.WorkerConfig; import com.a.eye.skywalking.collector.worker.storage.RecordData; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; /** * @author pengys5 */ public class NodeCompAgg extends AbstractClusterWorker { + private Logger logger = LogManager.getFormatterLogger(NodeCompAgg.class); + NodeCompAgg(com.a.eye.skywalking.collector.actor.Role role, ClusterWorkerContext clusterContext, LocalWorkerContext selfContext) { super(role, clusterContext, selfContext); @@ -25,13 +29,12 @@ public class NodeCompAgg extends AbstractClusterWorker { protected void onWork(Object message) throws Exception { if (message instanceof RecordData) { getSelfContext().lookup(NodeCompSave.Role.INSTANCE).tell(message); - } else - throw new IllegalArgumentException("message instance must RecordData"); + } else { + logger.error("unhandled message, message instance must RecordData, but is %s", message.getClass().toString()); + } } public static class Factory extends AbstractClusterWorkerProvider { - public static Factory INSTANCE = new Factory(); - @Override public Role role() { return Role.INSTANCE; diff --git a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/node/persistence/NodeCompLoad.java b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/node/persistence/NodeCompLoad.java index 61fa08176..8c3819d4d 100644 --- a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/node/persistence/NodeCompLoad.java +++ b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/node/persistence/NodeCompLoad.java @@ -49,8 +49,6 @@ public class NodeCompLoad extends AbstractLocalSyncWorker { } public static class Factory extends AbstractLocalSyncWorkerProvider { - public static Factory INSTANCE = new Factory(); - @Override public Role role() { return WorkerRole.INSTANCE; diff --git a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/node/persistence/NodeCompSave.java b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/node/persistence/NodeCompSave.java index a048af4d3..fd6b6fb54 100644 --- a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/node/persistence/NodeCompSave.java +++ b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/node/persistence/NodeCompSave.java @@ -1,13 +1,13 @@ package com.a.eye.skywalking.collector.worker.node.persistence; -import com.a.eye.skywalking.collector.actor.AbstractLocalAsyncWorkerProvider; +import com.a.eye.skywalking.collector.actor.AbstractLocalSyncWorkerProvider; import com.a.eye.skywalking.collector.actor.ClusterWorkerContext; import com.a.eye.skywalking.collector.actor.LocalWorkerContext; import com.a.eye.skywalking.collector.actor.selector.HashCodeSelector; import com.a.eye.skywalking.collector.actor.selector.WorkerSelector; import com.a.eye.skywalking.collector.worker.RecordPersistenceMember; -import com.a.eye.skywalking.collector.worker.config.WorkerConfig; import com.a.eye.skywalking.collector.worker.node.NodeCompIndex; +import com.a.eye.skywalking.collector.worker.storage.PersistenceWorkerListener; /** * @author pengys5 @@ -15,7 +15,7 @@ import com.a.eye.skywalking.collector.worker.node.NodeCompIndex; public class NodeCompSave extends RecordPersistenceMember { NodeCompSave(com.a.eye.skywalking.collector.actor.Role role, ClusterWorkerContext clusterContext, - LocalWorkerContext selfContext) { + LocalWorkerContext selfContext) { super(role, clusterContext, selfContext); } @@ -29,9 +29,7 @@ public class NodeCompSave extends RecordPersistenceMember { return NodeCompIndex.TYPE_RECORD; } - public static class Factory extends AbstractLocalAsyncWorkerProvider { - public static Factory INSTANCE = new Factory(); - + public static class Factory extends AbstractLocalSyncWorkerProvider { @Override public Role role() { return Role.INSTANCE; @@ -39,12 +37,9 @@ public class NodeCompSave extends RecordPersistenceMember { @Override public NodeCompSave workerInstance(ClusterWorkerContext clusterContext) { - return new NodeCompSave(role(), clusterContext, new LocalWorkerContext()); - } - - @Override - public int queueSize() { - return WorkerConfig.Queue.Node.NodeCompSave.SIZE; + NodeCompSave worker = new NodeCompSave(role(), clusterContext, new LocalWorkerContext()); + PersistenceWorkerListener.INSTANCE.register(worker); + return worker; } } diff --git a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/node/persistence/NodeMappingDayAgg.java b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/node/persistence/NodeMappingDayAgg.java index 61c2ec2a2..9e4e74ff1 100644 --- a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/node/persistence/NodeMappingDayAgg.java +++ b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/node/persistence/NodeMappingDayAgg.java @@ -5,12 +5,16 @@ import com.a.eye.skywalking.collector.actor.selector.HashCodeSelector; import com.a.eye.skywalking.collector.actor.selector.WorkerSelector; import com.a.eye.skywalking.collector.worker.config.WorkerConfig; import com.a.eye.skywalking.collector.worker.storage.RecordData; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; /** * @author pengys5 */ public class NodeMappingDayAgg extends AbstractClusterWorker { + private Logger logger = LogManager.getFormatterLogger(NodeMappingDayAgg.class); + NodeMappingDayAgg(com.a.eye.skywalking.collector.actor.Role role, ClusterWorkerContext clusterContext, LocalWorkerContext selfContext) { super(role, clusterContext, selfContext); @@ -26,13 +30,11 @@ public class NodeMappingDayAgg extends AbstractClusterWorker { if (message instanceof RecordData) { getSelfContext().lookup(NodeMappingDaySave.Role.INSTANCE).tell(message); } else { - throw new IllegalArgumentException("message instance must RecordData"); + logger.error("unhandled message, message instance must RecordData, but is %s", message.getClass().toString()); } } public static class Factory extends AbstractClusterWorkerProvider { - public static Factory INSTANCE = new Factory(); - @Override public Role role() { return Role.INSTANCE; diff --git a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/node/persistence/NodeMappingDaySave.java b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/node/persistence/NodeMappingDaySave.java index 7cf9e34c7..6c06bfda9 100644 --- a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/node/persistence/NodeMappingDaySave.java +++ b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/node/persistence/NodeMappingDaySave.java @@ -1,13 +1,13 @@ package com.a.eye.skywalking.collector.worker.node.persistence; -import com.a.eye.skywalking.collector.actor.AbstractLocalAsyncWorkerProvider; +import com.a.eye.skywalking.collector.actor.AbstractLocalSyncWorkerProvider; import com.a.eye.skywalking.collector.actor.ClusterWorkerContext; import com.a.eye.skywalking.collector.actor.LocalWorkerContext; import com.a.eye.skywalking.collector.actor.selector.HashCodeSelector; import com.a.eye.skywalking.collector.actor.selector.WorkerSelector; import com.a.eye.skywalking.collector.worker.RecordPersistenceMember; -import com.a.eye.skywalking.collector.worker.config.WorkerConfig; import com.a.eye.skywalking.collector.worker.node.NodeMappingIndex; +import com.a.eye.skywalking.collector.worker.storage.PersistenceWorkerListener; /** * @author pengys5 @@ -15,7 +15,7 @@ import com.a.eye.skywalking.collector.worker.node.NodeMappingIndex; public class NodeMappingDaySave extends RecordPersistenceMember { NodeMappingDaySave(com.a.eye.skywalking.collector.actor.Role role, ClusterWorkerContext clusterContext, - LocalWorkerContext selfContext) { + LocalWorkerContext selfContext) { super(role, clusterContext, selfContext); } @@ -29,9 +29,7 @@ public class NodeMappingDaySave extends RecordPersistenceMember { return NodeMappingIndex.TYPE_DAY; } - public static class Factory extends AbstractLocalAsyncWorkerProvider { - public static Factory INSTANCE = new Factory(); - + public static class Factory extends AbstractLocalSyncWorkerProvider { @Override public Role role() { return Role.INSTANCE; @@ -39,12 +37,9 @@ public class NodeMappingDaySave extends RecordPersistenceMember { @Override public NodeMappingDaySave workerInstance(ClusterWorkerContext clusterContext) { - return new NodeMappingDaySave(role(), clusterContext, new LocalWorkerContext()); - } - - @Override - public int queueSize() { - return WorkerConfig.Queue.Node.NodeMappingDaySave.SIZE; + NodeMappingDaySave worker = new NodeMappingDaySave(role(), clusterContext, new LocalWorkerContext()); + PersistenceWorkerListener.INSTANCE.register(worker); + return worker; } } diff --git a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/node/persistence/NodeMappingHourAgg.java b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/node/persistence/NodeMappingHourAgg.java index 4f0cb3c1d..ec87db500 100644 --- a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/node/persistence/NodeMappingHourAgg.java +++ b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/node/persistence/NodeMappingHourAgg.java @@ -5,12 +5,16 @@ import com.a.eye.skywalking.collector.actor.selector.HashCodeSelector; import com.a.eye.skywalking.collector.actor.selector.WorkerSelector; import com.a.eye.skywalking.collector.worker.config.WorkerConfig; import com.a.eye.skywalking.collector.worker.storage.RecordData; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; /** * @author pengys5 */ public class NodeMappingHourAgg extends AbstractClusterWorker { + private Logger logger = LogManager.getFormatterLogger(NodeMappingHourAgg.class); + NodeMappingHourAgg(com.a.eye.skywalking.collector.actor.Role role, ClusterWorkerContext clusterContext, LocalWorkerContext selfContext) { super(role, clusterContext, selfContext); @@ -26,13 +30,11 @@ public class NodeMappingHourAgg extends AbstractClusterWorker { if (message instanceof RecordData) { getSelfContext().lookup(NodeMappingHourSave.Role.INSTANCE).tell(message); } else { - throw new IllegalArgumentException("message instance must RecordData"); + logger.error("unhandled message, message instance must RecordData, but is %s", message.getClass().toString()); } } public static class Factory extends AbstractClusterWorkerProvider { - public static Factory INSTANCE = new Factory(); - @Override public Role role() { return Role.INSTANCE; diff --git a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/node/persistence/NodeMappingHourSave.java b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/node/persistence/NodeMappingHourSave.java index e5c99539c..5dfbdc3ce 100644 --- a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/node/persistence/NodeMappingHourSave.java +++ b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/node/persistence/NodeMappingHourSave.java @@ -1,13 +1,13 @@ package com.a.eye.skywalking.collector.worker.node.persistence; -import com.a.eye.skywalking.collector.actor.AbstractLocalAsyncWorkerProvider; +import com.a.eye.skywalking.collector.actor.AbstractLocalSyncWorkerProvider; import com.a.eye.skywalking.collector.actor.ClusterWorkerContext; import com.a.eye.skywalking.collector.actor.LocalWorkerContext; import com.a.eye.skywalking.collector.actor.selector.HashCodeSelector; import com.a.eye.skywalking.collector.actor.selector.WorkerSelector; import com.a.eye.skywalking.collector.worker.RecordPersistenceMember; -import com.a.eye.skywalking.collector.worker.config.WorkerConfig; import com.a.eye.skywalking.collector.worker.node.NodeMappingIndex; +import com.a.eye.skywalking.collector.worker.storage.PersistenceWorkerListener; /** * @author pengys5 @@ -15,7 +15,7 @@ import com.a.eye.skywalking.collector.worker.node.NodeMappingIndex; public class NodeMappingHourSave extends RecordPersistenceMember { NodeMappingHourSave(com.a.eye.skywalking.collector.actor.Role role, ClusterWorkerContext clusterContext, - LocalWorkerContext selfContext) { + LocalWorkerContext selfContext) { super(role, clusterContext, selfContext); } @@ -29,9 +29,7 @@ public class NodeMappingHourSave extends RecordPersistenceMember { return NodeMappingIndex.TYPE_HOUR; } - public static class Factory extends AbstractLocalAsyncWorkerProvider { - public static Factory INSTANCE = new Factory(); - + public static class Factory extends AbstractLocalSyncWorkerProvider { @Override public Role role() { return Role.INSTANCE; @@ -39,12 +37,9 @@ public class NodeMappingHourSave extends RecordPersistenceMember { @Override public NodeMappingHourSave workerInstance(ClusterWorkerContext clusterContext) { - return new NodeMappingHourSave(role(), clusterContext, new LocalWorkerContext()); - } - - @Override - public int queueSize() { - return WorkerConfig.Queue.Node.NodeMappingHourSave.SIZE; + NodeMappingHourSave worker = new NodeMappingHourSave(role(), clusterContext, new LocalWorkerContext()); + PersistenceWorkerListener.INSTANCE.register(worker); + return worker; } } diff --git a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/node/persistence/NodeMappingMinuteAgg.java b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/node/persistence/NodeMappingMinuteAgg.java index 99fff3db2..422ba5c1c 100644 --- a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/node/persistence/NodeMappingMinuteAgg.java +++ b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/node/persistence/NodeMappingMinuteAgg.java @@ -5,12 +5,16 @@ import com.a.eye.skywalking.collector.actor.selector.HashCodeSelector; import com.a.eye.skywalking.collector.actor.selector.WorkerSelector; import com.a.eye.skywalking.collector.worker.config.WorkerConfig; import com.a.eye.skywalking.collector.worker.storage.RecordData; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; /** * @author pengys5 */ public class NodeMappingMinuteAgg extends AbstractClusterWorker { + private Logger logger = LogManager.getFormatterLogger(NodeMappingMinuteAgg.class); + NodeMappingMinuteAgg(com.a.eye.skywalking.collector.actor.Role role, ClusterWorkerContext clusterContext, LocalWorkerContext selfContext) { super(role, clusterContext, selfContext); @@ -26,13 +30,11 @@ public class NodeMappingMinuteAgg extends AbstractClusterWorker { if (message instanceof RecordData) { getSelfContext().lookup(NodeMappingMinuteSave.Role.INSTANCE).tell(message); } else { - throw new IllegalArgumentException("message instance must RecordData"); + logger.error("unhandled message, message instance must RecordData, but is %s", message.getClass().toString()); } } public static class Factory extends AbstractClusterWorkerProvider { - public static Factory INSTANCE = new Factory(); - @Override public Role role() { return Role.INSTANCE; diff --git a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/node/persistence/NodeMappingMinuteSave.java b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/node/persistence/NodeMappingMinuteSave.java index 6b75aeeed..ca55a8d35 100644 --- a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/node/persistence/NodeMappingMinuteSave.java +++ b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/node/persistence/NodeMappingMinuteSave.java @@ -1,13 +1,13 @@ package com.a.eye.skywalking.collector.worker.node.persistence; -import com.a.eye.skywalking.collector.actor.AbstractLocalAsyncWorkerProvider; +import com.a.eye.skywalking.collector.actor.AbstractLocalSyncWorkerProvider; import com.a.eye.skywalking.collector.actor.ClusterWorkerContext; import com.a.eye.skywalking.collector.actor.LocalWorkerContext; import com.a.eye.skywalking.collector.actor.selector.HashCodeSelector; import com.a.eye.skywalking.collector.actor.selector.WorkerSelector; import com.a.eye.skywalking.collector.worker.RecordPersistenceMember; -import com.a.eye.skywalking.collector.worker.config.WorkerConfig; import com.a.eye.skywalking.collector.worker.node.NodeMappingIndex; +import com.a.eye.skywalking.collector.worker.storage.PersistenceWorkerListener; /** * @author pengys5 @@ -15,7 +15,7 @@ import com.a.eye.skywalking.collector.worker.node.NodeMappingIndex; public class NodeMappingMinuteSave extends RecordPersistenceMember { NodeMappingMinuteSave(com.a.eye.skywalking.collector.actor.Role role, ClusterWorkerContext clusterContext, - LocalWorkerContext selfContext) { + LocalWorkerContext selfContext) { super(role, clusterContext, selfContext); } @@ -29,9 +29,7 @@ public class NodeMappingMinuteSave extends RecordPersistenceMember { return NodeMappingIndex.TYPE_MINUTE; } - public static class Factory extends AbstractLocalAsyncWorkerProvider { - public static Factory INSTANCE = new Factory(); - + public static class Factory extends AbstractLocalSyncWorkerProvider { @Override public Role role() { return Role.INSTANCE; @@ -39,12 +37,9 @@ public class NodeMappingMinuteSave extends RecordPersistenceMember { @Override public NodeMappingMinuteSave workerInstance(ClusterWorkerContext clusterContext) { - return new NodeMappingMinuteSave(role(), clusterContext, new LocalWorkerContext()); - } - - @Override - public int queueSize() { - return WorkerConfig.Queue.Node.NodeMappingMinuteSave.SIZE; + NodeMappingMinuteSave worker = new NodeMappingMinuteSave(role(), clusterContext, new LocalWorkerContext()); + PersistenceWorkerListener.INSTANCE.register(worker); + return worker; } } diff --git a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/node/persistence/NodeMappingSearchWithTimeSlice.java b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/node/persistence/NodeMappingSearchWithTimeSlice.java index e36b8ca7e..5103a7234 100644 --- a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/node/persistence/NodeMappingSearchWithTimeSlice.java +++ b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/node/persistence/NodeMappingSearchWithTimeSlice.java @@ -62,7 +62,7 @@ public class NodeMappingSearchWithTimeSlice extends AbstractLocalSyncWorker { JsonObject resJsonObj = (JsonObject)response; resJsonObj.add(Const.RESULT, nodeMappingArray); } else { - throw new IllegalArgumentException("message instance must be RequestEntity"); + logger.error("unhandled message, message instance must NodeMappingSearchWithTimeSlice.RequestEntity, but is %s", request.getClass().toString()); } } @@ -73,8 +73,6 @@ public class NodeMappingSearchWithTimeSlice extends AbstractLocalSyncWorker { } public static class Factory extends AbstractLocalSyncWorkerProvider { - public static Factory INSTANCE = new Factory(); - @Override public Role role() { return WorkerRole.INSTANCE; diff --git a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/noderef/NodeRefIndex.java b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/noderef/NodeRefIndex.java index 59066a16d..1c268b2ee 100644 --- a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/noderef/NodeRefIndex.java +++ b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/noderef/NodeRefIndex.java @@ -1,5 +1,6 @@ package com.a.eye.skywalking.collector.worker.noderef; +import com.a.eye.skywalking.collector.worker.config.EsConfig; import com.a.eye.skywalking.collector.worker.storage.AbstractIndex; import org.elasticsearch.common.xcontent.XContentBuilder; import org.elasticsearch.common.xcontent.XContentFactory; @@ -26,30 +27,32 @@ public class NodeRefIndex extends AbstractIndex { return false; } + @Override + public int refreshInterval() { + return EsConfig.Es.Index.RefreshInterval.NodeRefIndex.VALUE; + } + @Override public XContentBuilder createMappingBuilder() throws IOException { XContentBuilder mappingBuilder = XContentFactory.jsonBuilder() .startObject() .startObject("properties") .startObject(FRONT) - .field("type", "string") - .field("index", "not_analyzed") + .field("type", "keyword") .endObject() .startObject(FRONT_IS_REAL_CODE) .field("type", "boolean") .field("index", "not_analyzed") .endObject() .startObject(BEHIND) - .field("type", "string") - .field("index", "not_analyzed") + .field("type", "keyword") .endObject() .startObject(BEHIND_IS_REAL_CODE) .field("type", "boolean") .field("index", "not_analyzed") .endObject() .startObject(AGG_COLUMN) - .field("type", "string") - .field("index", "not_analyzed") + .field("type", "keyword") .endObject() .startObject(TIME_SLICE) .field("type", "long") diff --git a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/noderef/NodeRefResSumGetGroupWithTimeSlice.java b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/noderef/NodeRefResSumGetGroupWithTimeSlice.java index 957748bea..9cb7940fa 100644 --- a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/noderef/NodeRefResSumGetGroupWithTimeSlice.java +++ b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/noderef/NodeRefResSumGetGroupWithTimeSlice.java @@ -61,8 +61,6 @@ public class NodeRefResSumGetGroupWithTimeSlice extends AbstractGet { } public static class Factory extends AbstractGetProvider { - public static Factory INSTANCE = new Factory(); - @Override public Role role() { return WorkerRole.INSTANCE; diff --git a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/noderef/NodeRefResSumIndex.java b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/noderef/NodeRefResSumIndex.java index a1b47c453..796deb1b5 100644 --- a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/noderef/NodeRefResSumIndex.java +++ b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/noderef/NodeRefResSumIndex.java @@ -1,5 +1,6 @@ package com.a.eye.skywalking.collector.worker.noderef; +import com.a.eye.skywalking.collector.worker.config.EsConfig; import com.a.eye.skywalking.collector.worker.storage.AbstractIndex; import org.elasticsearch.common.xcontent.XContentBuilder; import org.elasticsearch.common.xcontent.XContentFactory; @@ -28,45 +29,49 @@ public class NodeRefResSumIndex extends AbstractIndex { return false; } + @Override + public int refreshInterval() { + return EsConfig.Es.Index.RefreshInterval.NodeRefResSumIndex.VALUE; + } + @Override public XContentBuilder createMappingBuilder() throws IOException { XContentBuilder mappingBuilder = XContentFactory.jsonBuilder() - .startObject() - .startObject("properties") - .startObject(ONE_SECOND_LESS) - .field("type", "long") - .field("index", "not_analyzed") - .endObject() - .startObject(THREE_SECOND_LESS) - .field("type", "long") - .field("index", "not_analyzed") - .endObject() - .startObject(FIVE_SECOND_LESS) - .field("type", "long") - .field("index", "not_analyzed") - .endObject() - .startObject(FIVE_SECOND_GREATER) - .field("type", "long") - .field("index", "not_analyzed") - .endObject() - .startObject(ERROR) - .field("type", "long") - .field("index", "not_analyzed") - .endObject() - .startObject(SUMMARY) - .field("type", "long") - .field("index", "not_analyzed") - .endObject() - .startObject(AGG_COLUMN) - .field("type", "string") - .field("index", "not_analyzed") - .endObject() - .startObject(TIME_SLICE) - .field("type", "long") - .field("index", "not_analyzed") - .endObject() - .endObject() - .endObject(); + .startObject() + .startObject("properties") + .startObject(ONE_SECOND_LESS) + .field("type", "long") + .field("index", "not_analyzed") + .endObject() + .startObject(THREE_SECOND_LESS) + .field("type", "long") + .field("index", "not_analyzed") + .endObject() + .startObject(FIVE_SECOND_LESS) + .field("type", "long") + .field("index", "not_analyzed") + .endObject() + .startObject(FIVE_SECOND_GREATER) + .field("type", "long") + .field("index", "not_analyzed") + .endObject() + .startObject(ERROR) + .field("type", "long") + .field("index", "not_analyzed") + .endObject() + .startObject(SUMMARY) + .field("type", "long") + .field("index", "not_analyzed") + .endObject() + .startObject(AGG_COLUMN) + .field("type", "keyword") + .endObject() + .startObject(TIME_SLICE) + .field("type", "long") + .field("index", "not_analyzed") + .endObject() + .endObject() + .endObject(); return mappingBuilder; } } diff --git a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/noderef/analysis/AbstractNodeRefAnalysis.java b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/noderef/analysis/AbstractNodeRefAnalysis.java index 328319c2e..2fd6b5ba7 100644 --- a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/noderef/analysis/AbstractNodeRefAnalysis.java +++ b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/noderef/analysis/AbstractNodeRefAnalysis.java @@ -49,7 +49,7 @@ abstract class AbstractNodeRefAnalysis extends RecordAnalysisMember { String id = timeSlice + Const.ID_SPLIT + front + Const.ID_SPLIT + behind; logger.debug("dag node ref: %s", dataJsonObj.toString()); - setRecord(id, dataJsonObj); + set(id, dataJsonObj); buildNodeRefResRecordData(id, span, minute, hour, day, second); } else if (Tags.SPAN_KIND_SERVER.equals(Tags.SPAN_KIND.get(span))) { if (span.getParentSpanId() == -1 && CollectionTools.isEmpty(segment.getRefs())) { @@ -60,7 +60,7 @@ abstract class AbstractNodeRefAnalysis extends RecordAnalysisMember { dataJsonObj.addProperty(NodeRefIndex.FRONT, front); String id = timeSlice + Const.ID_SPLIT + front + Const.ID_SPLIT + behind; - setRecord(id, dataJsonObj); + set(id, dataJsonObj); buildNodeRefResRecordData(id, span, minute, hour, day, second); } } diff --git a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/noderef/analysis/AbstractNodeRefResSumAnalysis.java b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/noderef/analysis/AbstractNodeRefResSumAnalysis.java index d0068831d..ac57873c7 100644 --- a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/noderef/analysis/AbstractNodeRefResSumAnalysis.java +++ b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/noderef/analysis/AbstractNodeRefResSumAnalysis.java @@ -22,23 +22,23 @@ abstract class AbstractNodeRefResSumAnalysis extends MetricAnalysisMember { boolean isError = nodeRefRes.isError; long cost = endTime - startTime; - setMetric(nodeRefRes.nodeRefId, NodeRefResSumIndex.ONE_SECOND_LESS, 0L); - setMetric(nodeRefRes.nodeRefId, NodeRefResSumIndex.THREE_SECOND_LESS, 0L); - setMetric(nodeRefRes.nodeRefId, NodeRefResSumIndex.FIVE_SECOND_LESS, 0L); - setMetric(nodeRefRes.nodeRefId, NodeRefResSumIndex.FIVE_SECOND_GREATER, 0L); - setMetric(nodeRefRes.nodeRefId, NodeRefResSumIndex.ERROR, 0L); + set(nodeRefRes.nodeRefId, NodeRefResSumIndex.ONE_SECOND_LESS, 0L); + set(nodeRefRes.nodeRefId, NodeRefResSumIndex.THREE_SECOND_LESS, 0L); + set(nodeRefRes.nodeRefId, NodeRefResSumIndex.FIVE_SECOND_LESS, 0L); + set(nodeRefRes.nodeRefId, NodeRefResSumIndex.FIVE_SECOND_GREATER, 0L); + set(nodeRefRes.nodeRefId, NodeRefResSumIndex.ERROR, 0L); if (cost <= 1000 && !isError) { - setMetric(nodeRefRes.nodeRefId, NodeRefResSumIndex.ONE_SECOND_LESS, 1L); + set(nodeRefRes.nodeRefId, NodeRefResSumIndex.ONE_SECOND_LESS, 1L); } else if (1000 < cost && cost <= 3000 && !isError) { - setMetric(nodeRefRes.nodeRefId, NodeRefResSumIndex.THREE_SECOND_LESS, 1L); + set(nodeRefRes.nodeRefId, NodeRefResSumIndex.THREE_SECOND_LESS, 1L); } else if (3000 < cost && cost <= 5000 && !isError) { - setMetric(nodeRefRes.nodeRefId, NodeRefResSumIndex.FIVE_SECOND_LESS, 1L); + set(nodeRefRes.nodeRefId, NodeRefResSumIndex.FIVE_SECOND_LESS, 1L); } else if (5000 < cost && !isError) { - setMetric(nodeRefRes.nodeRefId, NodeRefResSumIndex.FIVE_SECOND_GREATER, 1L); + set(nodeRefRes.nodeRefId, NodeRefResSumIndex.FIVE_SECOND_GREATER, 1L); } else { - setMetric(nodeRefRes.nodeRefId, NodeRefResSumIndex.ERROR, 1L); + set(nodeRefRes.nodeRefId, NodeRefResSumIndex.ERROR, 1L); } - setMetric(nodeRefRes.nodeRefId, NodeRefResSumIndex.SUMMARY, 1L); + set(nodeRefRes.nodeRefId, NodeRefResSumIndex.SUMMARY, 1L); } public static class NodeRefResRecord extends AbstractTimeSlice { diff --git a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/noderef/analysis/NodeRefDayAnalysis.java b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/noderef/analysis/NodeRefDayAnalysis.java index 1afacb8a9..1107a0db5 100644 --- a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/noderef/analysis/NodeRefDayAnalysis.java +++ b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/noderef/analysis/NodeRefDayAnalysis.java @@ -1,22 +1,22 @@ package com.a.eye.skywalking.collector.worker.noderef.analysis; -import com.a.eye.skywalking.collector.actor.AbstractLocalAsyncWorkerProvider; -import com.a.eye.skywalking.collector.actor.ClusterWorkerContext; -import com.a.eye.skywalking.collector.actor.LocalWorkerContext; -import com.a.eye.skywalking.collector.actor.ProviderNotFoundException; +import com.a.eye.skywalking.collector.actor.*; import com.a.eye.skywalking.collector.actor.selector.RollingSelector; import com.a.eye.skywalking.collector.actor.selector.WorkerSelector; import com.a.eye.skywalking.collector.worker.config.WorkerConfig; import com.a.eye.skywalking.collector.worker.noderef.persistence.NodeRefDayAgg; import com.a.eye.skywalking.collector.worker.segment.SegmentPost; import com.a.eye.skywalking.collector.worker.segment.entity.Segment; -import com.a.eye.skywalking.collector.worker.storage.RecordData; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; /** * @author pengys5 */ public class NodeRefDayAnalysis extends AbstractNodeRefAnalysis { + private Logger logger = LogManager.getFormatterLogger(NodeRefDayAnalysis.class); + protected NodeRefDayAnalysis(com.a.eye.skywalking.collector.actor.Role role, ClusterWorkerContext clusterContext, LocalWorkerContext selfContext) { super(role, clusterContext, selfContext); @@ -39,6 +39,8 @@ public class NodeRefDayAnalysis extends AbstractNodeRefAnalysis { long day = segmentWithTimeSlice.getDay(); int second = segmentWithTimeSlice.getSecond(); analyseNodeRef(segment, segmentWithTimeSlice.getDay(), minute, hour, day, second); + } else { + logger.error("unhandled message, message instance must SegmentPost.SegmentWithTimeSlice, but is %s", message.getClass().toString()); } } @@ -48,17 +50,16 @@ public class NodeRefDayAnalysis extends AbstractNodeRefAnalysis { } @Override - protected void aggregation() throws Exception { - RecordData oneRecord; - while ((oneRecord = pushOne()) != null) { - getClusterContext().lookup(NodeRefDayAgg.Role.INSTANCE).tell(oneRecord); + protected WorkerRefs aggWorkRefs() { + try { + return getClusterContext().lookup(NodeRefDayAgg.Role.INSTANCE); + } catch (WorkerNotFoundException e) { + logger.error("The role of %s worker not found", NodeRefDayAgg.Role.INSTANCE.roleName()); } + return null; } public static class Factory extends AbstractLocalAsyncWorkerProvider { - - public static Factory INSTANCE = new Factory(); - @Override public Role role() { return Role.INSTANCE; diff --git a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/noderef/analysis/NodeRefHourAnalysis.java b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/noderef/analysis/NodeRefHourAnalysis.java index 1a0f3b987..a39bc8658 100644 --- a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/noderef/analysis/NodeRefHourAnalysis.java +++ b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/noderef/analysis/NodeRefHourAnalysis.java @@ -1,22 +1,22 @@ package com.a.eye.skywalking.collector.worker.noderef.analysis; -import com.a.eye.skywalking.collector.actor.AbstractLocalAsyncWorkerProvider; -import com.a.eye.skywalking.collector.actor.ClusterWorkerContext; -import com.a.eye.skywalking.collector.actor.LocalWorkerContext; -import com.a.eye.skywalking.collector.actor.ProviderNotFoundException; +import com.a.eye.skywalking.collector.actor.*; import com.a.eye.skywalking.collector.actor.selector.RollingSelector; import com.a.eye.skywalking.collector.actor.selector.WorkerSelector; import com.a.eye.skywalking.collector.worker.config.WorkerConfig; import com.a.eye.skywalking.collector.worker.noderef.persistence.NodeRefHourAgg; import com.a.eye.skywalking.collector.worker.segment.SegmentPost; import com.a.eye.skywalking.collector.worker.segment.entity.Segment; -import com.a.eye.skywalking.collector.worker.storage.RecordData; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; /** * @author pengys5 */ public class NodeRefHourAnalysis extends AbstractNodeRefAnalysis { + private Logger logger = LogManager.getFormatterLogger(NodeRefHourAnalysis.class); + protected NodeRefHourAnalysis(com.a.eye.skywalking.collector.actor.Role role, ClusterWorkerContext clusterContext, LocalWorkerContext selfContext) { super(role, clusterContext, selfContext); @@ -39,6 +39,8 @@ public class NodeRefHourAnalysis extends AbstractNodeRefAnalysis { long day = segmentWithTimeSlice.getDay(); int second = segmentWithTimeSlice.getSecond(); analyseNodeRef(segment, segmentWithTimeSlice.getHour(), minute, hour, day, second); + } else { + logger.error("unhandled message, message instance must SegmentPost.SegmentWithTimeSlice, but is %s", message.getClass().toString()); } } @@ -48,17 +50,16 @@ public class NodeRefHourAnalysis extends AbstractNodeRefAnalysis { } @Override - protected void aggregation() throws Exception { - RecordData oneRecord; - while ((oneRecord = pushOne()) != null) { - getClusterContext().lookup(NodeRefHourAgg.Role.INSTANCE).tell(oneRecord); + protected WorkerRefs aggWorkRefs() { + try { + return getClusterContext().lookup(NodeRefHourAgg.Role.INSTANCE); + } catch (WorkerNotFoundException e) { + logger.error("The role of %s worker not found", NodeRefHourAgg.Role.INSTANCE.roleName()); } + return null; } public static class Factory extends AbstractLocalAsyncWorkerProvider { - - public static Factory INSTANCE = new Factory(); - @Override public Role role() { return Role.INSTANCE; diff --git a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/noderef/analysis/NodeRefMinuteAnalysis.java b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/noderef/analysis/NodeRefMinuteAnalysis.java index 41257ea78..58943b1c0 100644 --- a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/noderef/analysis/NodeRefMinuteAnalysis.java +++ b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/noderef/analysis/NodeRefMinuteAnalysis.java @@ -1,22 +1,22 @@ package com.a.eye.skywalking.collector.worker.noderef.analysis; -import com.a.eye.skywalking.collector.actor.AbstractLocalAsyncWorkerProvider; -import com.a.eye.skywalking.collector.actor.ClusterWorkerContext; -import com.a.eye.skywalking.collector.actor.LocalWorkerContext; -import com.a.eye.skywalking.collector.actor.ProviderNotFoundException; +import com.a.eye.skywalking.collector.actor.*; import com.a.eye.skywalking.collector.actor.selector.RollingSelector; import com.a.eye.skywalking.collector.actor.selector.WorkerSelector; import com.a.eye.skywalking.collector.worker.config.WorkerConfig; import com.a.eye.skywalking.collector.worker.noderef.persistence.NodeRefMinuteAgg; import com.a.eye.skywalking.collector.worker.segment.SegmentPost; import com.a.eye.skywalking.collector.worker.segment.entity.Segment; -import com.a.eye.skywalking.collector.worker.storage.RecordData; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; /** * @author pengys5 */ public class NodeRefMinuteAnalysis extends AbstractNodeRefAnalysis { + private Logger logger = LogManager.getFormatterLogger(NodeRefMinuteAnalysis.class); + protected NodeRefMinuteAnalysis(com.a.eye.skywalking.collector.actor.Role role, ClusterWorkerContext clusterContext, LocalWorkerContext selfContext) { super(role, clusterContext, selfContext); @@ -38,6 +38,8 @@ public class NodeRefMinuteAnalysis extends AbstractNodeRefAnalysis { long day = segmentWithTimeSlice.getDay(); int second = segmentWithTimeSlice.getSecond(); analyseNodeRef(segment, segmentWithTimeSlice.getMinute(), minute, hour, day, second); + } else { + logger.error("unhandled message, message instance must SegmentPost.SegmentWithTimeSlice, but is %s", message.getClass().toString()); } } @@ -47,17 +49,16 @@ public class NodeRefMinuteAnalysis extends AbstractNodeRefAnalysis { } @Override - protected void aggregation() throws Exception { - RecordData oneRecord; - while ((oneRecord = pushOne()) != null) { - getClusterContext().lookup(NodeRefMinuteAgg.Role.INSTANCE).tell(oneRecord); + protected WorkerRefs aggWorkRefs() { + try { + return getClusterContext().lookup(NodeRefMinuteAgg.Role.INSTANCE); + } catch (WorkerNotFoundException e) { + logger.error("The role of %s worker not found", NodeRefMinuteAgg.Role.INSTANCE.roleName()); } + return null; } public static class Factory extends AbstractLocalAsyncWorkerProvider { - - public static Factory INSTANCE = new Factory(); - @Override public Role role() { return Role.INSTANCE; diff --git a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/noderef/analysis/NodeRefResSumDayAnalysis.java b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/noderef/analysis/NodeRefResSumDayAnalysis.java index bf049b247..8aaea755e 100644 --- a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/noderef/analysis/NodeRefResSumDayAnalysis.java +++ b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/noderef/analysis/NodeRefResSumDayAnalysis.java @@ -1,43 +1,46 @@ package com.a.eye.skywalking.collector.worker.noderef.analysis; -import com.a.eye.skywalking.collector.actor.AbstractLocalAsyncWorkerProvider; -import com.a.eye.skywalking.collector.actor.ClusterWorkerContext; -import com.a.eye.skywalking.collector.actor.LocalWorkerContext; +import com.a.eye.skywalking.collector.actor.*; import com.a.eye.skywalking.collector.actor.selector.RollingSelector; import com.a.eye.skywalking.collector.actor.selector.WorkerSelector; import com.a.eye.skywalking.collector.worker.config.WorkerConfig; import com.a.eye.skywalking.collector.worker.noderef.persistence.NodeRefResSumDayAgg; -import com.a.eye.skywalking.collector.worker.storage.MetricData; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; /** * @author pengys5 */ public class NodeRefResSumDayAnalysis extends AbstractNodeRefResSumAnalysis { + private Logger logger = LogManager.getFormatterLogger(NodeRefResSumDayAnalysis.class); + NodeRefResSumDayAnalysis(com.a.eye.skywalking.collector.actor.Role role, ClusterWorkerContext clusterContext, - LocalWorkerContext selfContext) { + LocalWorkerContext selfContext) { super(role, clusterContext, selfContext); } @Override public void analyse(Object message) throws Exception { if (message instanceof NodeRefResRecord) { - NodeRefResRecord refResRecord = (NodeRefResRecord)message; + NodeRefResRecord refResRecord = (NodeRefResRecord) message; analyseResSum(refResRecord); + } else { + logger.error("unhandled message, message instance must NodeRefResRecord, but is %s", message.getClass().toString()); } } @Override - protected void aggregation() throws Exception { - MetricData oneMetric; - while ((oneMetric = pushOne()) != null) { - getClusterContext().lookup(NodeRefResSumDayAgg.Role.INSTANCE).tell(oneMetric); + protected WorkerRefs aggWorkRefs() { + try { + return getClusterContext().lookup(NodeRefResSumDayAgg.Role.INSTANCE); + } catch (WorkerNotFoundException e) { + logger.error("The role of %s worker not found", NodeRefResSumDayAgg.Role.INSTANCE.roleName()); } + return null; } public static class Factory extends AbstractLocalAsyncWorkerProvider { - public static Factory INSTANCE = new Factory(); - @Override public Role role() { return Role.INSTANCE; diff --git a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/noderef/analysis/NodeRefResSumHourAnalysis.java b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/noderef/analysis/NodeRefResSumHourAnalysis.java index b2341832e..d2442a787 100644 --- a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/noderef/analysis/NodeRefResSumHourAnalysis.java +++ b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/noderef/analysis/NodeRefResSumHourAnalysis.java @@ -1,43 +1,46 @@ package com.a.eye.skywalking.collector.worker.noderef.analysis; -import com.a.eye.skywalking.collector.actor.AbstractLocalAsyncWorkerProvider; -import com.a.eye.skywalking.collector.actor.ClusterWorkerContext; -import com.a.eye.skywalking.collector.actor.LocalWorkerContext; +import com.a.eye.skywalking.collector.actor.*; import com.a.eye.skywalking.collector.actor.selector.RollingSelector; import com.a.eye.skywalking.collector.actor.selector.WorkerSelector; import com.a.eye.skywalking.collector.worker.config.WorkerConfig; import com.a.eye.skywalking.collector.worker.noderef.persistence.NodeRefResSumHourAgg; -import com.a.eye.skywalking.collector.worker.storage.MetricData; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; /** * @author pengys5 */ public class NodeRefResSumHourAnalysis extends AbstractNodeRefResSumAnalysis { + private Logger logger = LogManager.getFormatterLogger(NodeRefResSumHourAnalysis.class); + NodeRefResSumHourAnalysis(com.a.eye.skywalking.collector.actor.Role role, ClusterWorkerContext clusterContext, - LocalWorkerContext selfContext) { + LocalWorkerContext selfContext) { super(role, clusterContext, selfContext); } @Override public void analyse(Object message) throws Exception { if (message instanceof NodeRefResRecord) { - NodeRefResRecord refResRecord = (NodeRefResRecord)message; + NodeRefResRecord refResRecord = (NodeRefResRecord) message; analyseResSum(refResRecord); + } else { + logger.error("unhandled message, message instance must NodeRefResRecord, but is %s", message.getClass().toString()); } } @Override - protected void aggregation() throws Exception { - MetricData oneMetric; - while ((oneMetric = pushOne()) != null) { - getClusterContext().lookup(NodeRefResSumHourAgg.Role.INSTANCE).tell(oneMetric); + protected WorkerRefs aggWorkRefs() { + try { + return getClusterContext().lookup(NodeRefResSumHourAgg.Role.INSTANCE); + } catch (WorkerNotFoundException e) { + logger.error("The role of %s worker not found", NodeRefResSumHourAgg.Role.INSTANCE.roleName()); } + return null; } public static class Factory extends AbstractLocalAsyncWorkerProvider { - public static Factory INSTANCE = new Factory(); - @Override public Role role() { return Role.INSTANCE; diff --git a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/noderef/analysis/NodeRefResSumMinuteAnalysis.java b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/noderef/analysis/NodeRefResSumMinuteAnalysis.java index 810827bad..c88062c8f 100644 --- a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/noderef/analysis/NodeRefResSumMinuteAnalysis.java +++ b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/noderef/analysis/NodeRefResSumMinuteAnalysis.java @@ -1,43 +1,46 @@ package com.a.eye.skywalking.collector.worker.noderef.analysis; -import com.a.eye.skywalking.collector.actor.AbstractLocalAsyncWorkerProvider; -import com.a.eye.skywalking.collector.actor.ClusterWorkerContext; -import com.a.eye.skywalking.collector.actor.LocalWorkerContext; +import com.a.eye.skywalking.collector.actor.*; import com.a.eye.skywalking.collector.actor.selector.RollingSelector; import com.a.eye.skywalking.collector.actor.selector.WorkerSelector; import com.a.eye.skywalking.collector.worker.config.WorkerConfig; import com.a.eye.skywalking.collector.worker.noderef.persistence.NodeRefResSumMinuteAgg; -import com.a.eye.skywalking.collector.worker.storage.MetricData; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; /** * @author pengys5 */ public class NodeRefResSumMinuteAnalysis extends AbstractNodeRefResSumAnalysis { + private Logger logger = LogManager.getFormatterLogger(NodeRefResSumMinuteAnalysis.class); + NodeRefResSumMinuteAnalysis(com.a.eye.skywalking.collector.actor.Role role, ClusterWorkerContext clusterContext, - LocalWorkerContext selfContext) { + LocalWorkerContext selfContext) { super(role, clusterContext, selfContext); } @Override public void analyse(Object message) throws Exception { if (message instanceof NodeRefResRecord) { - NodeRefResRecord refResRecord = (NodeRefResRecord)message; + NodeRefResRecord refResRecord = (NodeRefResRecord) message; analyseResSum(refResRecord); + } else { + logger.error("unhandled message, message instance must NodeRefResRecord, but is %s", message.getClass().toString()); } } @Override - protected void aggregation() throws Exception { - MetricData oneMetric; - while ((oneMetric = pushOne()) != null) { - getClusterContext().lookup(NodeRefResSumMinuteAgg.Role.INSTANCE).tell(oneMetric); + protected WorkerRefs aggWorkRefs() { + try { + return getClusterContext().lookup(NodeRefResSumMinuteAgg.Role.INSTANCE); + } catch (WorkerNotFoundException e) { + logger.error("The role of %s worker not found", NodeRefResSumMinuteAgg.Role.INSTANCE.roleName()); } + return null; } public static class Factory extends AbstractLocalAsyncWorkerProvider { - public static Factory INSTANCE = new Factory(); - @Override public Role role() { return Role.INSTANCE; diff --git a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/noderef/persistence/NodeRefDayAgg.java b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/noderef/persistence/NodeRefDayAgg.java index da585f7c6..c9ad8c629 100644 --- a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/noderef/persistence/NodeRefDayAgg.java +++ b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/noderef/persistence/NodeRefDayAgg.java @@ -30,13 +30,11 @@ public class NodeRefDayAgg extends AbstractClusterWorker { if (message instanceof RecordData) { getSelfContext().lookup(NodeRefDaySave.Role.INSTANCE).tell(message); } else { - logger.error("message unhandled"); + logger.error("unhandled message, message instance must RecordData, but is %s", message.getClass().toString()); } } public static class Factory extends AbstractClusterWorkerProvider { - public static Factory INSTANCE = new Factory(); - @Override public Role role() { return Role.INSTANCE; diff --git a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/noderef/persistence/NodeRefDaySave.java b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/noderef/persistence/NodeRefDaySave.java index b2dac0dc2..ac4708397 100644 --- a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/noderef/persistence/NodeRefDaySave.java +++ b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/noderef/persistence/NodeRefDaySave.java @@ -1,13 +1,13 @@ package com.a.eye.skywalking.collector.worker.noderef.persistence; -import com.a.eye.skywalking.collector.actor.AbstractLocalAsyncWorkerProvider; +import com.a.eye.skywalking.collector.actor.AbstractLocalSyncWorkerProvider; import com.a.eye.skywalking.collector.actor.ClusterWorkerContext; import com.a.eye.skywalking.collector.actor.LocalWorkerContext; import com.a.eye.skywalking.collector.actor.selector.HashCodeSelector; import com.a.eye.skywalking.collector.actor.selector.WorkerSelector; import com.a.eye.skywalking.collector.worker.RecordPersistenceMember; -import com.a.eye.skywalking.collector.worker.config.WorkerConfig; import com.a.eye.skywalking.collector.worker.noderef.NodeRefIndex; +import com.a.eye.skywalking.collector.worker.storage.PersistenceWorkerListener; /** * @author pengys5 @@ -15,7 +15,7 @@ import com.a.eye.skywalking.collector.worker.noderef.NodeRefIndex; public class NodeRefDaySave extends RecordPersistenceMember { NodeRefDaySave(com.a.eye.skywalking.collector.actor.Role role, ClusterWorkerContext clusterContext, - LocalWorkerContext selfContext) { + LocalWorkerContext selfContext) { super(role, clusterContext, selfContext); } @@ -29,10 +29,7 @@ public class NodeRefDaySave extends RecordPersistenceMember { return NodeRefIndex.TYPE_DAY; } - public static class Factory extends AbstractLocalAsyncWorkerProvider { - - public static Factory INSTANCE = new Factory(); - + public static class Factory extends AbstractLocalSyncWorkerProvider { @Override public Role role() { return Role.INSTANCE; @@ -40,12 +37,9 @@ public class NodeRefDaySave extends RecordPersistenceMember { @Override public NodeRefDaySave workerInstance(ClusterWorkerContext clusterContext) { - return new NodeRefDaySave(role(), clusterContext, new LocalWorkerContext()); - } - - @Override - public int queueSize() { - return WorkerConfig.Queue.NodeRef.NodeRefDaySave.SIZE; + NodeRefDaySave worker = new NodeRefDaySave(role(), clusterContext, new LocalWorkerContext()); + PersistenceWorkerListener.INSTANCE.register(worker); + return worker; } } diff --git a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/noderef/persistence/NodeRefHourAgg.java b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/noderef/persistence/NodeRefHourAgg.java index edda63862..a56741239 100644 --- a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/noderef/persistence/NodeRefHourAgg.java +++ b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/noderef/persistence/NodeRefHourAgg.java @@ -30,13 +30,11 @@ public class NodeRefHourAgg extends AbstractClusterWorker { if (message instanceof RecordData) { getSelfContext().lookup(NodeRefHourSave.Role.INSTANCE).tell(message); } else { - logger.error("message unhandled"); + logger.error("unhandled message, message instance must RecordData, but is %s", message.getClass().toString()); } } public static class Factory extends AbstractClusterWorkerProvider { - public static Factory INSTANCE = new Factory(); - @Override public Role role() { return Role.INSTANCE; diff --git a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/noderef/persistence/NodeRefHourSave.java b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/noderef/persistence/NodeRefHourSave.java index 8b237e1c5..736a473d2 100644 --- a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/noderef/persistence/NodeRefHourSave.java +++ b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/noderef/persistence/NodeRefHourSave.java @@ -1,13 +1,13 @@ package com.a.eye.skywalking.collector.worker.noderef.persistence; -import com.a.eye.skywalking.collector.actor.AbstractLocalAsyncWorkerProvider; +import com.a.eye.skywalking.collector.actor.AbstractLocalSyncWorkerProvider; import com.a.eye.skywalking.collector.actor.ClusterWorkerContext; import com.a.eye.skywalking.collector.actor.LocalWorkerContext; import com.a.eye.skywalking.collector.actor.selector.HashCodeSelector; import com.a.eye.skywalking.collector.actor.selector.WorkerSelector; import com.a.eye.skywalking.collector.worker.RecordPersistenceMember; -import com.a.eye.skywalking.collector.worker.config.WorkerConfig; import com.a.eye.skywalking.collector.worker.noderef.NodeRefIndex; +import com.a.eye.skywalking.collector.worker.storage.PersistenceWorkerListener; /** * @author pengys5 @@ -15,7 +15,7 @@ import com.a.eye.skywalking.collector.worker.noderef.NodeRefIndex; public class NodeRefHourSave extends RecordPersistenceMember { NodeRefHourSave(com.a.eye.skywalking.collector.actor.Role role, ClusterWorkerContext clusterContext, - LocalWorkerContext selfContext) { + LocalWorkerContext selfContext) { super(role, clusterContext, selfContext); } @@ -29,10 +29,7 @@ public class NodeRefHourSave extends RecordPersistenceMember { return NodeRefIndex.TYPE_HOUR; } - public static class Factory extends AbstractLocalAsyncWorkerProvider { - - public static Factory INSTANCE = new Factory(); - + public static class Factory extends AbstractLocalSyncWorkerProvider { @Override public Role role() { return Role.INSTANCE; @@ -40,12 +37,9 @@ public class NodeRefHourSave extends RecordPersistenceMember { @Override public NodeRefHourSave workerInstance(ClusterWorkerContext clusterContext) { - return new NodeRefHourSave(role(), clusterContext, new LocalWorkerContext()); - } - - @Override - public int queueSize() { - return WorkerConfig.Queue.NodeRef.NodeRefHourSave.SIZE; + NodeRefHourSave worker = new NodeRefHourSave(role(), clusterContext, new LocalWorkerContext()); + PersistenceWorkerListener.INSTANCE.register(worker); + return worker; } } diff --git a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/noderef/persistence/NodeRefMinuteAgg.java b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/noderef/persistence/NodeRefMinuteAgg.java index fe4db00d1..2070ebfe3 100644 --- a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/noderef/persistence/NodeRefMinuteAgg.java +++ b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/noderef/persistence/NodeRefMinuteAgg.java @@ -30,13 +30,11 @@ public class NodeRefMinuteAgg extends AbstractClusterWorker { if (message instanceof RecordData) { getSelfContext().lookup(NodeRefMinuteSave.Role.INSTANCE).tell(message); } else { - logger.error("message unhandled"); + logger.error("unhandled message, message instance must RecordData, but is %s", message.getClass().toString()); } } public static class Factory extends AbstractClusterWorkerProvider { - public static Factory INSTANCE = new Factory(); - @Override public Role role() { return Role.INSTANCE; diff --git a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/noderef/persistence/NodeRefMinuteSave.java b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/noderef/persistence/NodeRefMinuteSave.java index f1fcba2d0..3c04054b2 100644 --- a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/noderef/persistence/NodeRefMinuteSave.java +++ b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/noderef/persistence/NodeRefMinuteSave.java @@ -1,13 +1,13 @@ package com.a.eye.skywalking.collector.worker.noderef.persistence; -import com.a.eye.skywalking.collector.actor.AbstractLocalAsyncWorkerProvider; +import com.a.eye.skywalking.collector.actor.AbstractLocalSyncWorkerProvider; import com.a.eye.skywalking.collector.actor.ClusterWorkerContext; import com.a.eye.skywalking.collector.actor.LocalWorkerContext; import com.a.eye.skywalking.collector.actor.selector.HashCodeSelector; import com.a.eye.skywalking.collector.actor.selector.WorkerSelector; import com.a.eye.skywalking.collector.worker.RecordPersistenceMember; -import com.a.eye.skywalking.collector.worker.config.WorkerConfig; import com.a.eye.skywalking.collector.worker.noderef.NodeRefIndex; +import com.a.eye.skywalking.collector.worker.storage.PersistenceWorkerListener; /** * @author pengys5 @@ -15,7 +15,7 @@ import com.a.eye.skywalking.collector.worker.noderef.NodeRefIndex; public class NodeRefMinuteSave extends RecordPersistenceMember { NodeRefMinuteSave(com.a.eye.skywalking.collector.actor.Role role, ClusterWorkerContext clusterContext, - LocalWorkerContext selfContext) { + LocalWorkerContext selfContext) { super(role, clusterContext, selfContext); } @@ -29,10 +29,7 @@ public class NodeRefMinuteSave extends RecordPersistenceMember { return NodeRefIndex.TYPE_MINUTE; } - public static class Factory extends AbstractLocalAsyncWorkerProvider { - - public static Factory INSTANCE = new Factory(); - + public static class Factory extends AbstractLocalSyncWorkerProvider { @Override public Role role() { return Role.INSTANCE; @@ -40,12 +37,9 @@ public class NodeRefMinuteSave extends RecordPersistenceMember { @Override public NodeRefMinuteSave workerInstance(ClusterWorkerContext clusterContext) { - return new NodeRefMinuteSave(role(), clusterContext, new LocalWorkerContext()); - } - - @Override - public int queueSize() { - return WorkerConfig.Queue.NodeRef.NodeRefMinuteSave.SIZE; + NodeRefMinuteSave worker = new NodeRefMinuteSave(role(), clusterContext, new LocalWorkerContext()); + PersistenceWorkerListener.INSTANCE.register(worker); + return worker; } } diff --git a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/noderef/persistence/NodeRefResSumDayAgg.java b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/noderef/persistence/NodeRefResSumDayAgg.java index 2147ab5bd..ec76fb793 100644 --- a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/noderef/persistence/NodeRefResSumDayAgg.java +++ b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/noderef/persistence/NodeRefResSumDayAgg.java @@ -30,13 +30,11 @@ public class NodeRefResSumDayAgg extends AbstractClusterWorker { if (message instanceof MetricData) { getSelfContext().lookup(NodeRefResSumDaySave.Role.INSTANCE).tell(message); } else { - logger.error("message unhandled"); + logger.error("unhandled message, message instance must MetricData, but is %s", message.getClass().toString()); } } public static class Factory extends AbstractClusterWorkerProvider { - public static Factory INSTANCE = new Factory(); - @Override public Role role() { return Role.INSTANCE; diff --git a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/noderef/persistence/NodeRefResSumDaySave.java b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/noderef/persistence/NodeRefResSumDaySave.java index f39a33a64..074b41d2c 100644 --- a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/noderef/persistence/NodeRefResSumDaySave.java +++ b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/noderef/persistence/NodeRefResSumDaySave.java @@ -1,13 +1,13 @@ package com.a.eye.skywalking.collector.worker.noderef.persistence; -import com.a.eye.skywalking.collector.actor.AbstractLocalAsyncWorkerProvider; +import com.a.eye.skywalking.collector.actor.AbstractLocalSyncWorkerProvider; import com.a.eye.skywalking.collector.actor.ClusterWorkerContext; import com.a.eye.skywalking.collector.actor.LocalWorkerContext; import com.a.eye.skywalking.collector.actor.selector.HashCodeSelector; import com.a.eye.skywalking.collector.actor.selector.WorkerSelector; import com.a.eye.skywalking.collector.worker.MetricPersistenceMember; -import com.a.eye.skywalking.collector.worker.config.WorkerConfig; import com.a.eye.skywalking.collector.worker.noderef.NodeRefResSumIndex; +import com.a.eye.skywalking.collector.worker.storage.PersistenceWorkerListener; /** * @author pengys5 @@ -15,7 +15,7 @@ import com.a.eye.skywalking.collector.worker.noderef.NodeRefResSumIndex; public class NodeRefResSumDaySave extends MetricPersistenceMember { NodeRefResSumDaySave(com.a.eye.skywalking.collector.actor.Role role, ClusterWorkerContext clusterContext, - LocalWorkerContext selfContext) { + LocalWorkerContext selfContext) { super(role, clusterContext, selfContext); } @@ -29,9 +29,7 @@ public class NodeRefResSumDaySave extends MetricPersistenceMember { return NodeRefResSumIndex.TYPE_DAY; } - public static class Factory extends AbstractLocalAsyncWorkerProvider { - public static Factory INSTANCE = new Factory(); - + public static class Factory extends AbstractLocalSyncWorkerProvider { @Override public Role role() { return Role.INSTANCE; @@ -39,12 +37,9 @@ public class NodeRefResSumDaySave extends MetricPersistenceMember { @Override public NodeRefResSumDaySave workerInstance(ClusterWorkerContext clusterContext) { - return new NodeRefResSumDaySave(role(), clusterContext, new LocalWorkerContext()); - } - - @Override - public int queueSize() { - return WorkerConfig.Queue.NodeRef.NodeRefResSumDaySave.SIZE; + NodeRefResSumDaySave worker = new NodeRefResSumDaySave(role(), clusterContext, new LocalWorkerContext()); + PersistenceWorkerListener.INSTANCE.register(worker); + return worker; } } diff --git a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/noderef/persistence/NodeRefResSumGroupWithTimeSlice.java b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/noderef/persistence/NodeRefResSumGroupWithTimeSlice.java index c62eaad19..defc8261d 100644 --- a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/noderef/persistence/NodeRefResSumGroupWithTimeSlice.java +++ b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/noderef/persistence/NodeRefResSumGroupWithTimeSlice.java @@ -80,7 +80,7 @@ public class NodeRefResSumGroupWithTimeSlice extends AbstractLocalSyncWorker { JsonObject resJsonObj = (JsonObject)response; resJsonObj.add("result", nodeRefResSumArray); } else { - throw new IllegalArgumentException("message instance must be RequestEntity"); + logger.error("unhandled message, message instance must NodeRefResSumGroupWithTimeSlice.RequestEntity, but is %s", request.getClass().toString()); } } @@ -91,8 +91,6 @@ public class NodeRefResSumGroupWithTimeSlice extends AbstractLocalSyncWorker { } public static class Factory extends AbstractLocalSyncWorkerProvider { - public static Factory INSTANCE = new Factory(); - @Override public Role role() { return WorkerRole.INSTANCE; diff --git a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/noderef/persistence/NodeRefResSumHourAgg.java b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/noderef/persistence/NodeRefResSumHourAgg.java index 4ec8b6dab..8799b42c6 100644 --- a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/noderef/persistence/NodeRefResSumHourAgg.java +++ b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/noderef/persistence/NodeRefResSumHourAgg.java @@ -30,13 +30,11 @@ public class NodeRefResSumHourAgg extends AbstractClusterWorker { if (message instanceof MetricData) { getSelfContext().lookup(NodeRefResSumHourSave.Role.INSTANCE).tell(message); } else { - logger.error("message unhandled"); + logger.error("unhandled message, message instance must MetricData, but is %s", message.getClass().toString()); } } public static class Factory extends AbstractClusterWorkerProvider { - public static Factory INSTANCE = new Factory(); - @Override public Role role() { return Role.INSTANCE; diff --git a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/noderef/persistence/NodeRefResSumHourSave.java b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/noderef/persistence/NodeRefResSumHourSave.java index f4e58efe2..776a511eb 100644 --- a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/noderef/persistence/NodeRefResSumHourSave.java +++ b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/noderef/persistence/NodeRefResSumHourSave.java @@ -1,13 +1,13 @@ package com.a.eye.skywalking.collector.worker.noderef.persistence; -import com.a.eye.skywalking.collector.actor.AbstractLocalAsyncWorkerProvider; +import com.a.eye.skywalking.collector.actor.AbstractLocalSyncWorkerProvider; import com.a.eye.skywalking.collector.actor.ClusterWorkerContext; import com.a.eye.skywalking.collector.actor.LocalWorkerContext; import com.a.eye.skywalking.collector.actor.selector.HashCodeSelector; import com.a.eye.skywalking.collector.actor.selector.WorkerSelector; import com.a.eye.skywalking.collector.worker.MetricPersistenceMember; -import com.a.eye.skywalking.collector.worker.config.WorkerConfig; import com.a.eye.skywalking.collector.worker.noderef.NodeRefResSumIndex; +import com.a.eye.skywalking.collector.worker.storage.PersistenceWorkerListener; /** * @author pengys5 @@ -15,7 +15,7 @@ import com.a.eye.skywalking.collector.worker.noderef.NodeRefResSumIndex; public class NodeRefResSumHourSave extends MetricPersistenceMember { NodeRefResSumHourSave(com.a.eye.skywalking.collector.actor.Role role, ClusterWorkerContext clusterContext, - LocalWorkerContext selfContext) { + LocalWorkerContext selfContext) { super(role, clusterContext, selfContext); } @@ -29,9 +29,7 @@ public class NodeRefResSumHourSave extends MetricPersistenceMember { return NodeRefResSumIndex.TYPE_HOUR; } - public static class Factory extends AbstractLocalAsyncWorkerProvider { - public static Factory INSTANCE = new Factory(); - + public static class Factory extends AbstractLocalSyncWorkerProvider { @Override public Role role() { return Role.INSTANCE; @@ -39,12 +37,9 @@ public class NodeRefResSumHourSave extends MetricPersistenceMember { @Override public NodeRefResSumHourSave workerInstance(ClusterWorkerContext clusterContext) { - return new NodeRefResSumHourSave(role(), clusterContext, new LocalWorkerContext()); - } - - @Override - public int queueSize() { - return WorkerConfig.Queue.NodeRef.NodeRefResSumHourSave.SIZE; + NodeRefResSumHourSave worker = new NodeRefResSumHourSave(role(), clusterContext, new LocalWorkerContext()); + PersistenceWorkerListener.INSTANCE.register(worker); + return worker; } } diff --git a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/noderef/persistence/NodeRefResSumMinuteAgg.java b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/noderef/persistence/NodeRefResSumMinuteAgg.java index 6b0b94816..244edb5b9 100644 --- a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/noderef/persistence/NodeRefResSumMinuteAgg.java +++ b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/noderef/persistence/NodeRefResSumMinuteAgg.java @@ -30,13 +30,11 @@ public class NodeRefResSumMinuteAgg extends AbstractClusterWorker { if (message instanceof MetricData) { getSelfContext().lookup(NodeRefResSumMinuteSave.Role.INSTANCE).tell(message); } else { - logger.error("message unhandled"); + logger.error("unhandled message, message instance must MetricData, but is %s", message.getClass().toString()); } } public static class Factory extends AbstractClusterWorkerProvider { - public static Factory INSTANCE = new Factory(); - @Override public Role role() { return Role.INSTANCE; diff --git a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/noderef/persistence/NodeRefResSumMinuteSave.java b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/noderef/persistence/NodeRefResSumMinuteSave.java index 0cead785c..040b20c9b 100644 --- a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/noderef/persistence/NodeRefResSumMinuteSave.java +++ b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/noderef/persistence/NodeRefResSumMinuteSave.java @@ -1,13 +1,13 @@ package com.a.eye.skywalking.collector.worker.noderef.persistence; -import com.a.eye.skywalking.collector.actor.AbstractLocalAsyncWorkerProvider; +import com.a.eye.skywalking.collector.actor.AbstractLocalSyncWorkerProvider; import com.a.eye.skywalking.collector.actor.ClusterWorkerContext; import com.a.eye.skywalking.collector.actor.LocalWorkerContext; import com.a.eye.skywalking.collector.actor.selector.HashCodeSelector; import com.a.eye.skywalking.collector.actor.selector.WorkerSelector; import com.a.eye.skywalking.collector.worker.MetricPersistenceMember; -import com.a.eye.skywalking.collector.worker.config.WorkerConfig; import com.a.eye.skywalking.collector.worker.noderef.NodeRefResSumIndex; +import com.a.eye.skywalking.collector.worker.storage.PersistenceWorkerListener; /** * @author pengys5 @@ -15,7 +15,7 @@ import com.a.eye.skywalking.collector.worker.noderef.NodeRefResSumIndex; public class NodeRefResSumMinuteSave extends MetricPersistenceMember { NodeRefResSumMinuteSave(com.a.eye.skywalking.collector.actor.Role role, ClusterWorkerContext clusterContext, - LocalWorkerContext selfContext) { + LocalWorkerContext selfContext) { super(role, clusterContext, selfContext); } @@ -29,9 +29,7 @@ public class NodeRefResSumMinuteSave extends MetricPersistenceMember { return NodeRefResSumIndex.TYPE_MINUTE; } - public static class Factory extends AbstractLocalAsyncWorkerProvider { - public static Factory INSTANCE = new Factory(); - + public static class Factory extends AbstractLocalSyncWorkerProvider { @Override public Role role() { return Role.INSTANCE; @@ -39,12 +37,9 @@ public class NodeRefResSumMinuteSave extends MetricPersistenceMember { @Override public NodeRefResSumMinuteSave workerInstance(ClusterWorkerContext clusterContext) { - return new NodeRefResSumMinuteSave(role(), clusterContext, new LocalWorkerContext()); - } - - @Override - public int queueSize() { - return WorkerConfig.Queue.NodeRef.NodeRefResSumMinuteSave.SIZE; + NodeRefResSumMinuteSave worker = new NodeRefResSumMinuteSave(role(), clusterContext, new LocalWorkerContext()); + PersistenceWorkerListener.INSTANCE.register(worker); + return worker; } } diff --git a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/noderef/persistence/NodeRefResSumSearchWithTimeSlice.java b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/noderef/persistence/NodeRefResSumSearchWithTimeSlice.java index 0fa7c19fe..c26b9a505 100644 --- a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/noderef/persistence/NodeRefResSumSearchWithTimeSlice.java +++ b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/noderef/persistence/NodeRefResSumSearchWithTimeSlice.java @@ -91,7 +91,7 @@ public class NodeRefResSumSearchWithTimeSlice extends AbstractLocalSyncWorker { JsonObject resJsonObj = (JsonObject)response; resJsonObj.add("result", nodeRefResSumArray); } else { - throw new IllegalArgumentException("message instance must be RequestEntity"); + logger.error("unhandled message, message instance must NodeRefResSumSearchWithTimeSlice.RequestEntity, but is %s", request.getClass().toString()); } } @@ -102,8 +102,6 @@ public class NodeRefResSumSearchWithTimeSlice extends AbstractLocalSyncWorker { } public static class Factory extends AbstractLocalSyncWorkerProvider { - public static Factory INSTANCE = new Factory(); - @Override public Role role() { return WorkerRole.INSTANCE; diff --git a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/noderef/persistence/NodeRefSearchWithTimeSlice.java b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/noderef/persistence/NodeRefSearchWithTimeSlice.java index c6f272853..f1027c65f 100644 --- a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/noderef/persistence/NodeRefSearchWithTimeSlice.java +++ b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/noderef/persistence/NodeRefSearchWithTimeSlice.java @@ -63,7 +63,7 @@ public class NodeRefSearchWithTimeSlice extends AbstractLocalSyncWorker { JsonObject resJsonObj = (JsonObject)response; resJsonObj.add("result", nodeRefArray); } else { - throw new IllegalArgumentException("message instance must be RequestEntity"); + logger.error("unhandled message, message instance must NodeRefSearchWithTimeSlice.RequestEntity, but is %s", request.getClass().toString()); } } @@ -74,8 +74,6 @@ public class NodeRefSearchWithTimeSlice extends AbstractLocalSyncWorker { } public static class Factory extends AbstractLocalSyncWorkerProvider { - public static Factory INSTANCE = new Factory(); - @Override public Role role() { return WorkerRole.INSTANCE; diff --git a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/segment/SegmentCostIndex.java b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/segment/SegmentCostIndex.java index a8e74ef0e..823b43f82 100644 --- a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/segment/SegmentCostIndex.java +++ b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/segment/SegmentCostIndex.java @@ -1,5 +1,6 @@ package com.a.eye.skywalking.collector.worker.segment; +import com.a.eye.skywalking.collector.worker.config.EsConfig; import com.a.eye.skywalking.collector.worker.storage.AbstractIndex; import org.elasticsearch.common.xcontent.XContentBuilder; import org.elasticsearch.common.xcontent.XContentFactory; @@ -28,32 +29,35 @@ public class SegmentCostIndex extends AbstractIndex { return true; } + @Override + public int refreshInterval() { + return EsConfig.Es.Index.RefreshInterval.SegmentCostIndex.VALUE; + } + @Override public XContentBuilder createMappingBuilder() throws IOException { return XContentFactory.jsonBuilder() - .startObject() - .startObject("properties") - .startObject(SEG_ID) - .field("type", "string") - .field("index", "not_analyzed") - .endObject() - .startObject(START_TIME) - .field("type", "long") - .field("index", "not_analyzed") - .endObject() - .startObject(END_TIME) - .field("type", "long") - .field("index", "not_analyzed") - .endObject() - .startObject(OPERATION_NAME) - .field("type", "string") - .field("index", "not_analyzed") - .endObject() - .startObject(COST) - .field("type", "long") - .field("index", "not_analyzed") - .endObject() - .endObject() - .endObject(); + .startObject() + .startObject("properties") + .startObject(SEG_ID) + .field("type", "keyword") + .endObject() + .startObject(START_TIME) + .field("type", "long") + .field("index", "not_analyzed") + .endObject() + .startObject(END_TIME) + .field("type", "long") + .field("index", "not_analyzed") + .endObject() + .startObject(OPERATION_NAME) + .field("type", "keyword") + .endObject() + .startObject(COST) + .field("type", "long") + .field("index", "not_analyzed") + .endObject() + .endObject() + .endObject(); } } diff --git a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/segment/SegmentExceptionIndex.java b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/segment/SegmentExceptionIndex.java index 65efbd7bf..54b199ac4 100644 --- a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/segment/SegmentExceptionIndex.java +++ b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/segment/SegmentExceptionIndex.java @@ -1,5 +1,6 @@ package com.a.eye.skywalking.collector.worker.segment; +import com.a.eye.skywalking.collector.worker.config.EsConfig; import com.a.eye.skywalking.collector.worker.storage.AbstractIndex; import org.elasticsearch.common.xcontent.XContentBuilder; import org.elasticsearch.common.xcontent.XContentFactory; @@ -25,25 +26,28 @@ public class SegmentExceptionIndex extends AbstractIndex { return true; } + @Override + public int refreshInterval() { + return EsConfig.Es.Index.RefreshInterval.SegmentExceptionIndex.VALUE; + } + @Override public XContentBuilder createMappingBuilder() throws IOException { XContentBuilder mappingBuilder = XContentFactory.jsonBuilder() - .startObject() - .startObject("properties") - .startObject(SEG_ID) - .field("type", "string") - .field("index", "not_analyzed") - .endObject() - .startObject(IS_ERROR) - .field("type", "boolean") - .field("index", "not_analyzed") - .endObject() - .startObject(ERROR_KIND) - .field("type", "string") - .field("index", "not_analyzed") - .endObject() - .endObject() - .endObject(); + .startObject() + .startObject("properties") + .startObject(SEG_ID) + .field("type", "keyword") + .endObject() + .startObject(IS_ERROR) + .field("type", "boolean") + .field("index", "not_analyzed") + .endObject() + .startObject(ERROR_KIND) + .field("type", "keyword") + .endObject() + .endObject() + .endObject(); return mappingBuilder; } } diff --git a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/segment/SegmentIndex.java b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/segment/SegmentIndex.java index 83cb3fd22..56a3a995b 100644 --- a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/segment/SegmentIndex.java +++ b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/segment/SegmentIndex.java @@ -1,5 +1,6 @@ package com.a.eye.skywalking.collector.worker.segment; +import com.a.eye.skywalking.collector.worker.config.EsConfig; import com.a.eye.skywalking.collector.worker.storage.AbstractIndex; import org.elasticsearch.common.xcontent.XContentBuilder; import org.elasticsearch.common.xcontent.XContentFactory; @@ -23,40 +24,43 @@ public class SegmentIndex extends AbstractIndex { return true; } + @Override + public int refreshInterval() { + return EsConfig.Es.Index.RefreshInterval.SegmentIndex.VALUE; + } + @Override public XContentBuilder createMappingBuilder() throws IOException { return XContentFactory.jsonBuilder() - .startObject() - .startObject("properties") - .startObject("traceSegmentId") - .field("type", "string") - .field("index", "not_analyzed") - .endObject() - .startObject("startTime") - .field("type", "date") - .field("index", "not_analyzed") - .endObject() - .startObject("endTime") - .field("type", "date") - .field("index", "not_analyzed") - .endObject() - .startObject("applicationCode") - .field("type", "string") - .field("index", "not_analyzed") - .endObject() - .startObject("minute") - .field("type", "long") - .field("index", "not_analyzed") - .endObject() - .startObject("hour") - .field("type", "long") - .field("index", "not_analyzed") - .endObject() - .startObject("day") - .field("type", "long") - .field("index", "not_analyzed") - .endObject() - .endObject() - .endObject(); + .startObject() + .startObject("properties") + .startObject("traceSegmentId") + .field("type", "keyword") + .endObject() + .startObject("startTime") + .field("type", "date") + .field("index", "not_analyzed") + .endObject() + .startObject("endTime") + .field("type", "date") + .field("index", "not_analyzed") + .endObject() + .startObject("applicationCode") + .field("type", "keyword") + .endObject() + .startObject("minute") + .field("type", "long") + .field("index", "not_analyzed") + .endObject() + .startObject("hour") + .field("type", "long") + .field("index", "not_analyzed") + .endObject() + .startObject("day") + .field("type", "long") + .field("index", "not_analyzed") + .endObject() + .endObject() + .endObject(); } } diff --git a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/segment/SegmentPost.java b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/segment/SegmentPost.java index 4e950d5de..3802bc421 100644 --- a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/segment/SegmentPost.java +++ b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/segment/SegmentPost.java @@ -18,10 +18,10 @@ import com.a.eye.skywalking.collector.worker.node.analysis.NodeMappingMinuteAnal import com.a.eye.skywalking.collector.worker.noderef.analysis.NodeRefDayAnalysis; import com.a.eye.skywalking.collector.worker.noderef.analysis.NodeRefHourAnalysis; import com.a.eye.skywalking.collector.worker.noderef.analysis.NodeRefMinuteAnalysis; +import com.a.eye.skywalking.collector.worker.segment.analysis.SegmentAnalysis; +import com.a.eye.skywalking.collector.worker.segment.analysis.SegmentCostAnalysis; +import com.a.eye.skywalking.collector.worker.segment.analysis.SegmentExceptionAnalysis; import com.a.eye.skywalking.collector.worker.segment.entity.Segment; -import com.a.eye.skywalking.collector.worker.segment.persistence.SegmentCostSave; -import com.a.eye.skywalking.collector.worker.segment.persistence.SegmentExceptionSave; -import com.a.eye.skywalking.collector.worker.segment.persistence.SegmentSave; import com.a.eye.skywalking.collector.worker.storage.AbstractTimeSlice; import com.a.eye.skywalking.collector.worker.tools.DateTools; import org.apache.logging.log4j.LogManager; @@ -41,16 +41,16 @@ public class SegmentPost extends AbstractPost { public void preStart() throws ProviderNotFoundException { getClusterContext().findProvider(GlobalTraceAnalysis.Role.INSTANCE).create(this); - getClusterContext().findProvider(NodeCompAnalysis.Role.INSTANCE).create(this); - - getClusterContext().findProvider(SegmentSave.Role.INSTANCE).create(this); - getClusterContext().findProvider(SegmentCostSave.Role.INSTANCE).create(this); - getClusterContext().findProvider(SegmentExceptionSave.Role.INSTANCE).create(this); + getClusterContext().findProvider(SegmentAnalysis.Role.INSTANCE).create(this); + getClusterContext().findProvider(SegmentCostAnalysis.Role.INSTANCE).create(this); + getClusterContext().findProvider(SegmentExceptionAnalysis.Role.INSTANCE).create(this); getClusterContext().findProvider(NodeRefMinuteAnalysis.Role.INSTANCE).create(this); getClusterContext().findProvider(NodeRefHourAnalysis.Role.INSTANCE).create(this); getClusterContext().findProvider(NodeRefDayAnalysis.Role.INSTANCE).create(this); + getClusterContext().findProvider(NodeCompAnalysis.Role.INSTANCE).create(this); + getClusterContext().findProvider(NodeMappingDayAnalysis.Role.INSTANCE).create(this); getClusterContext().findProvider(NodeMappingHourAnalysis.Role.INSTANCE).create(this); getClusterContext().findProvider(NodeMappingMinuteAnalysis.Role.INSTANCE).create(this); @@ -75,11 +75,11 @@ public class SegmentPost extends AbstractPost { logger.debug("minuteSlice: %s, hourSlice: %s, daySlice: %s, second:%s", minuteSlice, hourSlice, daySlice, second); SegmentWithTimeSlice segmentWithTimeSlice = new SegmentWithTimeSlice(segment, minuteSlice, hourSlice, daySlice, second); - getSelfContext().lookup(SegmentSave.Role.INSTANCE).tell(segment); + getSelfContext().lookup(SegmentAnalysis.Role.INSTANCE).tell(segment); - getSelfContext().lookup(SegmentCostSave.Role.INSTANCE).tell(segmentWithTimeSlice); + getSelfContext().lookup(SegmentCostAnalysis.Role.INSTANCE).tell(segmentWithTimeSlice); getSelfContext().lookup(GlobalTraceAnalysis.Role.INSTANCE).tell(segmentWithTimeSlice); - getSelfContext().lookup(SegmentExceptionSave.Role.INSTANCE).tell(segmentWithTimeSlice); + getSelfContext().lookup(SegmentExceptionAnalysis.Role.INSTANCE).tell(segmentWithTimeSlice); getSelfContext().lookup(NodeCompAnalysis.Role.INSTANCE).tell(segmentWithTimeSlice); @@ -110,8 +110,6 @@ public class SegmentPost extends AbstractPost { } public static class Factory extends AbstractPostProvider { - public static Factory INSTANCE = new Factory(); - @Override public String servletPath() { return "/segments"; diff --git a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/segment/SegmentTopGetWithGlobalTraceId.java b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/segment/SegmentTopGetWithGlobalTraceId.java index d7f0d4985..11623812c 100644 --- a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/segment/SegmentTopGetWithGlobalTraceId.java +++ b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/segment/SegmentTopGetWithGlobalTraceId.java @@ -62,8 +62,6 @@ public class SegmentTopGetWithGlobalTraceId extends AbstractGet { } public static class Factory extends AbstractGetProvider { - public static Factory INSTANCE = new Factory(); - @Override public Role role() { return WorkerRole.INSTANCE; diff --git a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/segment/SegmentTopGetWithTimeSlice.java b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/segment/SegmentTopGetWithTimeSlice.java index 1448fc227..0ff5fd416 100644 --- a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/segment/SegmentTopGetWithTimeSlice.java +++ b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/segment/SegmentTopGetWithTimeSlice.java @@ -86,8 +86,6 @@ public class SegmentTopGetWithTimeSlice extends AbstractGet { } public static class Factory extends AbstractGetProvider { - public static Factory INSTANCE = new Factory(); - @Override public Role role() { return WorkerRole.INSTANCE; diff --git a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/segment/analysis/SegmentAnalysis.java b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/segment/analysis/SegmentAnalysis.java new file mode 100644 index 000000000..4027fb4c9 --- /dev/null +++ b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/segment/analysis/SegmentAnalysis.java @@ -0,0 +1,74 @@ +package com.a.eye.skywalking.collector.worker.segment.analysis; + +import com.a.eye.skywalking.collector.actor.*; +import com.a.eye.skywalking.collector.actor.selector.RollingSelector; +import com.a.eye.skywalking.collector.actor.selector.WorkerSelector; +import com.a.eye.skywalking.collector.worker.RecordAnalysisMember; +import com.a.eye.skywalking.collector.worker.config.WorkerConfig; +import com.a.eye.skywalking.collector.worker.segment.entity.Segment; +import com.a.eye.skywalking.collector.worker.segment.persistence.SegmentSave; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + +/** + * @author pengys5 + */ +public class SegmentAnalysis extends RecordAnalysisMember { + + private Logger logger = LogManager.getFormatterLogger(SegmentAnalysis.class); + + SegmentAnalysis(Role role, ClusterWorkerContext clusterContext, LocalWorkerContext selfContext) { + super(role, clusterContext, selfContext); + } + + @Override + public void preStart() throws ProviderNotFoundException { + getClusterContext().findProvider(SegmentSave.Role.INSTANCE).create(this); + } + + @Override + public void analyse(Object message) throws Exception { + if (message instanceof Segment) { + Segment segment = (Segment) message; + getSelfContext().lookup(SegmentSave.Role.INSTANCE).tell(segment); + } else { + logger.error("unhandled message, message instance must Segment, but is %s", message.getClass().toString()); + } + } + + @Override + protected WorkerRefs aggWorkRefs() { + return null; + } + + public static class Factory extends AbstractLocalAsyncWorkerProvider { + @Override + public Role role() { + return SegmentAnalysis.Role.INSTANCE; + } + + @Override + public SegmentAnalysis workerInstance(ClusterWorkerContext clusterContext) { + return new SegmentAnalysis(role(), clusterContext, new LocalWorkerContext()); + } + + @Override + public int queueSize() { + return WorkerConfig.Queue.Segment.SegmentAnalysis.SIZE; + } + } + + public enum Role implements com.a.eye.skywalking.collector.actor.Role { + INSTANCE; + + @Override + public String roleName() { + return SegmentAnalysis.class.getSimpleName(); + } + + @Override + public WorkerSelector workerSelector() { + return new RollingSelector(); + } + } +} diff --git a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/segment/analysis/SegmentCostAnalysis.java b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/segment/analysis/SegmentCostAnalysis.java new file mode 100644 index 000000000..85c01dd83 --- /dev/null +++ b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/segment/analysis/SegmentCostAnalysis.java @@ -0,0 +1,106 @@ +package com.a.eye.skywalking.collector.worker.segment.analysis; + +import com.a.eye.skywalking.collector.actor.*; +import com.a.eye.skywalking.collector.actor.selector.RollingSelector; +import com.a.eye.skywalking.collector.actor.selector.WorkerSelector; +import com.a.eye.skywalking.collector.worker.RecordAnalysisMember; +import com.a.eye.skywalking.collector.worker.config.WorkerConfig; +import com.a.eye.skywalking.collector.worker.segment.SegmentCostIndex; +import com.a.eye.skywalking.collector.worker.segment.SegmentPost; +import com.a.eye.skywalking.collector.worker.segment.entity.Segment; +import com.a.eye.skywalking.collector.worker.segment.entity.Span; +import com.a.eye.skywalking.collector.worker.segment.persistence.SegmentCostSave; +import com.a.eye.skywalking.collector.worker.tools.CollectionTools; +import com.google.gson.JsonObject; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + +/** + * @author pengys5 + */ +public class SegmentCostAnalysis extends RecordAnalysisMember { + + private Logger logger = LogManager.getFormatterLogger(SegmentCostAnalysis.class); + + SegmentCostAnalysis(Role role, ClusterWorkerContext clusterContext, LocalWorkerContext selfContext) { + super(role, clusterContext, selfContext); + } + + @Override + public void preStart() throws ProviderNotFoundException { + getClusterContext().findProvider(SegmentCostSave.Role.INSTANCE).create(this); + } + + @Override + public void analyse(Object message) throws Exception { + if (message instanceof SegmentPost.SegmentWithTimeSlice) { + SegmentPost.SegmentWithTimeSlice segmentWithTimeSlice = (SegmentPost.SegmentWithTimeSlice) message; + Segment segment = segmentWithTimeSlice.getSegment(); + + if (CollectionTools.isNotEmpty(segment.getSpans())) { + for (Span span : segment.getSpans()) { + if (span.getParentSpanId() == -1) { + JsonObject dataJsonObj = new JsonObject(); + dataJsonObj.addProperty(SegmentCostIndex.SEG_ID, segment.getTraceSegmentId()); + dataJsonObj.addProperty(SegmentCostIndex.START_TIME, span.getStartTime()); + dataJsonObj.addProperty(SegmentCostIndex.END_TIME, span.getEndTime()); + dataJsonObj.addProperty(SegmentCostIndex.OPERATION_NAME, span.getOperationName()); + dataJsonObj.addProperty(SegmentCostIndex.TIME_SLICE, segmentWithTimeSlice.getMinute()); + + long startTime = span.getStartTime(); + long endTime = span.getEndTime(); + long cost = endTime - startTime; + if (cost == 0) { + cost = 1; + } + dataJsonObj.addProperty(SegmentCostIndex.COST, cost); + set(segment.getTraceSegmentId(), dataJsonObj); + } + } + } + } else { + logger.error("unhandled message, message instance must SegmentPost.SegmentWithTimeSlice, but is %s", message.getClass().toString()); + } + } + + @Override + protected WorkerRefs aggWorkRefs() { + try { + return getSelfContext().lookup(SegmentCostSave.Role.INSTANCE); + } catch (WorkerNotFoundException e) { + logger.error("The role of %s worker not found", SegmentCostSave.Role.INSTANCE.roleName()); + } + return null; + } + + public static class Factory extends AbstractLocalAsyncWorkerProvider { + @Override + public Role role() { + return SegmentCostAnalysis.Role.INSTANCE; + } + + @Override + public SegmentCostAnalysis workerInstance(ClusterWorkerContext clusterContext) { + return new SegmentCostAnalysis(role(), clusterContext, new LocalWorkerContext()); + } + + @Override + public int queueSize() { + return WorkerConfig.Queue.Segment.SegmentCostAnalysis.SIZE; + } + } + + public enum Role implements com.a.eye.skywalking.collector.actor.Role { + INSTANCE; + + @Override + public String roleName() { + return SegmentCostAnalysis.class.getSimpleName(); + } + + @Override + public WorkerSelector workerSelector() { + return new RollingSelector(); + } + } +} diff --git a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/segment/analysis/SegmentExceptionAnalysis.java b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/segment/analysis/SegmentExceptionAnalysis.java new file mode 100644 index 000000000..f7df85b47 --- /dev/null +++ b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/segment/analysis/SegmentExceptionAnalysis.java @@ -0,0 +1,111 @@ +package com.a.eye.skywalking.collector.worker.segment.analysis; + +import com.a.eye.skywalking.collector.actor.*; +import com.a.eye.skywalking.collector.actor.selector.RollingSelector; +import com.a.eye.skywalking.collector.actor.selector.WorkerSelector; +import com.a.eye.skywalking.collector.worker.RecordAnalysisMember; +import com.a.eye.skywalking.collector.worker.config.WorkerConfig; +import com.a.eye.skywalking.collector.worker.segment.SegmentExceptionIndex; +import com.a.eye.skywalking.collector.worker.segment.SegmentPost; +import com.a.eye.skywalking.collector.worker.segment.entity.LogData; +import com.a.eye.skywalking.collector.worker.segment.entity.Segment; +import com.a.eye.skywalking.collector.worker.segment.entity.Span; +import com.a.eye.skywalking.collector.worker.segment.entity.tag.Tags; +import com.a.eye.skywalking.collector.worker.segment.persistence.SegmentExceptionSave; +import com.a.eye.skywalking.collector.worker.tools.CollectionTools; +import com.google.gson.JsonArray; +import com.google.gson.JsonObject; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + +import java.util.List; + +/** + * @author pengys5 + */ +public class SegmentExceptionAnalysis extends RecordAnalysisMember { + + private Logger logger = LogManager.getFormatterLogger(SegmentExceptionAnalysis.class); + + SegmentExceptionAnalysis(Role role, ClusterWorkerContext clusterContext, LocalWorkerContext selfContext) { + super(role, clusterContext, selfContext); + } + + @Override + public void preStart() throws ProviderNotFoundException { + getClusterContext().findProvider(SegmentExceptionSave.Role.INSTANCE).create(this); + } + + @Override + public void analyse(Object message) throws Exception { + if (message instanceof SegmentPost.SegmentWithTimeSlice) { + SegmentPost.SegmentWithTimeSlice segmentWithTimeSlice = (SegmentPost.SegmentWithTimeSlice) message; + Segment segment = segmentWithTimeSlice.getSegment(); + + if (CollectionTools.isNotEmpty(segment.getSpans())) { + for (Span span : segment.getSpans()) { + boolean isError = Tags.ERROR.get(span); + + JsonObject dataJsonObj = new JsonObject(); + dataJsonObj.addProperty(SegmentExceptionIndex.IS_ERROR, isError); + dataJsonObj.addProperty(SegmentExceptionIndex.SEG_ID, segment.getTraceSegmentId()); + + JsonArray errorKind = new JsonArray(); + if (isError) { + List logDataList = span.getLogs(); + for (LogData logData : logDataList) { + if (logData.getFields().containsKey("error.kind")) { + errorKind.add(String.valueOf(logData.getFields().get("error.kind"))); + } + } + } + dataJsonObj.add(SegmentExceptionIndex.ERROR_KIND, errorKind); + set(segment.getTraceSegmentId(), dataJsonObj); + } + } + } else { + logger.error("unhandled message, message instance must SegmentPost.SegmentWithTimeSlice, but is %s", message.getClass().toString()); + } + } + + @Override + protected WorkerRefs aggWorkRefs() { + try { + return getSelfContext().lookup(SegmentExceptionSave.Role.INSTANCE); + } catch (WorkerNotFoundException e) { + logger.error("The role of %s worker not found", SegmentExceptionSave.Role.INSTANCE.roleName()); + } + return null; + } + + public static class Factory extends AbstractLocalAsyncWorkerProvider { + @Override + public Role role() { + return SegmentExceptionAnalysis.Role.INSTANCE; + } + + @Override + public SegmentExceptionAnalysis workerInstance(ClusterWorkerContext clusterContext) { + return new SegmentExceptionAnalysis(role(), clusterContext, new LocalWorkerContext()); + } + + @Override + public int queueSize() { + return WorkerConfig.Queue.Segment.SegmentExceptionAnalysis.SIZE; + } + } + + public enum Role implements com.a.eye.skywalking.collector.actor.Role { + INSTANCE; + + @Override + public String roleName() { + return SegmentExceptionAnalysis.class.getSimpleName(); + } + + @Override + public WorkerSelector workerSelector() { + return new RollingSelector(); + } + } +} diff --git a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/segment/entity/TraceSegmentRef.java b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/segment/entity/TraceSegmentRef.java index e710e6edf..3386ec462 100644 --- a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/segment/entity/TraceSegmentRef.java +++ b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/segment/entity/TraceSegmentRef.java @@ -40,7 +40,7 @@ public class TraceSegmentRef extends DeserializeObject { reader.beginObject(); while (reader.hasNext()) { switch (reader.nextName()) { - case "rs": + case "ts": String ts = reader.nextString(); this.traceSegmentId = ts; JsonBuilder.INSTANCE.append(stringBuilder, "ts", ts, first); diff --git a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/segment/persistence/SegmentCostSave.java b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/segment/persistence/SegmentCostSave.java index 33288e5c4..e1f8238c3 100644 --- a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/segment/persistence/SegmentCostSave.java +++ b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/segment/persistence/SegmentCostSave.java @@ -1,29 +1,18 @@ package com.a.eye.skywalking.collector.worker.segment.persistence; -import com.a.eye.skywalking.collector.actor.AbstractLocalAsyncWorkerProvider; +import com.a.eye.skywalking.collector.actor.AbstractLocalSyncWorkerProvider; import com.a.eye.skywalking.collector.actor.ClusterWorkerContext; import com.a.eye.skywalking.collector.actor.LocalWorkerContext; import com.a.eye.skywalking.collector.actor.selector.RollingSelector; import com.a.eye.skywalking.collector.actor.selector.WorkerSelector; import com.a.eye.skywalking.collector.worker.RecordPersistenceMember; -import com.a.eye.skywalking.collector.worker.config.WorkerConfig; import com.a.eye.skywalking.collector.worker.segment.SegmentCostIndex; -import com.a.eye.skywalking.collector.worker.segment.SegmentPost; -import com.a.eye.skywalking.collector.worker.segment.entity.Segment; -import com.a.eye.skywalking.collector.worker.segment.entity.Span; -import com.a.eye.skywalking.collector.worker.storage.RecordData; -import com.a.eye.skywalking.collector.worker.tools.CollectionTools; -import com.google.gson.JsonObject; -import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; +import com.a.eye.skywalking.collector.worker.storage.PersistenceWorkerListener; /** * @author pengys5 */ public class SegmentCostSave extends RecordPersistenceMember { - - private Logger logger = LogManager.getFormatterLogger(SegmentCostSave.class); - @Override public String esIndex() { return SegmentCostIndex.INDEX; @@ -35,61 +24,21 @@ public class SegmentCostSave extends RecordPersistenceMember { } protected SegmentCostSave(com.a.eye.skywalking.collector.actor.Role role, ClusterWorkerContext clusterContext, - LocalWorkerContext selfContext) { + LocalWorkerContext selfContext) { super(role, clusterContext, selfContext); } - @Override - public void analyse(Object message) throws Exception { - if (message instanceof SegmentPost.SegmentWithTimeSlice) { - SegmentPost.SegmentWithTimeSlice segmentWithTimeSlice = (SegmentPost.SegmentWithTimeSlice)message; - Segment segment = segmentWithTimeSlice.getSegment(); - - if (CollectionTools.isNotEmpty(segment.getSpans())) { - for (Span span : segment.getSpans()) { - if (span.getParentSpanId() == -1) { - JsonObject dataJsonObj = new JsonObject(); - dataJsonObj.addProperty(SegmentCostIndex.SEG_ID, segment.getTraceSegmentId()); - dataJsonObj.addProperty(SegmentCostIndex.START_TIME, span.getStartTime()); - dataJsonObj.addProperty(SegmentCostIndex.END_TIME, span.getEndTime()); - dataJsonObj.addProperty(SegmentCostIndex.OPERATION_NAME, span.getOperationName()); - dataJsonObj.addProperty(SegmentCostIndex.TIME_SLICE, segmentWithTimeSlice.getMinute()); - - long startTime = span.getStartTime(); - long endTime = span.getEndTime(); - long cost = endTime - startTime; - if (cost == 0) { - cost = 1; - } - dataJsonObj.addProperty(SegmentCostIndex.COST, cost); - - RecordData recordData = new RecordData(segment.getTraceSegmentId()); - recordData.setRecord(dataJsonObj); - super.analyse(recordData); - } - } - } - } else { - logger.error("unhandled message, message instance must JsonObject, but is %s", message.getClass().toString()); - } - } - - public static class Factory extends AbstractLocalAsyncWorkerProvider { - public static Factory INSTANCE = new Factory(); - + public static class Factory extends AbstractLocalSyncWorkerProvider { @Override public Role role() { return Role.INSTANCE; } - @Override - public int queueSize() { - return WorkerConfig.Queue.Segment.SegmentCostSave.SIZE; - } - @Override public SegmentCostSave workerInstance(ClusterWorkerContext clusterContext) { - return new SegmentCostSave(role(), clusterContext, new LocalWorkerContext()); + SegmentCostSave worker = new SegmentCostSave(role(), clusterContext, new LocalWorkerContext()); + PersistenceWorkerListener.INSTANCE.register(worker); + return worker; } } diff --git a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/segment/persistence/SegmentExceptionSave.java b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/segment/persistence/SegmentExceptionSave.java index f06be6f13..ca8d88700 100644 --- a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/segment/persistence/SegmentExceptionSave.java +++ b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/segment/persistence/SegmentExceptionSave.java @@ -1,35 +1,19 @@ package com.a.eye.skywalking.collector.worker.segment.persistence; -import com.a.eye.skywalking.collector.actor.AbstractLocalAsyncWorkerProvider; +import com.a.eye.skywalking.collector.actor.AbstractLocalSyncWorkerProvider; import com.a.eye.skywalking.collector.actor.ClusterWorkerContext; import com.a.eye.skywalking.collector.actor.LocalWorkerContext; import com.a.eye.skywalking.collector.actor.selector.RollingSelector; import com.a.eye.skywalking.collector.actor.selector.WorkerSelector; import com.a.eye.skywalking.collector.worker.RecordPersistenceMember; -import com.a.eye.skywalking.collector.worker.config.WorkerConfig; import com.a.eye.skywalking.collector.worker.segment.SegmentExceptionIndex; -import com.a.eye.skywalking.collector.worker.segment.SegmentPost; -import com.a.eye.skywalking.collector.worker.segment.entity.LogData; -import com.a.eye.skywalking.collector.worker.segment.entity.Segment; -import com.a.eye.skywalking.collector.worker.segment.entity.Span; -import com.a.eye.skywalking.collector.worker.segment.entity.tag.Tags; import com.a.eye.skywalking.collector.worker.storage.AbstractIndex; -import com.a.eye.skywalking.collector.worker.storage.RecordData; -import com.a.eye.skywalking.collector.worker.tools.CollectionTools; -import com.google.gson.JsonArray; -import com.google.gson.JsonObject; -import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; - -import java.util.List; +import com.a.eye.skywalking.collector.worker.storage.PersistenceWorkerListener; /** * @author pengys5 */ public class SegmentExceptionSave extends RecordPersistenceMember { - - private Logger logger = LogManager.getFormatterLogger(SegmentExceptionSave.class); - @Override public String esIndex() { return SegmentExceptionIndex.INDEX; @@ -41,61 +25,21 @@ public class SegmentExceptionSave extends RecordPersistenceMember { } protected SegmentExceptionSave(com.a.eye.skywalking.collector.actor.Role role, ClusterWorkerContext clusterContext, - LocalWorkerContext selfContext) { + LocalWorkerContext selfContext) { super(role, clusterContext, selfContext); } - @Override - public void analyse(Object message) throws Exception { - if (message instanceof SegmentPost.SegmentWithTimeSlice) { - SegmentPost.SegmentWithTimeSlice segmentWithTimeSlice = (SegmentPost.SegmentWithTimeSlice)message; - Segment segment = segmentWithTimeSlice.getSegment(); - - if (CollectionTools.isNotEmpty(segment.getSpans())) { - for (Span span : segment.getSpans()) { - boolean isError = Tags.ERROR.get(span); - - JsonObject dataJsonObj = new JsonObject(); - dataJsonObj.addProperty(SegmentExceptionIndex.IS_ERROR, isError); - dataJsonObj.addProperty(SegmentExceptionIndex.SEG_ID, segment.getTraceSegmentId()); - - JsonArray errorKind = new JsonArray(); - if (isError) { - List logDataList = span.getLogs(); - for (LogData logData : logDataList) { - if (logData.getFields().containsKey("error.kind")) { - errorKind.add(String.valueOf(logData.getFields().get("error.kind"))); - } - } - } - dataJsonObj.add(SegmentExceptionIndex.ERROR_KIND, errorKind); - - RecordData recordData = new RecordData(segment.getTraceSegmentId()); - recordData.setRecord(dataJsonObj); - super.analyse(recordData); - } - } - } else { - logger.error("unhandled message, message instance must JsonObject, but is %s", message.getClass().toString()); - } - } - - public static class Factory extends AbstractLocalAsyncWorkerProvider { - public static Factory INSTANCE = new Factory(); - + public static class Factory extends AbstractLocalSyncWorkerProvider { @Override public Role role() { return Role.INSTANCE; } - @Override - public int queueSize() { - return WorkerConfig.Queue.Segment.SegmentExceptionSave.SIZE; - } - @Override public SegmentExceptionSave workerInstance(ClusterWorkerContext clusterContext) { - return new SegmentExceptionSave(role(), clusterContext, new LocalWorkerContext()); + SegmentExceptionSave worker = new SegmentExceptionSave(role(), clusterContext, new LocalWorkerContext()); + PersistenceWorkerListener.INSTANCE.register(worker); + return worker; } } diff --git a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/segment/persistence/SegmentExceptionWithSegId.java b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/segment/persistence/SegmentExceptionWithSegId.java index f492f8e63..620100653 100644 --- a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/segment/persistence/SegmentExceptionWithSegId.java +++ b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/segment/persistence/SegmentExceptionWithSegId.java @@ -42,8 +42,6 @@ public class SegmentExceptionWithSegId extends AbstractLocalSyncWorker { } public static class Factory extends AbstractLocalSyncWorkerProvider { - public static Factory INSTANCE = new Factory(); - @Override public Role role() { return WorkerRole.INSTANCE; diff --git a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/segment/persistence/SegmentSave.java b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/segment/persistence/SegmentSave.java index c02c542dd..203e4798e 100644 --- a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/segment/persistence/SegmentSave.java +++ b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/segment/persistence/SegmentSave.java @@ -1,34 +1,29 @@ package com.a.eye.skywalking.collector.worker.segment.persistence; -import com.a.eye.skywalking.collector.actor.AbstractLocalAsyncWorkerProvider; +import com.a.eye.skywalking.collector.actor.AbstractLocalSyncWorkerProvider; import com.a.eye.skywalking.collector.actor.ClusterWorkerContext; import com.a.eye.skywalking.collector.actor.LocalWorkerContext; import com.a.eye.skywalking.collector.actor.selector.RollingSelector; import com.a.eye.skywalking.collector.actor.selector.WorkerSelector; -import com.a.eye.skywalking.collector.worker.RecordPersistenceMember; +import com.a.eye.skywalking.collector.worker.PersistenceMember; import com.a.eye.skywalking.collector.worker.config.CacheSizeConfig; -import com.a.eye.skywalking.collector.worker.config.WorkerConfig; import com.a.eye.skywalking.collector.worker.segment.SegmentIndex; import com.a.eye.skywalking.collector.worker.segment.entity.Segment; import com.a.eye.skywalking.collector.worker.storage.AbstractIndex; import com.a.eye.skywalking.collector.worker.storage.EsClient; -import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; -import org.elasticsearch.action.bulk.BulkRequestBuilder; -import org.elasticsearch.action.bulk.BulkResponse; -import org.elasticsearch.client.Client; - -import java.util.LinkedHashMap; +import com.a.eye.skywalking.collector.worker.storage.PersistenceWorkerListener; +import com.a.eye.skywalking.collector.worker.storage.SegmentData; +import com.a.eye.skywalking.collector.worker.storage.SegmentPersistenceData; +import java.util.LinkedList; +import java.util.List; import java.util.Map; +import org.elasticsearch.action.index.IndexRequestBuilder; +import org.elasticsearch.client.Client; /** * @author pengys5 */ -public class SegmentSave extends RecordPersistenceMember { - - private Logger logger = LogManager.getFormatterLogger(SegmentSave.class); - - private Map persistenceData = new LinkedHashMap<>(); +public class SegmentSave extends PersistenceMember { @Override public String esIndex() { @@ -46,56 +41,60 @@ public class SegmentSave extends RecordPersistenceMember { } @Override - public void analyse(Object message) throws Exception { - if (message instanceof Segment) { - Segment segment = (Segment) message; - persistenceData.put(segment.getTraceSegmentId(), segment.getJsonStr()); - if (persistenceData.size() >= CacheSizeConfig.Cache.Persistence.SIZE) { - persistence(); - } - } else { - logger.error("unhandled message, message instance must JsonObject, but is %s", message.getClass().toString()); - } + public SegmentPersistenceData initializeData() { + return new SegmentPersistenceData(); } @Override - protected void persistence() { - boolean success = saveToEs(); - if (success) { - persistenceData.clear(); + final public void analyse(Object message) throws Exception { + if (message instanceof Segment) { + Segment segment = (Segment) message; + SegmentPersistenceData data = getPersistenceData(); + data.hold(); + data.getOrCreate(segment.getTraceSegmentId()).setSegmentStr(segment.getJsonStr()); + if (data.size() >= CacheSizeConfig.Cache.Persistence.SIZE) { + persistence(data.asMap()); + } + data.release(); + } else { + logger().error("unhandled message, message instance must Segment, but is %s", message.getClass().toString()); } } - private boolean saveToEs() { + private void persistence(Map dataMap) { + List builderList = new LinkedList<>(); Client client = EsClient.INSTANCE.getClient(); - BulkRequestBuilder bulkRequest = client.prepareBulk(); - logger.debug("persistenceData SIZE: %s", persistenceData.size()); - - persistenceData.forEach((key, value) -> bulkRequest.add(client.prepareIndex(esIndex(), esType(), key).setSource(value))); - - BulkResponse bulkResponse = bulkRequest.execute().actionGet(); - if (bulkResponse.hasFailures()) { - logger.error(bulkResponse.buildFailureMessage()); - } - return !bulkResponse.hasFailures(); + dataMap.forEach((key, value) -> { + IndexRequestBuilder builder = client.prepareIndex(esIndex(), esType(), key).setSource(value.getSegmentStr()); + builderList.add(builder); + }); + EsClient.INSTANCE.bulk(builderList); + dataMap.clear(); } - public static class Factory extends AbstractLocalAsyncWorkerProvider { - public static Factory INSTANCE = new Factory(); + @Override + final protected void prepareIndex(List builderList) { + Map lastData = getPersistenceData().getLast().asMap(); + Client client = EsClient.INSTANCE.getClient(); + lastData.forEach((key, value) -> { + IndexRequestBuilder builder = client.prepareIndex(esIndex(), esType(), key).setSource(value.getSegmentStr()); + builderList.add(builder); + }); + lastData.clear(); + } + + public static class Factory extends AbstractLocalSyncWorkerProvider { @Override public Role role() { return Role.INSTANCE; } - @Override - public int queueSize() { - return WorkerConfig.Queue.Segment.SegmentSave.SIZE; - } - @Override public SegmentSave workerInstance(ClusterWorkerContext clusterContext) { - return new SegmentSave(role(), clusterContext, new LocalWorkerContext()); + SegmentSave worker = new SegmentSave(role(), clusterContext, new LocalWorkerContext()); + PersistenceWorkerListener.INSTANCE.register(worker); + return worker; } } diff --git a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/segment/persistence/SegmentTopSearchWithGlobalTraceId.java b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/segment/persistence/SegmentTopSearchWithGlobalTraceId.java index e7daa8e78..3dc324deb 100644 --- a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/segment/persistence/SegmentTopSearchWithGlobalTraceId.java +++ b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/segment/persistence/SegmentTopSearchWithGlobalTraceId.java @@ -11,7 +11,7 @@ import com.a.eye.skywalking.collector.worker.segment.entity.GlobalTraceId; import com.a.eye.skywalking.collector.worker.segment.entity.Segment; import com.a.eye.skywalking.collector.worker.segment.entity.SegmentDeserialize; import com.a.eye.skywalking.collector.worker.storage.EsClient; -import com.a.eye.skywalking.collector.worker.storage.MergeData; +import com.a.eye.skywalking.collector.worker.storage.JoinAndSplitData; import com.a.eye.skywalking.collector.worker.tools.CollectionTools; import com.google.gson.Gson; import com.google.gson.JsonArray; @@ -55,7 +55,7 @@ public class SegmentTopSearchWithGlobalTraceId extends AbstractLocalSyncWorker { if (globalTraceObj != null && globalTraceObj.has(GlobalTraceIndex.SUB_SEG_IDS)) { String subSegIdsStr = globalTraceObj.get(GlobalTraceIndex.SUB_SEG_IDS).getAsString(); - String[] subSegIds = subSegIdsStr.split(MergeData.SPLIT); + String[] subSegIds = subSegIdsStr.split(JoinAndSplitData.SPLIT); topSegPaging.addProperty("recordsTotal", subSegIds.length); @@ -138,8 +138,6 @@ public class SegmentTopSearchWithGlobalTraceId extends AbstractLocalSyncWorker { } public static class Factory extends AbstractLocalSyncWorkerProvider { - public static Factory INSTANCE = new Factory(); - @Override public Role role() { return WorkerRole.INSTANCE; diff --git a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/segment/persistence/SegmentTopSearchWithTimeSlice.java b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/segment/persistence/SegmentTopSearchWithTimeSlice.java index c80cd54d2..14eb9fcf4 100644 --- a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/segment/persistence/SegmentTopSearchWithTimeSlice.java +++ b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/segment/persistence/SegmentTopSearchWithTimeSlice.java @@ -168,8 +168,6 @@ public class SegmentTopSearchWithTimeSlice extends AbstractLocalSyncWorker { } public static class Factory extends AbstractLocalSyncWorkerProvider { - public static Factory INSTANCE = new Factory(); - @Override public Role role() { return WorkerRole.INSTANCE; diff --git a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/span/SpanGetWithId.java b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/span/SpanGetWithId.java index e7e174d85..04001c45b 100644 --- a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/span/SpanGetWithId.java +++ b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/span/SpanGetWithId.java @@ -48,8 +48,6 @@ public class SpanGetWithId extends AbstractGet { } public static class Factory extends AbstractGetProvider { - public static Factory INSTANCE = new Factory(); - @Override public Role role() { return WorkerRole.INSTANCE; diff --git a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/span/persistence/SpanSearchWithId.java b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/span/persistence/SpanSearchWithId.java index 151f7ca3c..fe753148e 100644 --- a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/span/persistence/SpanSearchWithId.java +++ b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/span/persistence/SpanSearchWithId.java @@ -68,8 +68,6 @@ public class SpanSearchWithId extends AbstractLocalSyncWorker { } public static class Factory extends AbstractLocalSyncWorkerProvider { - public static Factory INSTANCE = new Factory(); - @Override public Role role() { return WorkerRole.INSTANCE; diff --git a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/storage/AbstractIndex.java b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/storage/AbstractIndex.java index b949e1849..130e1789a 100644 --- a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/storage/AbstractIndex.java +++ b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/storage/AbstractIndex.java @@ -30,12 +30,15 @@ public abstract class AbstractIndex { final XContentBuilder createSettingBuilder() throws IOException { return XContentFactory.jsonBuilder() - .startObject() - .field("index.number_of_shards", EsConfig.Es.Index.Shards.NUMBER) - .field("index.number_of_replicas", EsConfig.Es.Index.Replicas.NUMBER) - .endObject(); + .startObject() + .field("index.number_of_shards", EsConfig.Es.Index.Shards.NUMBER) + .field("index.number_of_replicas", EsConfig.Es.Index.Replicas.NUMBER) + .field("index.refresh_interval", String.valueOf(refreshInterval()) + "s") + .endObject(); } + public abstract int refreshInterval(); + public abstract boolean isRecord(); public abstract XContentBuilder createMappingBuilder() throws IOException; diff --git a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/storage/Data.java b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/storage/Data.java new file mode 100644 index 000000000..199221d01 --- /dev/null +++ b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/storage/Data.java @@ -0,0 +1,12 @@ +package com.a.eye.skywalking.collector.worker.storage; + +import java.util.Map; + +/** + * @author pengys5 + */ +public interface Data { + String getId(); + + void merge(Map dbData); +} diff --git a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/storage/EsClient.java b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/storage/EsClient.java index a50ed93cb..784ddd0f4 100644 --- a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/storage/EsClient.java +++ b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/storage/EsClient.java @@ -5,6 +5,9 @@ import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.elasticsearch.action.admin.indices.refresh.RefreshRequest; import org.elasticsearch.action.admin.indices.refresh.RefreshResponse; +import org.elasticsearch.action.bulk.BulkRequestBuilder; +import org.elasticsearch.action.bulk.BulkResponse; +import org.elasticsearch.action.index.IndexRequestBuilder; import org.elasticsearch.client.Client; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.transport.InetSocketTransportAddress; @@ -77,4 +80,21 @@ public enum EsClient { this.port = port; } } + + public void bulk(List dataList) { + Client client = EsClient.INSTANCE.getClient(); + BulkRequestBuilder bulkRequest = client.prepareBulk(); + + logger.info("bulk data size: %s", dataList.size()); + if (dataList.size() > 0) { + for (IndexRequestBuilder builder : dataList) { + bulkRequest.add(builder); + } + + BulkResponse bulkResponse = bulkRequest.execute().actionGet(); + if (bulkResponse.hasFailures()) { + logger.error(bulkResponse.buildFailureMessage()); + } + } + } } diff --git a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/storage/FlushAndSwitch.java b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/storage/FlushAndSwitch.java new file mode 100644 index 000000000..7b24bb674 --- /dev/null +++ b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/storage/FlushAndSwitch.java @@ -0,0 +1,7 @@ +package com.a.eye.skywalking.collector.worker.storage; + +/** + * @author pengys5 + */ +public class FlushAndSwitch { +} diff --git a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/storage/JoinAndSplitAnalysisData.java b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/storage/JoinAndSplitAnalysisData.java new file mode 100644 index 000000000..9c4a96674 --- /dev/null +++ b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/storage/JoinAndSplitAnalysisData.java @@ -0,0 +1,23 @@ +package com.a.eye.skywalking.collector.worker.storage; + +import java.util.LinkedHashMap; +import java.util.Map; + +/** + * @author pengys5 + */ +public class JoinAndSplitAnalysisData { + + private WindowData windowData = new WindowData(new LinkedHashMap()); + + public JoinAndSplitData getOrCreate(String id) { + if (!windowData.containsKey(id)) { + windowData.put(id, new JoinAndSplitData(id)); + } + return windowData.get(id); + } + + public Map asMap() { + return windowData.asMap(); + } +} diff --git a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/storage/JoinAndSplitData.java b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/storage/JoinAndSplitData.java new file mode 100644 index 000000000..c78db6431 --- /dev/null +++ b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/storage/JoinAndSplitData.java @@ -0,0 +1,70 @@ +package com.a.eye.skywalking.collector.worker.storage; + +import com.a.eye.skywalking.collector.actor.selector.AbstractHashMessage; + +import java.util.*; + +/** + * @author pengys5 + */ +public class JoinAndSplitData extends AbstractHashMessage implements Data { + + public static final String SPLIT = ","; + + private String id; + + private Map> data = new HashMap<>(); + + public JoinAndSplitData(String key) { + super(key); + this.id = key; + } + + public String getId() { + return id; + } + + public void set(String attributeName, String value) { + if (!data.containsKey(attributeName)) { + data.put(attributeName, new HashSet<>()); + } + data.get(attributeName).add(value); + } + + public void merge(JoinAndSplitData source) { + source.data.forEach((attributeName, valueSet) -> valueSet.forEach(value -> set(attributeName, value))); + } + + public void merge(Map source) { + source.forEach((column, dbValue) -> { + if (!AbstractIndex.TIME_SLICE.equals(column) && !AbstractIndex.AGG_COLUMN.equals(column)) { + String[] dbValues = String.valueOf(dbValue).split(SPLIT); + for (String value : dbValues) { + set(column, value); + } + } + }); + } + + public Map asMap() { + Map source = new HashMap<>(); + data.forEach((attributeName, valueSet) -> { + Iterator iterator = valueSet.iterator(); + StringBuilder builder = new StringBuilder(); + + int i = 0; + + while (iterator.hasNext()) { + if (i == 0) { + builder.append(iterator.next()); + } else { + builder.append(SPLIT).append(iterator.next()); + } + i++; + } + source.put(attributeName, builder.toString()); + }); + + return source; + } +} \ No newline at end of file diff --git a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/storage/JoinAndSplitPersistenceData.java b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/storage/JoinAndSplitPersistenceData.java new file mode 100644 index 000000000..00f8082d4 --- /dev/null +++ b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/storage/JoinAndSplitPersistenceData.java @@ -0,0 +1,25 @@ +package com.a.eye.skywalking.collector.worker.storage; + +/** + * @author pengys5 + */ +public class JoinAndSplitPersistenceData extends Window implements PersistenceData { + + private WindowData lockedWindowData; + + public JoinAndSplitData getOrCreate(String id) { + if (!lockedWindowData.containsKey(id)) { + lockedWindowData.put(id, new JoinAndSplitData(id)); + } + return lockedWindowData.get(id); + } + + public void hold() { + lockedWindowData = getCurrentAndHold(); + } + + public void release() { + lockedWindowData.release(); + lockedWindowData = null; + } +} diff --git a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/storage/MergeData.java b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/storage/MergeData.java deleted file mode 100644 index 375261696..000000000 --- a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/storage/MergeData.java +++ /dev/null @@ -1,81 +0,0 @@ -package com.a.eye.skywalking.collector.worker.storage; - -import com.a.eye.skywalking.collector.actor.selector.AbstractHashMessage; -import java.util.HashMap; -import java.util.HashSet; -import java.util.Iterator; -import java.util.Map; -import java.util.Set; - -/** - * @author pengys5 - */ -public class MergeData extends AbstractHashMessage { - public static final String SPLIT = ","; - - private String id; - - private Map> mergeData = new HashMap<>(); - - public MergeData(String key) { - super(key); - this.id = key; - } - - public String getId() { - return id; - } - - public void setMergeData(String column, String value) { - if (!mergeData.containsKey(column)) { - mergeData.put(column, new HashSet<>()); - } - mergeData.get(column).add(value); - } - - public void merge(MergeData data) { - for (Map.Entry> entry : data.mergeData.entrySet()) { - String column = entry.getKey(); - Set value = entry.getValue(); - Iterator iterator = value.iterator(); - while (iterator.hasNext()) { - setMergeData(column, iterator.next()); - } - } - } - - public void merge(Map dbData) { - for (Map.Entry entry : dbData.entrySet()) { - if (!AbstractIndex.TIME_SLICE.equals(entry.getKey()) - && !AbstractIndex.AGG_COLUMN.equals(entry.getKey())) { - String dbValue = String.valueOf(entry.getValue()); - String[] dbValues = dbValue.split(SPLIT); - for (String value : dbValues) { - setMergeData(entry.getKey(), value); - } - } - } - } - - public Map toMap() { - Map source = new HashMap<>(); - for (Map.Entry> entry : mergeData.entrySet()) { - String column = entry.getKey(); - Iterator iterator = entry.getValue().iterator(); - StringBuffer value = new StringBuffer(); - - int i = 0; - while (iterator.hasNext()) { - if (i == 0) { - value.append(iterator.next()); - } else { - value.append(SPLIT).append(iterator.next()); - } - i++; - } - source.put(column, value.toString()); - } - - return source; - } -} diff --git a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/storage/MergePersistenceData.java b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/storage/MergePersistenceData.java deleted file mode 100644 index 4a5ccec67..000000000 --- a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/storage/MergePersistenceData.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.a.eye.skywalking.collector.worker.storage; - -import java.util.HashMap; -import java.util.Iterator; -import java.util.Map; -import java.util.Spliterator; -import java.util.function.Consumer; - -/** - * @author pengys5 - */ -public class MergePersistenceData implements Iterable { - - private Map persistenceData = new HashMap<>(); - - public MergeData getElseCreate(String id) { - if (!persistenceData.containsKey(id)) { - persistenceData.put(id, new MergeData(id)); - } - return persistenceData.get(id); - } - - public int size() { - return persistenceData.size(); - } - - public void clear() { - persistenceData.clear(); - } - - public MergeData pushOne() { - MergeData one = persistenceData.entrySet().iterator().next().getValue(); - persistenceData.remove(one.getId()); - return one; - } - - @Override - public void forEach(Consumer action) { - throw new UnsupportedOperationException("forEach"); - } - - @Override - public Spliterator spliterator() { - throw new UnsupportedOperationException("spliterator"); - } - - @Override - public Iterator> iterator() { - return persistenceData.entrySet().iterator(); - } -} diff --git a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/storage/MetricAnalysisData.java b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/storage/MetricAnalysisData.java new file mode 100644 index 000000000..394302f75 --- /dev/null +++ b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/storage/MetricAnalysisData.java @@ -0,0 +1,23 @@ +package com.a.eye.skywalking.collector.worker.storage; + +import java.util.LinkedHashMap; +import java.util.Map; + +/** + * @author pengys5 + */ +public class MetricAnalysisData { + + private WindowData windowData = new WindowData(new LinkedHashMap()); + + public MetricData getOrCreate(String id) { + if (!windowData.containsKey(id)) { + windowData.put(id, new MetricData(id)); + } + return windowData.get(id); + } + + public Map asMap() { + return windowData.asMap(); + } +} diff --git a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/storage/MetricData.java b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/storage/MetricData.java index d10cc5143..ea9a29100 100644 --- a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/storage/MetricData.java +++ b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/storage/MetricData.java @@ -3,70 +3,69 @@ package com.a.eye.skywalking.collector.worker.storage; import com.a.eye.skywalking.collector.actor.selector.AbstractHashMessage; import com.a.eye.skywalking.collector.worker.Const; -import java.util.HashMap; +import java.util.LinkedHashMap; import java.util.Map; /** * @author pengys5 */ -public class MetricData extends AbstractHashMessage { +public class MetricData extends AbstractHashMessage implements Data { private String id; - private Map value; + private Map data; public MetricData(String id) { super(id); this.id = id; - value = new HashMap<>(); + data = new LinkedHashMap<>(); String[] ids = id.split(Const.IDS_SPLIT); String slice = ids[0]; - String aggId = ""; + StringBuilder aggId = new StringBuilder(); for (int i = 1; i < ids.length; i++) { - if (i == 1) { - aggId = ids[i]; - } else { - aggId = aggId + Const.ID_SPLIT + ids[i]; - } + if (i == 1) aggId = new StringBuilder(ids[i]); + else aggId.append(Const.ID_SPLIT).append(ids[i]); } - value.put(AbstractIndex.TIME_SLICE, Long.valueOf(slice)); - value.put(AbstractIndex.AGG_COLUMN, aggId); + data.put(AbstractIndex.TIME_SLICE, Long.valueOf(slice)); + data.put(AbstractIndex.AGG_COLUMN, aggId.toString()); } - public void setMetric(String column, Long value) { + public void set(String metricName, Long value) { long valueAdd = value; - if (this.value.containsKey(column) && !AbstractIndex.TIME_SLICE.equals(column) - && !AbstractIndex.AGG_COLUMN.equals(column)) { - valueAdd += (Long)this.value.get(column); + if (this.data.containsKey(metricName) && !AbstractIndex.TIME_SLICE.equals(metricName) + && !AbstractIndex.AGG_COLUMN.equals(metricName)) { + valueAdd += (Long) this.data.get(metricName); } - this.value.put(column, valueAdd); + this.data.put(metricName, valueAdd); } - public void merge(MetricData metricData) { - for (Map.Entry entry : metricData.value.entrySet()) { + public void merge(MetricData source) { + for (Map.Entry entry : source.data.entrySet()) { if (!AbstractIndex.TIME_SLICE.equals(entry.getKey()) - && !AbstractIndex.AGG_COLUMN.equals(entry.getKey())) { - setMetric(entry.getKey(), (Long)entry.getValue()); + && !AbstractIndex.AGG_COLUMN.equals(entry.getKey())) { + set(entry.getKey(), (Long) entry.getValue()); } } } - public void merge(Map dbData) { - for (Map.Entry entry : dbData.entrySet()) { + @Override + public void merge(Map source) { + for (Map.Entry entry : source.entrySet()) { if (!AbstractIndex.TIME_SLICE.equals(entry.getKey()) - && !AbstractIndex.AGG_COLUMN.equals(entry.getKey())) { - long dbValue = ((Number)entry.getValue()).longValue(); - setMetric(entry.getKey(), dbValue); + && !AbstractIndex.AGG_COLUMN.equals(entry.getKey())) { + long dbValue = ((Number) entry.getValue()).longValue(); + set(entry.getKey(), dbValue); } } } - public Map toMap() { - return value; - } - + @Override public String getId() { return id; } + + public Map asMap() { + return data; + } } diff --git a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/storage/MetricPersistenceData.java b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/storage/MetricPersistenceData.java index 23aa83044..e8ed10b86 100644 --- a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/storage/MetricPersistenceData.java +++ b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/storage/MetricPersistenceData.java @@ -1,45 +1,25 @@ package com.a.eye.skywalking.collector.worker.storage; -import java.util.HashMap; -import java.util.Iterator; -import java.util.Map; -import java.util.Spliterator; - /** * @author pengys5 */ -public class MetricPersistenceData implements Iterable { +public class MetricPersistenceData extends Window implements PersistenceData { - private Map persistenceData = new HashMap<>(); + private WindowData lockedWindowData; - public MetricData getElseCreate(String id) { - if (!persistenceData.containsKey(id)) { - persistenceData.put(id, new MetricData(id)); + public MetricData getOrCreate(String id) { + if (!lockedWindowData.containsKey(id)) { + lockedWindowData.put(id, new MetricData(id)); } - return persistenceData.get(id); + return lockedWindowData.get(id); } - public int size() { - return persistenceData.size(); + public void hold() { + lockedWindowData = getCurrentAndHold(); } - public void clear() { - persistenceData.clear(); - } - - public MetricData pushOne() { - MetricData one = persistenceData.entrySet().iterator().next().getValue(); - persistenceData.remove(one.getId()); - return one; - } - - @Override - public Spliterator spliterator() { - throw new UnsupportedOperationException("spliterator"); - } - - @Override - public Iterator> iterator() { - return persistenceData.entrySet().iterator(); + public void release() { + lockedWindowData.release(); + lockedWindowData = null; } } diff --git a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/storage/PersistenceData.java b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/storage/PersistenceData.java new file mode 100644 index 000000000..f73f83659 --- /dev/null +++ b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/storage/PersistenceData.java @@ -0,0 +1,13 @@ +package com.a.eye.skywalking.collector.worker.storage; + +/** + * @author pengys5 + */ +public interface PersistenceData { + + T getOrCreate(String id); + + void release(); + + void hold(); +} diff --git a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/storage/PersistenceTimer.java b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/storage/PersistenceTimer.java new file mode 100644 index 000000000..a3c007211 --- /dev/null +++ b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/storage/PersistenceTimer.java @@ -0,0 +1,54 @@ +package com.a.eye.skywalking.collector.worker.storage; + +import com.a.eye.skywalking.collector.actor.AbstractLocalSyncWorker; +import com.a.eye.skywalking.collector.worker.config.EsConfig; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; +import org.apache.logging.log4j.message.StringFormattedMessage; +import org.elasticsearch.action.index.IndexRequestBuilder; + +import java.util.LinkedList; +import java.util.List; + +/** + * @author pengys5 + */ +public enum PersistenceTimer { + INSTANCE; + + private Logger logger = LogManager.getFormatterLogger(PersistenceTimer.class); + + public void boot() { + logger.info("persistence timer start"); + final long timeInterval = EsConfig.Es.Persistence.Timer.VALUE * 1000; + + Runnable runnable = () -> { + while (true) { + try { + extractDataAndSave(); + Thread.sleep(timeInterval); + } catch (Throwable e) { + logger.error(e); + } + } + }; + Thread persistenceThread = new Thread(runnable); + persistenceThread.setName("timerPersistence"); + persistenceThread.start(); + } + + private void extractDataAndSave() { + List dataList = new LinkedList<>(); + + List workers = PersistenceWorkerListener.INSTANCE.getWorkers(); + for (AbstractLocalSyncWorker worker : workers) { + logger.info("worker role name: %s", worker.getRole().roleName()); + try { + worker.allocateJob(new FlushAndSwitch(), dataList); + } catch (Exception e) { + logger.error(new StringFormattedMessage("flush persistence worker data error, worker role name: %s", worker.getRole().roleName()), e); + } + } + EsClient.INSTANCE.bulk(dataList); + } +} diff --git a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/storage/PersistenceWorkerListener.java b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/storage/PersistenceWorkerListener.java new file mode 100644 index 000000000..e68642801 --- /dev/null +++ b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/storage/PersistenceWorkerListener.java @@ -0,0 +1,26 @@ +package com.a.eye.skywalking.collector.worker.storage; + +import com.a.eye.skywalking.collector.actor.AbstractLocalSyncWorker; +import java.util.LinkedList; +import java.util.List; + +/** + * @author pengys5 + */ +public enum PersistenceWorkerListener { + INSTANCE; + + private List workers = new LinkedList<>(); + + public void register(AbstractLocalSyncWorker worker) { + workers.add(worker); + } + + public List getWorkers() { + return workers; + } + + public void reset() { + workers.clear(); + } +} diff --git a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/storage/RecordAnalysisData.java b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/storage/RecordAnalysisData.java new file mode 100644 index 000000000..aa96482c7 --- /dev/null +++ b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/storage/RecordAnalysisData.java @@ -0,0 +1,23 @@ +package com.a.eye.skywalking.collector.worker.storage; + +import java.util.LinkedHashMap; +import java.util.Map; + +/** + * @author pengys5 + */ +public class RecordAnalysisData { + + private WindowData windowData = new WindowData(new LinkedHashMap()); + + public RecordData getOrCreate(String id) { + if (!windowData.containsKey(id)) { + windowData.put(id, new RecordData(id)); + } + return windowData.get(id); + } + + public Map asMap() { + return windowData.asMap(); + } +} diff --git a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/storage/RecordData.java b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/storage/RecordData.java index f4b8f2261..f3263585a 100644 --- a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/storage/RecordData.java +++ b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/storage/RecordData.java @@ -4,39 +4,45 @@ import com.a.eye.skywalking.collector.actor.selector.AbstractHashMessage; import com.a.eye.skywalking.collector.worker.Const; import com.google.gson.JsonObject; +import java.util.Map; + /** * @author pengys5 */ -public class RecordData extends AbstractHashMessage { +public class RecordData extends AbstractHashMessage implements Data { private String id; private String aggId; - private JsonObject record; + private JsonObject data; - public RecordData(String key) { - super(key); - this.id = key; - String[] ids = id.split(Const.IDS_SPLIT); + public RecordData(String id) { + super(id); + this.id = id; + String[] ids = this.id.split(Const.IDS_SPLIT); for (int i = 1; i < ids.length; i++) { if (i == 1) { this.aggId = ids[i]; } else { - this.aggId = this.aggId + Const.ID_SPLIT + ids[i]; + this.aggId += Const.ID_SPLIT + ids[i]; } } - record = new JsonObject(); + data = new JsonObject(); } public String getId() { return id; } - public JsonObject getRecord() { - record.addProperty(AbstractIndex.AGG_COLUMN, this.aggId); - return record; + public JsonObject get() { + data.addProperty(AbstractIndex.AGG_COLUMN, this.aggId); + return data; } - public void setRecord(JsonObject record) { - this.record = record; + public void set(JsonObject record) { + this.data = record; + } + + @Override + public void merge(Map source) { } } diff --git a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/storage/RecordPersistenceData.java b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/storage/RecordPersistenceData.java index cfcf54505..9d4890806 100644 --- a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/storage/RecordPersistenceData.java +++ b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/storage/RecordPersistenceData.java @@ -1,55 +1,25 @@ package com.a.eye.skywalking.collector.worker.storage; -import java.util.HashMap; -import java.util.Iterator; -import java.util.Map; -import java.util.Spliterator; -import java.util.function.Consumer; - /** * @author pengys5 */ -public class RecordPersistenceData implements Iterable { +public class RecordPersistenceData extends Window implements PersistenceData { - private Map persistenceData = new HashMap(); + private WindowData lockedWindowData; - public RecordData getElseCreate(String id) { - if (!persistenceData.containsKey(id)) { - persistenceData.put(id, new RecordData(id)); + public RecordData getOrCreate(String id) { + if (!lockedWindowData.containsKey(id)) { + lockedWindowData.put(id, new RecordData(id)); } - return persistenceData.get(id); + return lockedWindowData.get(id); } - public int size() { - return persistenceData.size(); + public void hold() { + lockedWindowData = getCurrentAndHold(); } - public void clear() { - persistenceData.clear(); - } - - public boolean hasNext() { - return persistenceData.entrySet().iterator().hasNext(); - } - - public RecordData pushOne() { - RecordData one = persistenceData.entrySet().iterator().next().getValue(); - persistenceData.remove(one.getId()); - return one; - } - - @Override - public void forEach(Consumer action) { - throw new UnsupportedOperationException("forEach"); - } - - @Override - public Spliterator spliterator() { - throw new UnsupportedOperationException("spliterator"); - } - - @Override - public Iterator> iterator() { - return persistenceData.entrySet().iterator(); + public void release() { + lockedWindowData.release(); + lockedWindowData = null; } } diff --git a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/storage/SegmentData.java b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/storage/SegmentData.java new file mode 100644 index 000000000..79dfb6153 --- /dev/null +++ b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/storage/SegmentData.java @@ -0,0 +1,32 @@ +package com.a.eye.skywalking.collector.worker.storage; + +import java.util.Map; + +/** + * @author pengys5 + */ +public class SegmentData implements Data { + + private String id; + private String segmentStr; + + public SegmentData(String id) { + this.id = id; + } + + public String getId() { + return id; + } + + @Override + public void merge(Map source) { + } + + public String getSegmentStr() { + return segmentStr; + } + + public void setSegmentStr(String segmentStr) { + this.segmentStr = segmentStr; + } +} diff --git a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/storage/SegmentPersistenceData.java b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/storage/SegmentPersistenceData.java new file mode 100644 index 000000000..2934a48e5 --- /dev/null +++ b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/storage/SegmentPersistenceData.java @@ -0,0 +1,35 @@ +package com.a.eye.skywalking.collector.worker.storage; + +import java.util.Map; + +/** + * @author pengys5 + */ +public class SegmentPersistenceData extends Window implements PersistenceData { + + private WindowData lockedWindowData; + + public SegmentData getOrCreate(String id) { + if (!lockedWindowData.containsKey(id)) { + lockedWindowData.put(id, new SegmentData(id)); + } + return lockedWindowData.get(id); + } + + public void hold() { + lockedWindowData = getCurrentAndHold(); + } + + public void release() { + lockedWindowData.release(); + lockedWindowData = null; + } + + public int size() { + return lockedWindowData.size(); + } + + public Map asMap() { + return lockedWindowData.asMap(); + } +} diff --git a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/storage/Window.java b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/storage/Window.java new file mode 100644 index 000000000..615dbc138 --- /dev/null +++ b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/storage/Window.java @@ -0,0 +1,46 @@ +package com.a.eye.skywalking.collector.worker.storage; + +import java.util.HashMap; + +/** + * @author pengys5 + */ +public abstract class Window { + + private WindowData pointer; + + private WindowData windowDataA; + private WindowData windowDataB; + + public Window() { + windowDataA = new WindowData(new HashMap<>()); + windowDataB = new WindowData(new HashMap<>()); + pointer = windowDataA; + } + + public void switchPointer() { + if (pointer == windowDataA) { + pointer = windowDataB; + } else { + pointer = windowDataA; + } + } + + protected WindowData getCurrentAndHold() { + if (pointer == windowDataA) { + windowDataA.hold(); + return windowDataA; + } else { + windowDataB.hold(); + return windowDataB; + } + } + + public WindowData getLast() { + if (pointer == windowDataA) { + return windowDataB; + } else { + return windowDataA; + } + } +} diff --git a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/storage/WindowData.java b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/storage/WindowData.java new file mode 100644 index 000000000..f630654be --- /dev/null +++ b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/storage/WindowData.java @@ -0,0 +1,52 @@ +package com.a.eye.skywalking.collector.worker.storage; + +import java.util.Map; + +/** + * @author pengys5 + */ +public class WindowData { + private Map data; + private volatile boolean isHold; + + WindowData(Map data) { + this.data = data; + this.isHold = false; + } + + public void release() { + isHold = false; + } + + public void hold() { + isHold = true; + } + + public boolean isHolding() { + return isHold; + } + + public boolean containsKey(String key) { + return data.containsKey(key); + } + + public void put(String key, T value) { + data.put(key, value); + } + + public T get(String key) { + return data.get(key); + } + + public int size() { + return data.size(); + } + + public void clear() { + data.clear(); + } + + public Map asMap() { + return data; + } +} diff --git a/skywalking-collector/skywalking-collector-worker/src/main/resources/META-INF/services/com.a.eye.skywalking.collector.actor.AbstractLocalWorkerProvider b/skywalking-collector/skywalking-collector-worker/src/main/resources/META-INF/services/com.a.eye.skywalking.collector.actor.AbstractLocalWorkerProvider index 30b0397fe..b6e1772ed 100644 --- a/skywalking-collector/skywalking-collector-worker/src/main/resources/META-INF/services/com.a.eye.skywalking.collector.actor.AbstractLocalWorkerProvider +++ b/skywalking-collector/skywalking-collector-worker/src/main/resources/META-INF/services/com.a.eye.skywalking.collector.actor.AbstractLocalWorkerProvider @@ -1,3 +1,7 @@ +com.a.eye.skywalking.collector.worker.segment.analysis.SegmentAnalysis$Factory +com.a.eye.skywalking.collector.worker.segment.analysis.SegmentCostAnalysis$Factory +com.a.eye.skywalking.collector.worker.segment.analysis.SegmentExceptionAnalysis$Factory + com.a.eye.skywalking.collector.worker.segment.persistence.SegmentSave$Factory com.a.eye.skywalking.collector.worker.segment.persistence.SegmentCostSave$Factory com.a.eye.skywalking.collector.worker.segment.persistence.SegmentExceptionSave$Factory diff --git a/skywalking-collector/skywalking-collector-worker/src/main/resources/collector.config b/skywalking-collector/skywalking-collector-worker/src/main/resources/collector.config index 54ebbc1a0..51586efaa 100644 --- a/skywalking-collector/skywalking-collector-worker/src/main/resources/collector.config +++ b/skywalking-collector/skywalking-collector-worker/src/main/resources/collector.config @@ -27,7 +27,7 @@ es.cluster.nodes=127.0.0.1:9300 # auto: create index when it doesn't exist. # forced: delete and create. # manual: do nothing. -es.index.initialize.mode=auto +es.index.initialize.mode=forced # Config of shards or replicas in Elasticsearch. es.index.shards.number=2 es.index.replicas.number=0 @@ -42,5 +42,5 @@ http.contextPath=/ # Cache size of analysis worker. The value determines whether sending to next worker and clear, or not. cache.analysis.size=1024 # Cache size of persistence worker. The value determines whether save data and clear, or not. -cache.persistence.size=1024 +cache.persistence.size=4096 diff --git a/skywalking-collector/skywalking-collector-worker/src/main/resources/log4j2.xml b/skywalking-collector/skywalking-collector-worker/src/main/resources/log4j2.xml index fe1aadabd..d139c48ed 100644 --- a/skywalking-collector/skywalking-collector-worker/src/main/resources/log4j2.xml +++ b/skywalking-collector/skywalking-collector-worker/src/main/resources/log4j2.xml @@ -16,10 +16,10 @@ - - - - + + + + diff --git a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/MergePersistenceMemberTestCase.java b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/JoinAndSplitPersistenceMemberTestCase.java similarity index 57% rename from skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/MergePersistenceMemberTestCase.java rename to skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/JoinAndSplitPersistenceMemberTestCase.java index 263e0d6e7..5b4477667 100644 --- a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/MergePersistenceMemberTestCase.java +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/JoinAndSplitPersistenceMemberTestCase.java @@ -2,11 +2,10 @@ package com.a.eye.skywalking.collector.worker; import com.a.eye.skywalking.collector.actor.ClusterWorkerContext; import com.a.eye.skywalking.collector.actor.LocalWorkerContext; -import com.a.eye.skywalking.collector.queue.EndOfBatchCommand; import com.a.eye.skywalking.collector.worker.mock.MockEsBulkClient; import com.a.eye.skywalking.collector.worker.storage.EsClient; -import com.a.eye.skywalking.collector.worker.storage.MergeData; -import com.a.eye.skywalking.collector.worker.storage.MergePersistenceData; +import com.a.eye.skywalking.collector.worker.storage.JoinAndSplitData; +import com.a.eye.skywalking.collector.worker.storage.JoinAndSplitPersistenceData; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; @@ -22,12 +21,12 @@ import static org.powermock.api.mockito.PowerMockito.*; * @author pengys5 */ @RunWith(PowerMockRunner.class) -@PrepareForTest({TestMergePersistenceMember.class, EsClient.class}) +@PrepareForTest({TestJoinAndSplitPersistenceMember.class, EsClient.class}) @PowerMockIgnore({"javax.management.*"}) -public class MergePersistenceMemberTestCase { +public class JoinAndSplitPersistenceMemberTestCase { - private TestMergePersistenceMember mergePersistenceMember; - private MergePersistenceData persistenceData; + private TestJoinAndSplitPersistenceMember mergePersistenceMember; + private JoinAndSplitPersistenceData persistenceData; @Before public void init() throws Exception { @@ -36,24 +35,23 @@ public class MergePersistenceMemberTestCase { ClusterWorkerContext clusterWorkerContext = new ClusterWorkerContext(null); LocalWorkerContext localWorkerContext = new LocalWorkerContext(); - mergePersistenceMember = PowerMockito.spy(new TestMergePersistenceMember(TestMergePersistenceMember.Role.INSTANCE, clusterWorkerContext, localWorkerContext)); + mergePersistenceMember = PowerMockito.spy(new TestJoinAndSplitPersistenceMember(TestJoinAndSplitPersistenceMember.Role.INSTANCE, clusterWorkerContext, localWorkerContext)); - persistenceData = mock(MergePersistenceData.class); - MergeData mergeData = mock(MergeData.class); + persistenceData = mock(JoinAndSplitPersistenceData.class); + JoinAndSplitData joinAndSplitData = mock(JoinAndSplitData.class); when(mergePersistenceMember, "getPersistenceData").thenReturn(persistenceData); - when(persistenceData.getElseCreate(Mockito.anyString())).thenReturn(mergeData); + when(persistenceData.getOrCreate(Mockito.anyString())).thenReturn(joinAndSplitData); - doCallRealMethod().when(mergePersistenceMember).analyse(Mockito.any(MergeData.class)); + doCallRealMethod().when(mergePersistenceMember).analyse(Mockito.any(JoinAndSplitData.class)); } @Test public void testAnalyse() throws Exception { String id = "2016" + Const.ID_SPLIT + "A" + Const.ID_SPLIT + "B"; - MergeData mergeData = new MergeData(id); - mergeData.setMergeData("Column", "VALUE"); + JoinAndSplitData joinAndSplitData = new JoinAndSplitData(id); + joinAndSplitData.set("Column", "VALUE"); -// mergePersistenceMember.analyse(mergeData); -// mergePersistenceMember.onWork(new EndOfBatchCommand()); + mergePersistenceMember.analyse(joinAndSplitData); } } diff --git a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/MergeAnalysisMemberTestCase.java b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/MergeAnalysisMemberTestCase.java deleted file mode 100644 index 18b4e9292..000000000 --- a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/MergeAnalysisMemberTestCase.java +++ /dev/null @@ -1,73 +0,0 @@ -package com.a.eye.skywalking.collector.worker; - -import com.a.eye.skywalking.collector.actor.ClusterWorkerContext; -import com.a.eye.skywalking.collector.actor.LocalWorkerContext; -import com.a.eye.skywalking.collector.worker.config.CacheSizeConfig; -import com.a.eye.skywalking.collector.worker.storage.MergeData; -import com.a.eye.skywalking.collector.worker.storage.MergePersistenceData; -import org.junit.Assert; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.Mockito; -import org.powermock.api.mockito.PowerMockito; -import org.powermock.core.classloader.annotations.PowerMockIgnore; -import org.powermock.core.classloader.annotations.PrepareForTest; -import org.powermock.modules.junit4.PowerMockRunner; - -import static org.powermock.api.mockito.PowerMockito.*; - -/** - * @author pengys5 - */ -@RunWith(PowerMockRunner.class) -@PrepareForTest(TestMergeAnalysisMember.class) -@PowerMockIgnore({"javax.management.*"}) -public class MergeAnalysisMemberTestCase { - - private TestMergeAnalysisMember mergeAnalysisMember; - private MergePersistenceData persistenceData; - - @Before - public void init() throws Exception { - ClusterWorkerContext clusterWorkerContext = new ClusterWorkerContext(null); - LocalWorkerContext localWorkerContext = new LocalWorkerContext(); - mergeAnalysisMember = PowerMockito.spy(new TestMergeAnalysisMember(TestMergeAnalysisMember.Role.INSTANCE, clusterWorkerContext, localWorkerContext)); - - persistenceData = mock(MergePersistenceData.class); - MergeData mergeData = mock(MergeData.class); - - when(mergeAnalysisMember, "getPersistenceData").thenReturn(persistenceData); - when(persistenceData.getElseCreate(Mockito.anyString())).thenReturn(mergeData); - - doCallRealMethod().when(mergeAnalysisMember).setMergeData(Mockito.anyString(), Mockito.anyString(), Mockito.anyString()); - } - - @Test - public void testSetMergeDataNotFull() throws Exception { - when(persistenceData.size()).thenReturn(CacheSizeConfig.Cache.Analysis.SIZE - 1); - - mergeAnalysisMember.setMergeData("segment_1", "column", "value"); - Mockito.verify(mergeAnalysisMember, Mockito.never()).aggregation(); - } - - @Test - public void testSetMergeDataFull() throws Exception { - when(persistenceData.size()).thenReturn(CacheSizeConfig.Cache.Analysis.SIZE); - - mergeAnalysisMember.setMergeData("segment_1", "column", "value"); - Mockito.verify(mergeAnalysisMember, Mockito.times(1)).aggregation(); - } - - @Test - public void testPushOne() throws Exception { - MergePersistenceData persistenceData = new MergePersistenceData(); - persistenceData.getElseCreate("segment_1").setMergeData("column", "value"); - - when(mergeAnalysisMember, "getPersistenceData").thenReturn(persistenceData); - doCallRealMethod().when(mergeAnalysisMember).pushOne(); - - Assert.assertEquals("segment_1", mergeAnalysisMember.pushOne().getId()); - Assert.assertEquals(null, mergeAnalysisMember.pushOne()); - } -} diff --git a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/RecordPersistenceMemberTestCase.java b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/RecordPersistenceMemberTestCase.java new file mode 100644 index 000000000..c1d27e9c1 --- /dev/null +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/RecordPersistenceMemberTestCase.java @@ -0,0 +1,41 @@ +package com.a.eye.skywalking.collector.worker; + +import com.a.eye.skywalking.collector.worker.storage.RecordData; +import com.a.eye.skywalking.collector.worker.storage.RecordPersistenceData; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.powermock.api.mockito.PowerMockito; +import org.powermock.core.classloader.annotations.PrepareForTest; +import org.powermock.modules.junit4.PowerMockRunner; +import org.apache.logging.log4j.Logger; + +import static org.mockito.Mockito.*; + +/** + * @author pengys5 + */ +@RunWith(PowerMockRunner.class) +@PrepareForTest(RecordPersistenceMember.class) +public class RecordPersistenceMemberTestCase { + + @Test + public void analyse() throws Exception { + RecordPersistenceMember member = PowerMockito.mock(RecordPersistenceMember.class, CALLS_REAL_METHODS); + Logger logger = mock(Logger.class); + when(member.logger()).thenReturn(logger); + + RecordPersistenceData data = mock(RecordPersistenceData.class); + RecordData recordData = new RecordData("test1"); + when(data.getOrCreate(anyString())).thenReturn(recordData); + + when(member.getPersistenceData()).thenReturn(data); + + RecordData recordData_1 = new RecordData("test2"); + member.analyse(recordData_1); + + verify(data).hold(); + verify(data).release(); + + member.analyse(new Object()); + } +} diff --git a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/TestMergeAnalysisMember.java b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/TestJoinAndSplitAnalysisMember.java similarity index 74% rename from skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/TestMergeAnalysisMember.java rename to skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/TestJoinAndSplitAnalysisMember.java index 9f9bdf94d..8b9fdce1b 100644 --- a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/TestMergeAnalysisMember.java +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/TestJoinAndSplitAnalysisMember.java @@ -3,14 +3,15 @@ package com.a.eye.skywalking.collector.worker; import com.a.eye.skywalking.collector.actor.ClusterWorkerContext; import com.a.eye.skywalking.collector.actor.LocalWorkerContext; import com.a.eye.skywalking.collector.actor.ProviderNotFoundException; +import com.a.eye.skywalking.collector.actor.WorkerRefs; import com.a.eye.skywalking.collector.actor.selector.WorkerSelector; /** * @author pengys5 */ -public class TestMergeAnalysisMember extends MergeAnalysisMember { +public class TestJoinAndSplitAnalysisMember extends JoinAndSplitAnalysisMember { - TestMergeAnalysisMember(Role role, ClusterWorkerContext clusterContext, LocalWorkerContext selfContext) { + TestJoinAndSplitAnalysisMember(Role role, ClusterWorkerContext clusterContext, LocalWorkerContext selfContext) { super(role, clusterContext, selfContext); } @@ -25,8 +26,8 @@ public class TestMergeAnalysisMember extends MergeAnalysisMember { } @Override - protected void aggregation() throws Exception { - + protected WorkerRefs aggWorkRefs() { + return null; } public enum Role implements com.a.eye.skywalking.collector.actor.Role { diff --git a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/TestMergePersistenceMember.java b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/TestJoinAndSplitPersistenceMember.java similarity index 78% rename from skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/TestMergePersistenceMember.java rename to skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/TestJoinAndSplitPersistenceMember.java index 0f81a9043..e69f182ee 100644 --- a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/TestMergePersistenceMember.java +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/TestJoinAndSplitPersistenceMember.java @@ -7,8 +7,8 @@ import com.a.eye.skywalking.collector.actor.selector.WorkerSelector; /** * @author pengys5 */ -public class TestMergePersistenceMember extends MergePersistenceMember { - TestMergePersistenceMember(Role role, ClusterWorkerContext clusterContext, LocalWorkerContext selfContext) { +public class TestJoinAndSplitPersistenceMember extends JoinAndSplitPersistenceMember { + TestJoinAndSplitPersistenceMember(Role role, ClusterWorkerContext clusterContext, LocalWorkerContext selfContext) { super(role, clusterContext, selfContext); } diff --git a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/config/CacheSizeConfigProviderTestCase.java b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/config/CacheSizeConfigProviderTestCase.java new file mode 100644 index 000000000..05cd29bfe --- /dev/null +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/config/CacheSizeConfigProviderTestCase.java @@ -0,0 +1,18 @@ +package com.a.eye.skywalking.collector.worker.config; + +import org.junit.Assert; +import org.junit.Test; + +/** + * @author pengys5 + */ +public class CacheSizeConfigProviderTestCase { + + @Test + public void test() { + CacheSizeConfigProvider provider = new CacheSizeConfigProvider(); + provider.cliArgs(); + + Assert.assertEquals(CacheSizeConfig.class, provider.configClass()); + } +} diff --git a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/config/CacheSizeConfigTestCase.java b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/config/CacheSizeConfigTestCase.java new file mode 100644 index 000000000..fba27a200 --- /dev/null +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/config/CacheSizeConfigTestCase.java @@ -0,0 +1,16 @@ +package com.a.eye.skywalking.collector.worker.config; + +import org.junit.Assert; +import org.junit.Test; + +/** + * @author pengys5 + */ +public class CacheSizeConfigTestCase { + + @Test + public void test() { + Assert.assertEquals(1024, CacheSizeConfig.Cache.Analysis.SIZE); + Assert.assertEquals(5000, CacheSizeConfig.Cache.Persistence.SIZE); + } +} diff --git a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/config/EsConfigProviderTestCase.java b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/config/EsConfigProviderTestCase.java new file mode 100644 index 000000000..05298f394 --- /dev/null +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/config/EsConfigProviderTestCase.java @@ -0,0 +1,30 @@ +package com.a.eye.skywalking.collector.worker.config; + +import org.junit.Assert; +import org.junit.Test; + +/** + * @author pengys5 + */ +public class EsConfigProviderTestCase { + + @Test + public void test() { + EsConfigProvider provider = new EsConfigProvider(); + + Assert.assertEquals(EsConfig.class, provider.configClass()); + + System.setProperty("es.cluster.NAME", "A"); + System.setProperty("es.cluster.NODES", "B"); + System.setProperty("es.cluster.transport.SNIFFER", "C"); + System.setProperty("es.index.shards.NUMBER", "10"); + System.setProperty("es.index.replicas.NUMBER", "20"); + provider.cliArgs(); + + Assert.assertEquals("A", EsConfig.Es.Cluster.NAME); + Assert.assertEquals("B", EsConfig.Es.Cluster.NODES); + Assert.assertEquals("C", EsConfig.Es.Cluster.Transport.SNIFFER); + Assert.assertEquals("10", EsConfig.Es.Index.Shards.NUMBER); + Assert.assertEquals("20", EsConfig.Es.Index.Replicas.NUMBER); + } +} diff --git a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/config/HttpConfigProviderTestCase.java b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/config/HttpConfigProviderTestCase.java new file mode 100644 index 000000000..b0677d7e0 --- /dev/null +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/config/HttpConfigProviderTestCase.java @@ -0,0 +1,26 @@ +package com.a.eye.skywalking.collector.worker.config; + +import org.junit.Assert; +import org.junit.Test; + +/** + * @author pengys5 + */ +public class HttpConfigProviderTestCase { + + @Test + public void test() { + HttpConfigProvider provider = new HttpConfigProvider(); + + Assert.assertEquals(HttpConfig.class, provider.configClass()); + + System.setProperty("http.HOSTNAME", "A"); + System.setProperty("http.PORT", "B"); + System.setProperty("http.CONTEXTPATH", "C"); + provider.cliArgs(); + + Assert.assertEquals("A", HttpConfig.Http.HOSTNAME); + Assert.assertEquals("B", HttpConfig.Http.PORT); + Assert.assertEquals("C", HttpConfig.Http.CONTEXTPATH); + } +} diff --git a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/config/WorkerConfigProviderTestCase.java b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/config/WorkerConfigProviderTestCase.java new file mode 100644 index 000000000..cb6a47b7a --- /dev/null +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/config/WorkerConfigProviderTestCase.java @@ -0,0 +1,18 @@ +package com.a.eye.skywalking.collector.worker.config; + +import org.junit.Assert; +import org.junit.Test; + +/** + * @author pengys5 + */ +public class WorkerConfigProviderTestCase { + + @Test + public void test() { + WorkerConfigProvider provider = new WorkerConfigProvider(); + provider.cliArgs(); + + Assert.assertEquals(WorkerConfig.class, provider.configClass()); + } +} diff --git a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/datamerge/JsonDataMerge.java b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/datamerge/JsonDataMerge.java index 803fb69c6..b14d036e9 100644 --- a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/datamerge/JsonDataMerge.java +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/datamerge/JsonDataMerge.java @@ -40,7 +40,6 @@ public enum JsonDataMerge { if (!entry.getValue().isJsonNull()) { value = entry.getValue().getAsString(); } - System.out.printf("key: %s, value: %s \n", key, value); if (entry.getValue().isJsonNull()) { Assert.assertEquals(true, actualData.get(key).isJsonNull()); diff --git a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/datamerge/MetricDataMergeJson.java b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/datamerge/MetricDataMergeJson.java index 73d14278b..30d487b13 100644 --- a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/datamerge/MetricDataMergeJson.java +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/datamerge/MetricDataMergeJson.java @@ -2,7 +2,6 @@ package com.a.eye.skywalking.collector.worker.datamerge; import com.a.eye.skywalking.collector.worker.Const; import com.a.eye.skywalking.collector.worker.storage.MetricData; -import com.a.eye.skywalking.collector.worker.storage.RecordData; import com.a.eye.skywalking.collector.worker.tools.DateTools; import com.a.eye.skywalking.collector.worker.tools.JsonFileReader; import com.google.gson.Gson; @@ -56,7 +55,6 @@ public enum MetricDataMergeJson { if (!entry.getValue().isJsonNull()) { value = entry.getValue().getAsString(); } - System.out.printf("key: %s, value: %s \n", key, value); if (entry.getValue().isJsonNull()) { Assert.assertEquals(true, actualData.get(key).isJsonNull()); @@ -75,7 +73,7 @@ public enum MetricDataMergeJson { Map recordDataMap = new HashMap<>(); Gson gson = new Gson(); for (MetricData metricData : recordDataList) { - JsonObject jsonObject = gson.fromJson(gson.toJson(metricData.toMap()), JsonObject.class); + JsonObject jsonObject = gson.fromJson(gson.toJson(metricData.asMap()), JsonObject.class); recordDataMap.put(id2UTCSlice(metricData.getId()), jsonObject); } return recordDataMap; @@ -91,7 +89,6 @@ public enum MetricDataMergeJson { changedId = changedId + Const.ID_SPLIT + ids[i]; } changedId = String.valueOf(changedSlice) + changedId; - System.out.printf("changedId: %s", changedId); return changedId; } } diff --git a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/datamerge/RecordDataMergeJson.java b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/datamerge/RecordDataMergeJson.java index 6c9a96d4f..92f0da2ce 100644 --- a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/datamerge/RecordDataMergeJson.java +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/datamerge/RecordDataMergeJson.java @@ -55,7 +55,6 @@ public enum RecordDataMergeJson { if (!entry.getValue().isJsonNull()) { value = entry.getValue().getAsString(); } - System.out.printf("key: %s, value: %s \n", key, value); if (entry.getValue().isJsonNull()) { Assert.assertEquals(true, actualData.get(key).isJsonNull()); @@ -71,7 +70,7 @@ public enum RecordDataMergeJson { private Map recordData2Map(List recordDataList) { Map recordDataMap = new HashMap<>(); for (RecordData recordData : recordDataList) { - recordDataMap.put(recordData.getId(), recordData.getRecord()); + recordDataMap.put(recordData.getId(), recordData.get()); } return recordDataMap; } @@ -86,7 +85,6 @@ public enum RecordDataMergeJson { changedId = changedId + Const.ID_SPLIT + ids[i]; } changedId = String.valueOf(changedSlice) + changedId; - System.out.printf("changedId: %s", changedId); return changedId; } else { return id; diff --git a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/globaltrace/GlobalTraceGetWithGlobalIdTestCase.java b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/globaltrace/GlobalTraceGetWithGlobalIdTestCase.java index 573edc74e..b6830d6b5 100644 --- a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/globaltrace/GlobalTraceGetWithGlobalIdTestCase.java +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/globaltrace/GlobalTraceGetWithGlobalIdTestCase.java @@ -59,14 +59,15 @@ public class GlobalTraceGetWithGlobalIdTestCase { @Test public void testFactory() { - Assert.assertEquals(GlobalTraceGetWithGlobalId.class.getSimpleName(), GlobalTraceGetWithGlobalId.Factory.INSTANCE.role().roleName()); - Assert.assertEquals(GlobalTraceGetWithGlobalId.class.getSimpleName(), GlobalTraceGetWithGlobalId.Factory.INSTANCE.workerInstance(null).getClass().getSimpleName()); - Assert.assertEquals("/globalTrace/globalId", GlobalTraceGetWithGlobalId.Factory.INSTANCE.servletPath()); + GlobalTraceGetWithGlobalId.Factory factory = new GlobalTraceGetWithGlobalId.Factory(); + Assert.assertEquals(GlobalTraceGetWithGlobalId.class.getSimpleName(), factory.role().roleName()); + Assert.assertEquals(GlobalTraceGetWithGlobalId.class.getSimpleName(), factory.workerInstance(null).getClass().getSimpleName()); + Assert.assertEquals("/globalTrace/globalId", factory.servletPath()); } @Test public void testPreStart() throws ProviderNotFoundException { - when(clusterWorkerContext.findProvider(GlobalTraceSearchWithGlobalId.WorkerRole.INSTANCE)).thenReturn(GlobalTraceSearchWithGlobalId.Factory.INSTANCE); + when(clusterWorkerContext.findProvider(GlobalTraceSearchWithGlobalId.WorkerRole.INSTANCE)).thenReturn(new GlobalTraceSearchWithGlobalId.Factory()); ArgumentCaptor argumentCaptor = ArgumentCaptor.forClass(GlobalTraceSearchWithGlobalId.WorkerRole.class); getObj.preStart(); @@ -94,8 +95,7 @@ public class GlobalTraceGetWithGlobalIdTestCase { @Override public Object answer(InvocationOnMock invocation) throws Throwable { - String globalId = (String)invocation.getArguments()[0]; - System.out.println(globalId); + String globalId = (String) invocation.getArguments()[0]; Assert.assertEquals("Test", globalId); return null; } diff --git a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/globaltrace/GlobalTraceIndexTestCase.java b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/globaltrace/GlobalTraceIndexTestCase.java index ebd960295..871495e4e 100644 --- a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/globaltrace/GlobalTraceIndexTestCase.java +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/globaltrace/GlobalTraceIndexTestCase.java @@ -1,5 +1,6 @@ package com.a.eye.skywalking.collector.worker.globaltrace; +import com.a.eye.skywalking.collector.worker.config.EsConfig; import org.junit.Assert; import org.junit.Test; @@ -20,6 +21,12 @@ public class GlobalTraceIndexTestCase { @Test public void testBuilder() throws IOException { GlobalTraceIndex index = new GlobalTraceIndex(); - Assert.assertEquals("{\"properties\":{\"subSegIds\":{\"type\":\"text\",\"index\":\"not_analyzed\"}}}", index.createMappingBuilder().string()); + Assert.assertEquals("{\"properties\":{\"subSegIds\":{\"type\":\"keyword\"}}}", index.createMappingBuilder().string()); + } + + @Test + public void refreshInterval() { + GlobalTraceIndex index = new GlobalTraceIndex(); + Assert.assertEquals(EsConfig.Es.Index.RefreshInterval.GlobalTraceIndex.VALUE.intValue(), index.refreshInterval()); } } diff --git a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/globaltrace/GlobalTraceSearchTestCase.java b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/globaltrace/GlobalTraceSearchTestCase.java index 5d480a9f0..e8c243221 100644 --- a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/globaltrace/GlobalTraceSearchTestCase.java +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/globaltrace/GlobalTraceSearchTestCase.java @@ -3,58 +3,53 @@ package com.a.eye.skywalking.collector.worker.globaltrace; import com.a.eye.skywalking.collector.worker.globaltrace.persistence.GlobalTraceSearchWithGlobalId; import com.a.eye.skywalking.collector.worker.segment.SegmentIndex; import com.a.eye.skywalking.collector.worker.storage.EsClient; +import com.a.eye.skywalking.collector.worker.storage.GetResponseFromEs; import com.a.eye.skywalking.collector.worker.tools.JsonFileReader; import com.google.gson.JsonObject; -import org.elasticsearch.action.get.GetRequestBuilder; import org.elasticsearch.action.get.GetResponse; -import org.elasticsearch.client.Client; import org.junit.Test; import org.junit.runner.RunWith; +import org.powermock.api.mockito.PowerMockito; import org.powermock.core.classloader.annotations.PowerMockIgnore; import org.powermock.core.classloader.annotations.PrepareForTest; import org.powermock.modules.junit4.PowerMockRunner; +import org.powermock.reflect.Whitebox; -import static org.powermock.api.mockito.PowerMockito.*; +import static org.powermock.api.mockito.PowerMockito.mock; +import static org.powermock.api.mockito.PowerMockito.when; /** * @author pengys5 */ @RunWith(PowerMockRunner.class) -@PrepareForTest({EsClient.class}) +@PrepareForTest({EsClient.class, GetResponseFromEs.class}) @PowerMockIgnore("javax.management.*") public class GlobalTraceSearchTestCase { @Test public void testSearchWithGlobalId() throws Exception { - Client client = mock(Client.class); - mockStatic(EsClient.class); -// when(EsClient.INSTANCE.getClient()).thenReturn(client); - String globalTraceId = "Global.1"; - String segment_1 = "SEGMENT.1"; - String segment_2 = "SEGMENT.2"; + String segment_1 = "Segment.1490922929258.927784221.5991.27.1"; -// String globalData = JsonFileReader.INSTANCE.read(this.getClass().getResource("/").getPath() + "/json/globaltrace/global.json"); -// mockSegment(client, GlobalTraceIndex.INDEX, GlobalTraceIndex.Type_Record, globalTraceId, globalData); -// -// String segment_1_Data = JsonFileReader.INSTANCE.read(this.getClass().getResource("/").getPath() + "/json/globaltrace/segment_1.json"); -// mockSegment(client, SegmentIndex.INDEX, SegmentIndex.Type_Record, segment_1, segment_1_Data); -// -// String segment_2_Data = JsonFileReader.INSTANCE.read(this.getClass().getResource("/").getPath() + "/json/globaltrace/segment_2.json"); -// mockSegment(client, SegmentIndex.INDEX, SegmentIndex.Type_Record, segment_2, segment_2_Data); -// -// GlobalTraceSearchWithGlobalId search = new GlobalTraceSearchWithGlobalId(null, null, null); -// -// JsonObject responseObj = new JsonObject(); + GetResponseFromEs getResponseFromEs = PowerMockito.mock(GetResponseFromEs.class); + Whitebox.setInternalState(GetResponseFromEs.class, "INSTANCE", getResponseFromEs); + + String globalData = JsonFileReader.INSTANCE.read(this.getClass().getResource("/").getPath() + "/json/globaltrace/persistence/globaltrace_search.json"); + mockSegment(getResponseFromEs, GlobalTraceIndex.INDEX, GlobalTraceIndex.TYPE_RECORD, globalTraceId, globalData); + + String segment_Data = JsonFileReader.INSTANCE.read(this.getClass().getResource("/").getPath() + "/json/globaltrace/persistence/globaltrace_segment.json"); + mockSegment(getResponseFromEs, SegmentIndex.INDEX, SegmentIndex.TYPE_RECORD, segment_1, segment_Data); + + GlobalTraceSearchWithGlobalId search = new GlobalTraceSearchWithGlobalId(GlobalTraceSearchWithGlobalId.WorkerRole.INSTANCE, null, null); + + JsonObject responseObj = new JsonObject(); // search.allocateJob(globalTraceId, responseObj); // System.out.println(responseObj); } - private void mockSegment(Client client, String index, String type, String segmentId, String source) { - GetRequestBuilder builder = mock(GetRequestBuilder.class); - when(client.prepareGet(index, type, segmentId)).thenReturn(builder); - GetResponse response = mock(GetResponse.class); - when(builder.get()).thenReturn(response); - when(response.getSourceAsString()).thenReturn(source); + private void mockSegment(GetResponseFromEs getResponseFromEs, String index, String type, String id, String source) { + GetResponse getResponse = mock(GetResponse.class); + when(getResponseFromEs.get(index, type, id)).thenReturn(getResponse); + when(getResponse.getSourceAsString()).thenReturn(source); } } diff --git a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/globaltrace/analysis/GlobalTraceAnalysisTestCase.java b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/globaltrace/analysis/GlobalTraceAnalysisTestCase.java index 1c95619d4..b97502f66 100644 --- a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/globaltrace/analysis/GlobalTraceAnalysisTestCase.java +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/globaltrace/analysis/GlobalTraceAnalysisTestCase.java @@ -8,7 +8,7 @@ import com.a.eye.skywalking.collector.worker.config.WorkerConfig; import com.a.eye.skywalking.collector.worker.globaltrace.persistence.GlobalTraceAgg; import com.a.eye.skywalking.collector.worker.mock.MergeDataAnswer; import com.a.eye.skywalking.collector.worker.segment.mock.SegmentMock; -import com.a.eye.skywalking.collector.worker.storage.MergeData; +import com.a.eye.skywalking.collector.worker.storage.JoinAndSplitData; import org.junit.Assert; import org.junit.Before; import org.junit.Test; @@ -46,7 +46,7 @@ public class GlobalTraceAnalysisTestCase { clusterWorkerContext = PowerMockito.mock(ClusterWorkerContext.class); WorkerRefs workerRefs = mock(WorkerRefs.class); answer = new MergeDataAnswer(); - doAnswer(answer).when(workerRefs).tell(Mockito.any(MergeData.class)); + doAnswer(answer).when(workerRefs).tell(Mockito.any(JoinAndSplitData.class)); when(clusterWorkerContext.lookup(GlobalTraceAgg.Role.INSTANCE)).thenReturn(workerRefs); @@ -62,22 +62,23 @@ public class GlobalTraceAnalysisTestCase { @Test public void testFactory() { - Assert.assertEquals(GlobalTraceAnalysis.class.getSimpleName(), GlobalTraceAnalysis.Factory.INSTANCE.role().roleName()); - Assert.assertEquals(GlobalTraceAnalysis.class.getSimpleName(), GlobalTraceAnalysis.Factory.INSTANCE.workerInstance(null).getClass().getSimpleName()); + GlobalTraceAnalysis.Factory factory = new GlobalTraceAnalysis.Factory(); + Assert.assertEquals(GlobalTraceAnalysis.class.getSimpleName(), factory.role().roleName()); + Assert.assertEquals(GlobalTraceAnalysis.class.getSimpleName(), factory.workerInstance(null).getClass().getSimpleName()); int testSize = 10; WorkerConfig.Queue.GlobalTrace.GlobalTraceAnalysis.SIZE = testSize; - Assert.assertEquals(testSize, GlobalTraceAnalysis.Factory.INSTANCE.queueSize()); + Assert.assertEquals(testSize, factory.queueSize()); } @Test public void testAnalyse() throws Exception { segmentMock.executeAnalysis(analysis); - Assert.assertEquals(1, answer.getMergeDataList().size()); - MergeData mergeData = answer.getMergeDataList().get(0); - Assert.assertEquals(id, mergeData.getId()); - String subSegIds = mergeData.toMap().get("subSegIds"); + Assert.assertEquals(1, answer.getJoinAndSplitDataList().size()); + JoinAndSplitData joinAndSplitData = answer.getJoinAndSplitDataList().get(0); + Assert.assertEquals(id, joinAndSplitData.getId()); + String subSegIds = joinAndSplitData.asMap().get("subSegIds").toString(); Assert.assertEquals(cacheServiceSubSegIds, subSegIds); } diff --git a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/globaltrace/persistence/GlobalTraceAggTestCase.java b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/globaltrace/persistence/GlobalTraceAggTestCase.java index cc7050553..48dcce9a1 100644 --- a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/globaltrace/persistence/GlobalTraceAggTestCase.java +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/globaltrace/persistence/GlobalTraceAggTestCase.java @@ -61,17 +61,18 @@ public class GlobalTraceAggTestCase { @Test public void testFactory() { - Assert.assertEquals(GlobalTraceAgg.class.getSimpleName(), GlobalTraceAgg.Factory.INSTANCE.role().roleName()); - Assert.assertEquals(GlobalTraceAgg.class.getSimpleName(), GlobalTraceAgg.Factory.INSTANCE.workerInstance(null).getClass().getSimpleName()); + GlobalTraceAgg.Factory factory = new GlobalTraceAgg.Factory(); + Assert.assertEquals(GlobalTraceAgg.class.getSimpleName(), factory.role().roleName()); + Assert.assertEquals(GlobalTraceAgg.class.getSimpleName(), factory.workerInstance(null).getClass().getSimpleName()); int testSize = 10; WorkerConfig.WorkerNum.GlobalTrace.GlobalTraceAgg.VALUE = testSize; - Assert.assertEquals(testSize, GlobalTraceAgg.Factory.INSTANCE.workerNum()); + Assert.assertEquals(testSize, factory.workerNum()); } @Test public void testPreStart() throws ProviderNotFoundException { - when(clusterWorkerContext.findProvider(GlobalTraceSave.Role.INSTANCE)).thenReturn(GlobalTraceSave.Factory.INSTANCE); + when(clusterWorkerContext.findProvider(GlobalTraceSave.Role.INSTANCE)).thenReturn(new GlobalTraceSave.Factory()); ArgumentCaptor argumentCaptor = ArgumentCaptor.forClass(GlobalTraceSave.Role.class); agg.preStart(); diff --git a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/globaltrace/persistence/GlobalTraceSaveTestCase.java b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/globaltrace/persistence/GlobalTraceSaveTestCase.java index 9843bcf2b..230290195 100644 --- a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/globaltrace/persistence/GlobalTraceSaveTestCase.java +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/globaltrace/persistence/GlobalTraceSaveTestCase.java @@ -3,7 +3,6 @@ package com.a.eye.skywalking.collector.worker.globaltrace.persistence; import com.a.eye.skywalking.collector.actor.ClusterWorkerContext; import com.a.eye.skywalking.collector.actor.LocalWorkerContext; import com.a.eye.skywalking.collector.actor.selector.HashCodeSelector; -import com.a.eye.skywalking.collector.worker.config.WorkerConfig; import com.a.eye.skywalking.collector.worker.globaltrace.GlobalTraceIndex; import org.junit.Assert; import org.junit.Before; @@ -46,11 +45,8 @@ public class GlobalTraceSaveTestCase { @Test public void testFactory() { - Assert.assertEquals(GlobalTraceSave.class.getSimpleName(), GlobalTraceSave.Factory.INSTANCE.role().roleName()); - Assert.assertEquals(GlobalTraceSave.class.getSimpleName(), GlobalTraceSave.Factory.INSTANCE.workerInstance(null).getClass().getSimpleName()); - - int testSize = 10; - WorkerConfig.Queue.GlobalTrace.GlobalTraceSave.SIZE = testSize; - Assert.assertEquals(testSize, GlobalTraceSave.Factory.INSTANCE.queueSize()); + GlobalTraceSave.Factory factory = new GlobalTraceSave.Factory(); + Assert.assertEquals(GlobalTraceSave.class.getSimpleName(), factory.role().roleName()); + Assert.assertEquals(GlobalTraceSave.class.getSimpleName(), factory.workerInstance(null).getClass().getSimpleName()); } } diff --git a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/globaltrace/persistence/GlobalTraceSearchWithGlobalIdTestCase.java b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/globaltrace/persistence/GlobalTraceSearchWithGlobalIdTestCase.java index f887aa6e2..dc1f7a421 100644 --- a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/globaltrace/persistence/GlobalTraceSearchWithGlobalIdTestCase.java +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/globaltrace/persistence/GlobalTraceSearchWithGlobalIdTestCase.java @@ -53,8 +53,9 @@ public class GlobalTraceSearchWithGlobalIdTestCase { @Test public void testFactory() { - Assert.assertEquals(GlobalTraceSearchWithGlobalId.class.getSimpleName(), GlobalTraceSearchWithGlobalId.Factory.INSTANCE.role().roleName()); - Assert.assertEquals(GlobalTraceSearchWithGlobalId.class.getSimpleName(), GlobalTraceSearchWithGlobalId.Factory.INSTANCE.workerInstance(null).getClass().getSimpleName()); + GlobalTraceSearchWithGlobalId.Factory factory = new GlobalTraceSearchWithGlobalId.Factory(); + Assert.assertEquals(GlobalTraceSearchWithGlobalId.class.getSimpleName(), factory.role().roleName()); + Assert.assertEquals(GlobalTraceSearchWithGlobalId.class.getSimpleName(), factory.workerInstance(null).getClass().getSimpleName()); } @Test diff --git a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/globaltrace/persistence/GlobalTraceSearchWithGlobalIdUseDB.java b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/globaltrace/persistence/GlobalTraceSearchWithGlobalIdUseDB.java index b23cc9faf..b916df583 100644 --- a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/globaltrace/persistence/GlobalTraceSearchWithGlobalIdUseDB.java +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/globaltrace/persistence/GlobalTraceSearchWithGlobalIdUseDB.java @@ -2,8 +2,6 @@ package com.a.eye.skywalking.collector.worker.globaltrace.persistence; import com.a.eye.skywalking.collector.actor.ClusterWorkerContext; import com.a.eye.skywalking.collector.actor.LocalWorkerContext; -import com.a.eye.skywalking.collector.worker.node.NodeMappingIndex; -import com.a.eye.skywalking.collector.worker.node.persistence.NodeMappingSearchWithTimeSlice; import com.a.eye.skywalking.collector.worker.storage.EsClient; import com.google.gson.JsonArray; import com.google.gson.JsonObject; @@ -25,11 +23,8 @@ public class GlobalTraceSearchWithGlobalIdUseDB { globalTraceSearchWithGlobalId.onWork("Trace.1491277147443.-1562443425.70539.65.2", response); JsonArray nodeArray = response.get("result").getAsJsonArray(); - System.out.println(nodeArray.size()); - System.out.println(nodeArray.toString()); for (int i = 0; i < nodeArray.size(); i++) { JsonObject nodeJsonObj = nodeArray.get(i).getAsJsonObject(); - System.out.println(nodeJsonObj); } } } diff --git a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/httpserver/AbstractPostTestCase.java b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/httpserver/AbstractPostTestCase.java index d54e85de6..3c0bf7af8 100644 --- a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/httpserver/AbstractPostTestCase.java +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/httpserver/AbstractPostTestCase.java @@ -41,6 +41,6 @@ public class AbstractPostTestCase { @Test public void testOnWorkError() throws Exception { post.onWork(new JsonObject()); -// PowerMockito.verifyPrivate(post).invoke("saveException", any(IllegalArgumentException.class)); + PowerMockito.verifyPrivate(post).invoke("saveException", any(IllegalArgumentException.class)); } } diff --git a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/httpserver/GetWithHttpServletTestCase.java b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/httpserver/GetWithHttpServletTestCase.java index 820f6a24f..2f69a4b4a 100644 --- a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/httpserver/GetWithHttpServletTestCase.java +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/httpserver/GetWithHttpServletTestCase.java @@ -30,7 +30,6 @@ public class GetWithHttpServletTestCase { @Override public Object answer(InvocationOnMock invocation) throws Throwable { Integer status = (Integer)invocation.getArguments()[0]; - System.out.println(status); Assert.assertEquals(new Integer(200), status); return null; } diff --git a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/httpserver/PostWithHttpServletTestCase.java b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/httpserver/PostWithHttpServletTestCase.java index 7c7b417f6..94a30ed34 100644 --- a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/httpserver/PostWithHttpServletTestCase.java +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/httpserver/PostWithHttpServletTestCase.java @@ -47,7 +47,6 @@ public class PostWithHttpServletTestCase { @Override public Object answer(InvocationOnMock invocation) throws Throwable { Integer status = (Integer)invocation.getArguments()[0]; - System.out.println(status); Assert.assertEquals(new Integer(200), status); return null; } @@ -57,7 +56,6 @@ public class PostWithHttpServletTestCase { @Override public Object answer(InvocationOnMock invocation) throws Throwable { Segment segment = (Segment)invocation.getArguments()[0]; - System.out.println(segment.getTraceSegmentId()); Assert.assertEquals("TestTest2", segment.getTraceSegmentId()); return null; } @@ -76,7 +74,6 @@ public class PostWithHttpServletTestCase { @Override public Object answer(InvocationOnMock invocation) throws Throwable { Integer status = (Integer)invocation.getArguments()[0]; - System.out.println(status); Assert.assertEquals(new Integer(500), status); return null; } diff --git a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/httpserver/TestAbstractGet.java b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/httpserver/TestAbstractGet.java index d1a1df0a2..f00c45d41 100644 --- a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/httpserver/TestAbstractGet.java +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/httpserver/TestAbstractGet.java @@ -29,8 +29,6 @@ public class TestAbstractGet extends AbstractGet { } public static class Factory extends AbstractGetProvider { - public static Factory INSTANCE = new Factory(); - @Override public Role role() { return TestAbstractGet.WorkerRole.INSTANCE; diff --git a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/httpserver/TestAbstractGetProvider.java b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/httpserver/TestAbstractGetProvider.java index 82ddc918c..16e49e0c7 100644 --- a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/httpserver/TestAbstractGetProvider.java +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/httpserver/TestAbstractGetProvider.java @@ -15,11 +15,11 @@ public class TestAbstractGetProvider extends AbstractGetProvider { @Override public Role role() { - return null; + return TestAbstractGet.WorkerRole.INSTANCE; } @Override public AbstractWorker workerInstance(ClusterWorkerContext clusterContext) { - return new TestAbstractGet(null, null, null); + return new TestAbstractGet(role(), null, null); } } diff --git a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/httpserver/TestAbstractPost.java b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/httpserver/TestAbstractPost.java index 5a0e21226..0539137a8 100644 --- a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/httpserver/TestAbstractPost.java +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/httpserver/TestAbstractPost.java @@ -39,8 +39,6 @@ public class TestAbstractPost extends AbstractPost { } public static class Factory extends AbstractPostProvider { - public static Factory INSTANCE = new Factory(); - @Override public String servletPath() { return "/TestAbstractPost"; diff --git a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/httpserver/TestAbstractPostProvider.java b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/httpserver/TestAbstractPostProvider.java index 086f65188..e8c01916f 100644 --- a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/httpserver/TestAbstractPostProvider.java +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/httpserver/TestAbstractPostProvider.java @@ -25,6 +25,6 @@ public class TestAbstractPostProvider extends AbstractPostProvider { @Override public AbstractWorker workerInstance(ClusterWorkerContext clusterContext) { - return new TestAbstractPost(null, null, null); + return new TestAbstractPost(TestAbstractPost.WorkerRole.INSTANCE, null, null); } } diff --git a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/mock/MergeDataAnswer.java b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/mock/MergeDataAnswer.java index cad7c474f..46a13ffac 100644 --- a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/mock/MergeDataAnswer.java +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/mock/MergeDataAnswer.java @@ -1,33 +1,27 @@ package com.a.eye.skywalking.collector.worker.mock; -import com.a.eye.skywalking.collector.worker.storage.MergeData; +import com.a.eye.skywalking.collector.worker.storage.JoinAndSplitData; import org.mockito.invocation.InvocationOnMock; import org.mockito.stubbing.Answer; import java.util.ArrayList; import java.util.List; -import java.util.Map; /** * @author pengys5 */ public class MergeDataAnswer implements Answer { - private List mergeDataList = new ArrayList<>(); + private List joinAndSplitDataList = new ArrayList<>(); @Override public Object answer(InvocationOnMock invocation) throws Throwable { - MergeData mergeData = (MergeData)invocation.getArguments()[0]; - System.out.printf("id: %s \n", mergeData.getId()); - - for (Map.Entry entry : mergeData.toMap().entrySet()) { - System.out.printf("key: %s, value: %s \n", entry.getKey(), entry.getValue()); - } - mergeDataList.add(mergeData); + JoinAndSplitData joinAndSplitData = (JoinAndSplitData)invocation.getArguments()[0]; + joinAndSplitDataList.add(joinAndSplitData); return null; } - public List getMergeDataList() { - return mergeDataList; + public List getJoinAndSplitDataList() { + return joinAndSplitDataList; } } diff --git a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/mock/MetricDataAnswer.java b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/mock/MetricDataAnswer.java index 9682611c2..e327dc957 100644 --- a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/mock/MetricDataAnswer.java +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/mock/MetricDataAnswer.java @@ -20,12 +20,7 @@ public class MetricDataAnswer implements Answer { @Override public Object answer(InvocationOnMock invocation) throws Throwable { MetricData metricData = (MetricData)invocation.getArguments()[0]; - - System.out.printf("id: %s \n", metricData.getId()); metricDataList.add(metricData); - Gson gson = new Gson(); - String jsonStr = gson.toJson(metricData.toMap()); - System.out.printf("data: %s \n", jsonStr); return null; } diff --git a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/mock/MockGetResponse.java b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/mock/MockGetResponse.java index fbfd1f02c..a4ce72f82 100644 --- a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/mock/MockGetResponse.java +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/mock/MockGetResponse.java @@ -23,4 +23,17 @@ public class MockGetResponse { return getResponse; } + + public GetResponse mockito(String index, String type, String id) { + MockEsClient mockEsClient = new MockEsClient(); + Client client = mockEsClient.mock(); + + GetRequestBuilder builder = mock(GetRequestBuilder.class); + GetResponse getResponse = mock(GetResponse.class); + when(builder.get()).thenReturn(getResponse); + + when(client.prepareGet(index, type, id)).thenReturn(builder); + + return getResponse; + } } diff --git a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/mock/RecordDataAnswer.java b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/mock/RecordDataAnswer.java index b7f4c305c..f350eb261 100644 --- a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/mock/RecordDataAnswer.java +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/mock/RecordDataAnswer.java @@ -1,14 +1,10 @@ package com.a.eye.skywalking.collector.worker.mock; import com.a.eye.skywalking.collector.worker.storage.RecordData; -import com.google.gson.JsonElement; -import org.mockito.invocation.InvocationOnMock; -import org.mockito.stubbing.Answer; - import java.util.ArrayList; import java.util.List; -import java.util.Map; -import java.util.Set; +import org.mockito.invocation.InvocationOnMock; +import org.mockito.stubbing.Answer; /** * @author pengys5 @@ -20,9 +16,6 @@ public class RecordDataAnswer implements Answer { @Override public Object answer(InvocationOnMock invocation) throws Throwable { RecordData recordData = (RecordData)invocation.getArguments()[0]; - System.out.printf("id: %s \n", recordData.getId()); - System.out.println(recordData.getRecord().toString()); - recordDataList.add(recordData); return null; } diff --git a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/mock/SaveToEsSourceAnswer.java b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/mock/SaveToEsSourceAnswer.java index c57f297ef..c8abfd489 100644 --- a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/mock/SaveToEsSourceAnswer.java +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/mock/SaveToEsSourceAnswer.java @@ -3,8 +3,6 @@ package com.a.eye.skywalking.collector.worker.mock; import com.google.gson.Gson; import com.google.gson.JsonArray; import com.google.gson.JsonObject; -import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; import org.mockito.invocation.InvocationOnMock; import org.mockito.stubbing.Answer; @@ -13,8 +11,6 @@ import org.mockito.stubbing.Answer; */ public class SaveToEsSourceAnswer implements Answer { - private Logger logger = LogManager.getFormatterLogger(SaveToEsSourceAnswer.class); - public SourceObj sourceObj = new SourceObj(); @Override @@ -22,8 +18,6 @@ public class SaveToEsSourceAnswer implements Answer { Gson gson = new Gson(); String source = (String)invocation.getArguments()[0]; JsonObject sourceJsonObj = gson.fromJson(source, JsonObject.class); - logger.debug("sourceJsonObj: %s", sourceJsonObj.toString()); - sourceObj.setSource(sourceJsonObj); return null; } @@ -35,10 +29,6 @@ public class SaveToEsSourceAnswer implements Answer { source = new JsonArray(); } - public JsonArray getSource() { - return source; - } - public void setSource(JsonObject source) { this.source.add(source); } diff --git a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/node/NodeCompIndexTestCase.java b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/node/NodeCompIndexTestCase.java index edab2511e..4c4628ba4 100644 --- a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/node/NodeCompIndexTestCase.java +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/node/NodeCompIndexTestCase.java @@ -1,5 +1,6 @@ package com.a.eye.skywalking.collector.worker.node; +import com.a.eye.skywalking.collector.worker.config.EsConfig; import java.io.IOException; import org.junit.Assert; import org.junit.Test; @@ -19,6 +20,12 @@ public class NodeCompIndexTestCase { @Test public void testBuilder() throws IOException { NodeCompIndex index = new NodeCompIndex(); - Assert.assertEquals("{\"properties\":{\"name\":{\"type\":\"string\",\"index\":\"not_analyzed\"},\"peers\":{\"type\":\"string\",\"index\":\"not_analyzed\"},\"aggId\":{\"type\":\"string\",\"index\":\"not_analyzed\"}}}", index.createMappingBuilder().string()); + Assert.assertEquals("{\"properties\":{\"name\":{\"type\":\"keyword\"},\"peers\":{\"type\":\"keyword\"},\"aggId\":{\"type\":\"keyword\"}}}", index.createMappingBuilder().string()); + } + + @Test + public void refreshInterval() { + NodeCompIndex index = new NodeCompIndex(); + Assert.assertEquals(EsConfig.Es.Index.RefreshInterval.NodeCompIndex.VALUE.intValue(), index.refreshInterval()); } } diff --git a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/node/NodeMappingIndexTestCase.java b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/node/NodeMappingIndexTestCase.java index b69d379a1..e7e015cf4 100644 --- a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/node/NodeMappingIndexTestCase.java +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/node/NodeMappingIndexTestCase.java @@ -1,5 +1,6 @@ package com.a.eye.skywalking.collector.worker.node; +import com.a.eye.skywalking.collector.worker.config.EsConfig; import org.junit.Assert; import org.junit.Test; @@ -22,4 +23,10 @@ public class NodeMappingIndexTestCase { NodeMappingIndex index = new NodeMappingIndex(); Assert.assertEquals("{\"properties\":{\"code\":{\"type\":\"string\",\"index\":\"not_analyzed\"},\"peers\":{\"type\":\"string\",\"index\":\"not_analyzed\"},\"aggId\":{\"type\":\"string\",\"index\":\"not_analyzed\"},\"timeSlice\":{\"type\":\"long\",\"index\":\"not_analyzed\"}}}", index.createMappingBuilder().string()); } + + @Test + public void refreshInterval() { + NodeMappingIndex index = new NodeMappingIndex(); + Assert.assertEquals(EsConfig.Es.Index.RefreshInterval.NodeMappingIndex.VALUE.intValue(), index.refreshInterval()); + } } diff --git a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/node/analysis/NodeAnalysisVerify.java b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/node/analysis/NodeAnalysisVerify.java index 6ea40d7eb..b2929c12e 100644 --- a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/node/analysis/NodeAnalysisVerify.java +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/node/analysis/NodeAnalysisVerify.java @@ -16,57 +16,57 @@ public enum NodeAnalysisVerify { Assert.assertEquals(9, recordDataList.size()); RecordData data_1 = RecordDataTool.INSTANCE.getRecord(recordDataList, timeSlice + "..-..[localhost:-1]"); - Assert.assertEquals("H2", data_1.getRecord().get("component").getAsString()); - Assert.assertEquals("[localhost:-1]", data_1.getRecord().get("peers").getAsString()); - Assert.assertEquals("[localhost:-1]", data_1.getRecord().get("aggId").getAsString()); - Assert.assertEquals(timeSlice, data_1.getRecord().get("timeSlice").getAsLong()); + Assert.assertEquals("H2", data_1.get().get("component").getAsString()); + Assert.assertEquals("[localhost:-1]", data_1.get().get("peers").getAsString()); + Assert.assertEquals("[localhost:-1]", data_1.get().get("aggId").getAsString()); + Assert.assertEquals(timeSlice, data_1.get().get("timeSlice").getAsLong()); RecordData data_2 = RecordDataTool.INSTANCE.getRecord(recordDataList, timeSlice + "..-..portal-service"); - Assert.assertEquals("Tomcat", data_2.getRecord().get("component").getAsString()); - Assert.assertEquals("portal-service", data_2.getRecord().get("peers").getAsString()); - Assert.assertEquals("portal-service", data_2.getRecord().get("aggId").getAsString()); - Assert.assertEquals(timeSlice, data_2.getRecord().get("timeSlice").getAsLong()); + Assert.assertEquals("Tomcat", data_2.get().get("component").getAsString()); + Assert.assertEquals("portal-service", data_2.get().get("peers").getAsString()); + Assert.assertEquals("portal-service", data_2.get().get("aggId").getAsString()); + Assert.assertEquals(timeSlice, data_2.get().get("timeSlice").getAsLong()); RecordData data_3 = RecordDataTool.INSTANCE.getRecord(recordDataList, timeSlice + "..-..persistence-service"); - Assert.assertEquals(false, data_3.getRecord().has("component")); - Assert.assertEquals("persistence-service", data_3.getRecord().get("peers").getAsString()); - Assert.assertEquals("persistence-service", data_3.getRecord().get("aggId").getAsString()); - Assert.assertEquals(timeSlice, data_3.getRecord().get("timeSlice").getAsLong()); + Assert.assertEquals(false, data_3.get().has("component")); + Assert.assertEquals("persistence-service", data_3.get().get("peers").getAsString()); + Assert.assertEquals("persistence-service", data_3.get().get("aggId").getAsString()); + Assert.assertEquals(timeSlice, data_3.get().get("timeSlice").getAsLong()); RecordData data_4 = RecordDataTool.INSTANCE.getRecord(recordDataList, timeSlice + "..-..[10.128.35.80:20880]"); - Assert.assertEquals("HttpClient", data_4.getRecord().get("component").getAsString()); - Assert.assertEquals("[10.128.35.80:20880]", data_4.getRecord().get("peers").getAsString()); - Assert.assertEquals("[10.128.35.80:20880]", data_4.getRecord().get("aggId").getAsString()); - Assert.assertEquals(timeSlice, data_4.getRecord().get("timeSlice").getAsLong()); + Assert.assertEquals("HttpClient", data_4.get().get("component").getAsString()); + Assert.assertEquals("[10.128.35.80:20880]", data_4.get().get("peers").getAsString()); + Assert.assertEquals("[10.128.35.80:20880]", data_4.get().get("aggId").getAsString()); + Assert.assertEquals(timeSlice, data_4.get().get("timeSlice").getAsLong()); RecordData data_5 = RecordDataTool.INSTANCE.getRecord(recordDataList, timeSlice + "..-..[127.0.0.1:6379]"); - Assert.assertEquals("Redis", data_5.getRecord().get("component").getAsString()); - Assert.assertEquals("[127.0.0.1:6379]", data_5.getRecord().get("peers").getAsString()); - Assert.assertEquals("[127.0.0.1:6379]", data_5.getRecord().get("aggId").getAsString()); - Assert.assertEquals(timeSlice, data_5.getRecord().get("timeSlice").getAsLong()); + Assert.assertEquals("Redis", data_5.get().get("component").getAsString()); + Assert.assertEquals("[127.0.0.1:6379]", data_5.get().get("peers").getAsString()); + Assert.assertEquals("[127.0.0.1:6379]", data_5.get().get("aggId").getAsString()); + Assert.assertEquals(timeSlice, data_5.get().get("timeSlice").getAsLong()); RecordData data_6 = RecordDataTool.INSTANCE.getRecord(recordDataList, timeSlice + "..-..[127.0.0.1:8002]"); - Assert.assertEquals("Motan", data_6.getRecord().get("component").getAsString()); - Assert.assertEquals("[127.0.0.1:8002]", data_6.getRecord().get("peers").getAsString()); - Assert.assertEquals("[127.0.0.1:8002]", data_6.getRecord().get("aggId").getAsString()); - Assert.assertEquals(timeSlice, data_6.getRecord().get("timeSlice").getAsLong()); + Assert.assertEquals("Motan", data_6.get().get("component").getAsString()); + Assert.assertEquals("[127.0.0.1:8002]", data_6.get().get("peers").getAsString()); + Assert.assertEquals("[127.0.0.1:8002]", data_6.get().get("aggId").getAsString()); + Assert.assertEquals(timeSlice, data_6.get().get("timeSlice").getAsLong()); RecordData data_7 = RecordDataTool.INSTANCE.getRecord(recordDataList, timeSlice + "..-..User"); - Assert.assertEquals(false, data_7.getRecord().has("component")); - Assert.assertEquals("User", data_7.getRecord().get("peers").getAsString()); - Assert.assertEquals("User", data_7.getRecord().get("aggId").getAsString()); - Assert.assertEquals(timeSlice, data_7.getRecord().get("timeSlice").getAsLong()); + Assert.assertEquals(false, data_7.get().has("component")); + Assert.assertEquals("User", data_7.get().get("peers").getAsString()); + Assert.assertEquals("User", data_7.get().get("aggId").getAsString()); + Assert.assertEquals(timeSlice, data_7.get().get("timeSlice").getAsLong()); RecordData data_8 = RecordDataTool.INSTANCE.getRecord(recordDataList, timeSlice + "..-..[127.0.0.1:3307]"); - Assert.assertEquals("Mysql", data_8.getRecord().get("component").getAsString()); - Assert.assertEquals("[127.0.0.1:3307]", data_8.getRecord().get("peers").getAsString()); - Assert.assertEquals("[127.0.0.1:3307]", data_8.getRecord().get("aggId").getAsString()); - Assert.assertEquals(timeSlice, data_8.getRecord().get("timeSlice").getAsLong()); + Assert.assertEquals("Mysql", data_8.get().get("component").getAsString()); + Assert.assertEquals("[127.0.0.1:3307]", data_8.get().get("peers").getAsString()); + Assert.assertEquals("[127.0.0.1:3307]", data_8.get().get("aggId").getAsString()); + Assert.assertEquals(timeSlice, data_8.get().get("timeSlice").getAsLong()); RecordData data_9 = RecordDataTool.INSTANCE.getRecord(recordDataList, timeSlice + "..-..cache-service"); - Assert.assertEquals(false, data_9.getRecord().has("component")); - Assert.assertEquals("cache-service", data_9.getRecord().get("peers").getAsString()); - Assert.assertEquals("cache-service", data_9.getRecord().get("aggId").getAsString()); - Assert.assertEquals(timeSlice, data_9.getRecord().get("timeSlice").getAsLong()); + Assert.assertEquals(false, data_9.get().has("component")); + Assert.assertEquals("cache-service", data_9.get().get("peers").getAsString()); + Assert.assertEquals("cache-service", data_9.get().get("aggId").getAsString()); + Assert.assertEquals(timeSlice, data_9.get().get("timeSlice").getAsLong()); } } diff --git a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/node/analysis/NodeCompAnalysisTestCase.java b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/node/analysis/NodeCompAnalysisTestCase.java index e0baa0428..af2fde41d 100644 --- a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/node/analysis/NodeCompAnalysisTestCase.java +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/node/analysis/NodeCompAnalysisTestCase.java @@ -64,12 +64,13 @@ public class NodeCompAnalysisTestCase { @Test public void testFactory() { - Assert.assertEquals(NodeCompAnalysis.class.getSimpleName(), NodeCompAnalysis.Factory.INSTANCE.role().roleName()); - Assert.assertEquals(NodeCompAnalysis.class.getSimpleName(), NodeCompAnalysis.Factory.INSTANCE.workerInstance(null).getClass().getSimpleName()); + NodeCompAnalysis.Factory factory = new NodeCompAnalysis.Factory(); + Assert.assertEquals(NodeCompAnalysis.class.getSimpleName(), factory.role().roleName()); + Assert.assertEquals(NodeCompAnalysis.class.getSimpleName(), factory.workerInstance(null).getClass().getSimpleName()); int testSize = 10; WorkerConfig.Queue.Node.NodeCompAnalysis.SIZE = testSize; - Assert.assertEquals(testSize, NodeCompAnalysis.Factory.INSTANCE.queueSize()); + Assert.assertEquals(testSize, factory.queueSize()); } String jsonFile = "/json/node/analysis/node_comp_analysis.json"; diff --git a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/node/analysis/NodeMappingDayAnalysisTestCase.java b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/node/analysis/NodeMappingDayAnalysisTestCase.java index 76395b303..47e4dabfd 100644 --- a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/node/analysis/NodeMappingDayAnalysisTestCase.java +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/node/analysis/NodeMappingDayAnalysisTestCase.java @@ -66,12 +66,13 @@ public class NodeMappingDayAnalysisTestCase { @Test public void testFactory() { - Assert.assertEquals(NodeMappingDayAnalysis.class.getSimpleName(), NodeMappingDayAnalysis.Factory.INSTANCE.role().roleName()); - Assert.assertEquals(NodeMappingDayAnalysis.class.getSimpleName(), NodeMappingDayAnalysis.Factory.INSTANCE.workerInstance(null).getClass().getSimpleName()); + NodeMappingDayAnalysis.Factory factory = new NodeMappingDayAnalysis.Factory(); + Assert.assertEquals(NodeMappingDayAnalysis.class.getSimpleName(), factory.role().roleName()); + Assert.assertEquals(NodeMappingDayAnalysis.class.getSimpleName(), factory.workerInstance(null).getClass().getSimpleName()); int testSize = 10; WorkerConfig.Queue.Node.NodeMappingDayAnalysis.SIZE = testSize; - Assert.assertEquals(testSize, NodeMappingDayAnalysis.Factory.INSTANCE.queueSize()); + Assert.assertEquals(testSize, factory.queueSize()); } @Test(expected = Exception.class) diff --git a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/node/analysis/NodeMappingHourAnalysisTestCase.java b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/node/analysis/NodeMappingHourAnalysisTestCase.java index 5dd0f7cd9..8b2e550bb 100644 --- a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/node/analysis/NodeMappingHourAnalysisTestCase.java +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/node/analysis/NodeMappingHourAnalysisTestCase.java @@ -63,12 +63,13 @@ public class NodeMappingHourAnalysisTestCase { @Test public void testFactory() { - Assert.assertEquals(NodeMappingHourAnalysis.class.getSimpleName(), NodeMappingHourAnalysis.Factory.INSTANCE.role().roleName()); - Assert.assertEquals(NodeMappingHourAnalysis.class.getSimpleName(), NodeMappingHourAnalysis.Factory.INSTANCE.workerInstance(null).getClass().getSimpleName()); + NodeMappingHourAnalysis.Factory factory = new NodeMappingHourAnalysis.Factory(); + Assert.assertEquals(NodeMappingHourAnalysis.class.getSimpleName(), factory.role().roleName()); + Assert.assertEquals(NodeMappingHourAnalysis.class.getSimpleName(), factory.workerInstance(null).getClass().getSimpleName()); int testSize = 10; WorkerConfig.Queue.Node.NodeMappingHourAnalysis.SIZE = testSize; - Assert.assertEquals(testSize, NodeMappingHourAnalysis.Factory.INSTANCE.queueSize()); + Assert.assertEquals(testSize, factory.queueSize()); } String jsonFile = "/json/node/analysis/node_mapping_hour_analysis.json"; diff --git a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/node/analysis/NodeMappingMinuteAnalysisTestCase.java b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/node/analysis/NodeMappingMinuteAnalysisTestCase.java index 6ab41c6b3..d6ecfdbf9 100644 --- a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/node/analysis/NodeMappingMinuteAnalysisTestCase.java +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/node/analysis/NodeMappingMinuteAnalysisTestCase.java @@ -63,12 +63,13 @@ public class NodeMappingMinuteAnalysisTestCase { @Test public void testFactory() { - Assert.assertEquals(NodeMappingMinuteAnalysis.class.getSimpleName(), NodeMappingMinuteAnalysis.Factory.INSTANCE.role().roleName()); - Assert.assertEquals(NodeMappingMinuteAnalysis.class.getSimpleName(), NodeMappingMinuteAnalysis.Factory.INSTANCE.workerInstance(null).getClass().getSimpleName()); + NodeMappingMinuteAnalysis.Factory factory = new NodeMappingMinuteAnalysis.Factory(); + Assert.assertEquals(NodeMappingMinuteAnalysis.class.getSimpleName(), factory.role().roleName()); + Assert.assertEquals(NodeMappingMinuteAnalysis.class.getSimpleName(), factory.workerInstance(null).getClass().getSimpleName()); int testSize = 10; WorkerConfig.Queue.Node.NodeMappingMinuteAnalysis.SIZE = testSize; - Assert.assertEquals(testSize, NodeMappingMinuteAnalysis.Factory.INSTANCE.queueSize()); + Assert.assertEquals(testSize, factory.queueSize()); } String jsonFile = "/json/node/analysis/node_mapping_minute_analysis.json"; diff --git a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/node/persistence/NodeCompAggTestCase.java b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/node/persistence/NodeCompAggTestCase.java index 6e0fd4f2a..1c6a63eb2 100644 --- a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/node/persistence/NodeCompAggTestCase.java +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/node/persistence/NodeCompAggTestCase.java @@ -62,28 +62,24 @@ public class NodeCompAggTestCase { @Test public void testFactory() { - Assert.assertEquals(NodeCompAgg.class.getSimpleName(), NodeCompAgg.Factory.INSTANCE.role().roleName()); - Assert.assertEquals(NodeCompAgg.class.getSimpleName(), NodeCompAgg.Factory.INSTANCE.workerInstance(null).getClass().getSimpleName()); + NodeCompAgg.Factory factory = new NodeCompAgg.Factory(); + Assert.assertEquals(NodeCompAgg.class.getSimpleName(), factory.role().roleName()); + Assert.assertEquals(NodeCompAgg.class.getSimpleName(), factory.workerInstance(null).getClass().getSimpleName()); int testSize = 10; WorkerConfig.WorkerNum.Node.NodeCompAgg.VALUE = testSize; - Assert.assertEquals(testSize, NodeCompAgg.Factory.INSTANCE.workerNum()); + Assert.assertEquals(testSize, factory.workerNum()); } @Test public void testPreStart() throws ProviderNotFoundException { - when(clusterWorkerContext.findProvider(NodeCompSave.Role.INSTANCE)).thenReturn(NodeCompSave.Factory.INSTANCE); + when(clusterWorkerContext.findProvider(NodeCompSave.Role.INSTANCE)).thenReturn(new NodeCompSave.Factory()); ArgumentCaptor argumentCaptor = ArgumentCaptor.forClass(NodeCompSave.Role.class); agg.preStart(); verify(clusterWorkerContext).findProvider(argumentCaptor.capture()); } - @Test(expected = IllegalArgumentException.class) - public void testOnWorkError() throws Exception { - agg.onWork(new Object()); - } - @Test public void testOnWork() throws Exception { RecordDataAggTools.INSTANCE.testOnWork(agg, recordDataAnswer); diff --git a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/node/persistence/NodeCompSaveTestCase.java b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/node/persistence/NodeCompSaveTestCase.java index e1ba4f8e2..f3bcea3fa 100644 --- a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/node/persistence/NodeCompSaveTestCase.java +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/node/persistence/NodeCompSaveTestCase.java @@ -3,7 +3,6 @@ package com.a.eye.skywalking.collector.worker.node.persistence; import com.a.eye.skywalking.collector.actor.ClusterWorkerContext; import com.a.eye.skywalking.collector.actor.LocalWorkerContext; import com.a.eye.skywalking.collector.actor.selector.HashCodeSelector; -import com.a.eye.skywalking.collector.worker.config.WorkerConfig; import com.a.eye.skywalking.collector.worker.node.NodeCompIndex; import org.junit.Assert; import org.junit.Before; @@ -46,11 +45,8 @@ public class NodeCompSaveTestCase { @Test public void testFactory() { - Assert.assertEquals(NodeCompSave.class.getSimpleName(), NodeCompSave.Factory.INSTANCE.role().roleName()); - Assert.assertEquals(NodeCompSave.class.getSimpleName(), NodeCompSave.Factory.INSTANCE.workerInstance(null).getClass().getSimpleName()); - - int testSize = 10; - WorkerConfig.Queue.Node.NodeCompSave.SIZE = testSize; - Assert.assertEquals(testSize, NodeCompSave.Factory.INSTANCE.queueSize()); + NodeCompSave.Factory factory = new NodeCompSave.Factory(); + Assert.assertEquals(NodeCompSave.class.getSimpleName(), factory.role().roleName()); + Assert.assertEquals(NodeCompSave.class.getSimpleName(), factory.workerInstance(null).getClass().getSimpleName()); } } diff --git a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/node/persistence/NodeCompWithTimeSliceUseDB.java b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/node/persistence/NodeCompWithTimeSliceUseDB.java index 6de68b3f7..14940cbd3 100644 --- a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/node/persistence/NodeCompWithTimeSliceUseDB.java +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/node/persistence/NodeCompWithTimeSliceUseDB.java @@ -23,11 +23,8 @@ public class NodeCompWithTimeSliceUseDB { nodeCompLoad.onWork(null, response); JsonArray nodeArray = response.get("result").getAsJsonArray(); - System.out.println(nodeArray.size()); - System.out.println(nodeArray.toString()); for (int i = 0; i < nodeArray.size(); i++) { JsonObject nodeJsonObj = nodeArray.get(i).getAsJsonObject(); - System.out.println(nodeJsonObj); } } } diff --git a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/node/persistence/NodeMappingDayAggTestCase.java b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/node/persistence/NodeMappingDayAggTestCase.java index b810950a6..894a62b37 100644 --- a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/node/persistence/NodeMappingDayAggTestCase.java +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/node/persistence/NodeMappingDayAggTestCase.java @@ -61,17 +61,18 @@ public class NodeMappingDayAggTestCase { @Test public void testFactory() { - Assert.assertEquals(NodeMappingDayAgg.class.getSimpleName(), NodeMappingDayAgg.Factory.INSTANCE.role().roleName()); - Assert.assertEquals(NodeMappingDayAgg.class.getSimpleName(), NodeMappingDayAgg.Factory.INSTANCE.workerInstance(null).getClass().getSimpleName()); + NodeMappingDayAgg.Factory factory = new NodeMappingDayAgg.Factory(); + Assert.assertEquals(NodeMappingDayAgg.class.getSimpleName(), factory.role().roleName()); + Assert.assertEquals(NodeMappingDayAgg.class.getSimpleName(), factory.workerInstance(null).getClass().getSimpleName()); int testSize = 10; WorkerConfig.WorkerNum.Node.NodeMappingDayAgg.VALUE = testSize; - Assert.assertEquals(testSize, NodeMappingDayAgg.Factory.INSTANCE.workerNum()); + Assert.assertEquals(testSize, factory.workerNum()); } @Test public void testPreStart() throws ProviderNotFoundException { - when(clusterWorkerContext.findProvider(NodeMappingDaySave.Role.INSTANCE)).thenReturn(NodeMappingDaySave.Factory.INSTANCE); + when(clusterWorkerContext.findProvider(NodeMappingDaySave.Role.INSTANCE)).thenReturn(new NodeMappingDaySave.Factory()); ArgumentCaptor argumentCaptor = ArgumentCaptor.forClass(NodeMappingDaySave.Role.class); agg.preStart(); @@ -82,9 +83,4 @@ public class NodeMappingDayAggTestCase { public void testOnWork() throws Exception { RecordDataAggTools.INSTANCE.testOnWork(agg, recordDataAnswer); } - - @Test(expected = IllegalArgumentException.class) - public void testOnWorkError() throws Exception { - agg.onWork(new Object()); - } } diff --git a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/node/persistence/NodeMappingDaySaveTestCase.java b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/node/persistence/NodeMappingDaySaveTestCase.java index 70c524616..84e554ea2 100644 --- a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/node/persistence/NodeMappingDaySaveTestCase.java +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/node/persistence/NodeMappingDaySaveTestCase.java @@ -3,7 +3,6 @@ package com.a.eye.skywalking.collector.worker.node.persistence; import com.a.eye.skywalking.collector.actor.ClusterWorkerContext; import com.a.eye.skywalking.collector.actor.LocalWorkerContext; import com.a.eye.skywalking.collector.actor.selector.HashCodeSelector; -import com.a.eye.skywalking.collector.worker.config.WorkerConfig; import com.a.eye.skywalking.collector.worker.node.NodeMappingIndex; import org.junit.Assert; import org.junit.Before; @@ -46,11 +45,8 @@ public class NodeMappingDaySaveTestCase { @Test public void testFactory() { - Assert.assertEquals(NodeMappingDaySave.class.getSimpleName(), NodeMappingDaySave.Factory.INSTANCE.role().roleName()); - Assert.assertEquals(NodeMappingDaySave.class.getSimpleName(), NodeMappingDaySave.Factory.INSTANCE.workerInstance(null).getClass().getSimpleName()); - - int testSize = 10; - WorkerConfig.Queue.Node.NodeMappingDaySave.SIZE = testSize; - Assert.assertEquals(testSize, NodeMappingDaySave.Factory.INSTANCE.queueSize()); + NodeMappingDaySave.Factory factory = new NodeMappingDaySave.Factory(); + Assert.assertEquals(NodeMappingDaySave.class.getSimpleName(), factory.role().roleName()); + Assert.assertEquals(NodeMappingDaySave.class.getSimpleName(), factory.workerInstance(null).getClass().getSimpleName()); } } diff --git a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/node/persistence/NodeMappingHourAggTestCase.java b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/node/persistence/NodeMappingHourAggTestCase.java index c1f781a20..a05933db9 100644 --- a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/node/persistence/NodeMappingHourAggTestCase.java +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/node/persistence/NodeMappingHourAggTestCase.java @@ -61,17 +61,18 @@ public class NodeMappingHourAggTestCase { @Test public void testFactory() { - Assert.assertEquals(NodeMappingHourAgg.class.getSimpleName(), NodeMappingHourAgg.Factory.INSTANCE.role().roleName()); - Assert.assertEquals(NodeMappingHourAgg.class.getSimpleName(), NodeMappingHourAgg.Factory.INSTANCE.workerInstance(null).getClass().getSimpleName()); + NodeMappingHourAgg.Factory factory = new NodeMappingHourAgg.Factory(); + Assert.assertEquals(NodeMappingHourAgg.class.getSimpleName(), factory.role().roleName()); + Assert.assertEquals(NodeMappingHourAgg.class.getSimpleName(), factory.workerInstance(null).getClass().getSimpleName()); int testSize = 10; WorkerConfig.WorkerNum.Node.NodeMappingHourAgg.VALUE = testSize; - Assert.assertEquals(testSize, NodeMappingHourAgg.Factory.INSTANCE.workerNum()); + Assert.assertEquals(testSize, factory.workerNum()); } @Test public void testPreStart() throws ProviderNotFoundException { - when(clusterWorkerContext.findProvider(NodeMappingHourSave.Role.INSTANCE)).thenReturn(NodeMappingHourSave.Factory.INSTANCE); + when(clusterWorkerContext.findProvider(NodeMappingHourSave.Role.INSTANCE)).thenReturn(new NodeMappingHourSave.Factory()); ArgumentCaptor argumentCaptor = ArgumentCaptor.forClass(NodeMappingHourSave.Role.class); agg.preStart(); @@ -82,9 +83,4 @@ public class NodeMappingHourAggTestCase { public void testOnWork() throws Exception { RecordDataAggTools.INSTANCE.testOnWork(agg, recordDataAnswer); } - - @Test(expected = IllegalArgumentException.class) - public void testOnWorkError() throws Exception { - agg.onWork(new Object()); - } } diff --git a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/node/persistence/NodeMappingHourSaveTestCase.java b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/node/persistence/NodeMappingHourSaveTestCase.java index 9d3425d98..879299f99 100644 --- a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/node/persistence/NodeMappingHourSaveTestCase.java +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/node/persistence/NodeMappingHourSaveTestCase.java @@ -3,7 +3,6 @@ package com.a.eye.skywalking.collector.worker.node.persistence; import com.a.eye.skywalking.collector.actor.ClusterWorkerContext; import com.a.eye.skywalking.collector.actor.LocalWorkerContext; import com.a.eye.skywalking.collector.actor.selector.HashCodeSelector; -import com.a.eye.skywalking.collector.worker.config.WorkerConfig; import com.a.eye.skywalking.collector.worker.node.NodeMappingIndex; import org.junit.Assert; import org.junit.Before; @@ -46,11 +45,8 @@ public class NodeMappingHourSaveTestCase { @Test public void testFactory() { - Assert.assertEquals(NodeMappingHourSave.class.getSimpleName(), NodeMappingHourSave.Factory.INSTANCE.role().roleName()); - Assert.assertEquals(NodeMappingHourSave.class.getSimpleName(), NodeMappingHourSave.Factory.INSTANCE.workerInstance(null).getClass().getSimpleName()); - - int testSize = 10; - WorkerConfig.Queue.Node.NodeMappingHourSave.SIZE = testSize; - Assert.assertEquals(testSize, NodeMappingHourSave.Factory.INSTANCE.queueSize()); + NodeMappingHourSave.Factory factory = new NodeMappingHourSave.Factory(); + Assert.assertEquals(NodeMappingHourSave.class.getSimpleName(), factory.role().roleName()); + Assert.assertEquals(NodeMappingHourSave.class.getSimpleName(), factory.workerInstance(null).getClass().getSimpleName()); } } diff --git a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/node/persistence/NodeMappingMinuteAggTestCase.java b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/node/persistence/NodeMappingMinuteAggTestCase.java index 26311b8f5..afd7b6ed1 100644 --- a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/node/persistence/NodeMappingMinuteAggTestCase.java +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/node/persistence/NodeMappingMinuteAggTestCase.java @@ -61,17 +61,18 @@ public class NodeMappingMinuteAggTestCase { @Test public void testFactory() { - Assert.assertEquals(NodeMappingMinuteAgg.class.getSimpleName(), NodeMappingMinuteAgg.Factory.INSTANCE.role().roleName()); - Assert.assertEquals(NodeMappingMinuteAgg.class.getSimpleName(), NodeMappingMinuteAgg.Factory.INSTANCE.workerInstance(null).getClass().getSimpleName()); + NodeMappingMinuteAgg.Factory factory = new NodeMappingMinuteAgg.Factory(); + Assert.assertEquals(NodeMappingMinuteAgg.class.getSimpleName(), factory.role().roleName()); + Assert.assertEquals(NodeMappingMinuteAgg.class.getSimpleName(), factory.workerInstance(null).getClass().getSimpleName()); int testSize = 10; WorkerConfig.WorkerNum.Node.NodeMappingMinuteAgg.VALUE = testSize; - Assert.assertEquals(testSize, NodeMappingMinuteAgg.Factory.INSTANCE.workerNum()); + Assert.assertEquals(testSize, factory.workerNum()); } @Test public void testPreStart() throws ProviderNotFoundException { - when(clusterWorkerContext.findProvider(NodeMappingMinuteSave.Role.INSTANCE)).thenReturn(NodeMappingMinuteSave.Factory.INSTANCE); + when(clusterWorkerContext.findProvider(NodeMappingMinuteSave.Role.INSTANCE)).thenReturn(new NodeMappingMinuteSave.Factory()); ArgumentCaptor argumentCaptor = ArgumentCaptor.forClass(NodeMappingMinuteSave.Role.class); agg.preStart(); @@ -82,9 +83,4 @@ public class NodeMappingMinuteAggTestCase { public void testOnWork() throws Exception { RecordDataAggTools.INSTANCE.testOnWork(agg, recordDataAnswer); } - - @Test(expected = IllegalArgumentException.class) - public void testOnWorkError() throws Exception { - agg.onWork(new Object()); - } } diff --git a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/node/persistence/NodeMappingMinuteSaveTestCase.java b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/node/persistence/NodeMappingMinuteSaveTestCase.java index 08970d881..644df5434 100644 --- a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/node/persistence/NodeMappingMinuteSaveTestCase.java +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/node/persistence/NodeMappingMinuteSaveTestCase.java @@ -3,7 +3,6 @@ package com.a.eye.skywalking.collector.worker.node.persistence; import com.a.eye.skywalking.collector.actor.ClusterWorkerContext; import com.a.eye.skywalking.collector.actor.LocalWorkerContext; import com.a.eye.skywalking.collector.actor.selector.HashCodeSelector; -import com.a.eye.skywalking.collector.worker.config.WorkerConfig; import com.a.eye.skywalking.collector.worker.node.NodeMappingIndex; import org.junit.Assert; import org.junit.Before; @@ -46,11 +45,8 @@ public class NodeMappingMinuteSaveTestCase { @Test public void testFactory() { - Assert.assertEquals(NodeMappingMinuteSave.class.getSimpleName(), NodeMappingMinuteSave.Factory.INSTANCE.role().roleName()); - Assert.assertEquals(NodeMappingMinuteSave.class.getSimpleName(), NodeMappingMinuteSave.Factory.INSTANCE.workerInstance(null).getClass().getSimpleName()); - - int testSize = 10; - WorkerConfig.Queue.Node.NodeMappingMinuteSave.SIZE = testSize; - Assert.assertEquals(testSize, NodeMappingMinuteSave.Factory.INSTANCE.queueSize()); + NodeMappingMinuteSave.Factory factory = new NodeMappingMinuteSave.Factory(); + Assert.assertEquals(NodeMappingMinuteSave.class.getSimpleName(), factory.role().roleName()); + Assert.assertEquals(NodeMappingMinuteSave.class.getSimpleName(), factory.workerInstance(null).getClass().getSimpleName()); } } diff --git a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/node/persistence/NodeMappingSearchWithTimeSliceUseDB.java b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/node/persistence/NodeMappingSearchWithTimeSliceUseDB.java index d45b14e96..3bddfbe64 100644 --- a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/node/persistence/NodeMappingSearchWithTimeSliceUseDB.java +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/node/persistence/NodeMappingSearchWithTimeSliceUseDB.java @@ -28,11 +28,8 @@ public class NodeMappingSearchWithTimeSliceUseDB { nodeMappingSearch.onWork(requestEntity, response); JsonArray nodeArray = response.get("result").getAsJsonArray(); - System.out.println(nodeArray.size()); - System.out.println(nodeArray.toString()); for (int i = 0; i < nodeArray.size(); i++) { JsonObject nodeJsonObj = nodeArray.get(i).getAsJsonObject(); - System.out.println(nodeJsonObj); } } } diff --git a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/noderef/NodeRefIndexTestCase.java b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/noderef/NodeRefIndexTestCase.java index 3e7c2f710..edc3080d6 100644 --- a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/noderef/NodeRefIndexTestCase.java +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/noderef/NodeRefIndexTestCase.java @@ -1,11 +1,10 @@ package com.a.eye.skywalking.collector.worker.noderef; -import com.a.eye.skywalking.collector.worker.globaltrace.GlobalTraceIndex; +import com.a.eye.skywalking.collector.worker.config.EsConfig; +import java.io.IOException; import org.junit.Assert; import org.junit.Test; -import java.io.IOException; - /** * @author pengys5 */ @@ -21,6 +20,12 @@ public class NodeRefIndexTestCase { @Test public void testBuilder() throws IOException { NodeRefIndex index = new NodeRefIndex(); - Assert.assertEquals("{\"properties\":{\"front\":{\"type\":\"string\",\"index\":\"not_analyzed\"},\"frontIsRealCode\":{\"type\":\"boolean\",\"index\":\"not_analyzed\"},\"behind\":{\"type\":\"string\",\"index\":\"not_analyzed\"},\"behindIsRealCode\":{\"type\":\"boolean\",\"index\":\"not_analyzed\"},\"aggId\":{\"type\":\"string\",\"index\":\"not_analyzed\"},\"timeSlice\":{\"type\":\"long\",\"index\":\"not_analyzed\"}}}", index.createMappingBuilder().string()); + Assert.assertEquals("{\"properties\":{\"front\":{\"type\":\"keyword\"},\"frontIsRealCode\":{\"type\":\"boolean\",\"index\":\"not_analyzed\"},\"behind\":{\"type\":\"keyword\"},\"behindIsRealCode\":{\"type\":\"boolean\",\"index\":\"not_analyzed\"},\"aggId\":{\"type\":\"keyword\"},\"timeSlice\":{\"type\":\"long\",\"index\":\"not_analyzed\"}}}", index.createMappingBuilder().string()); + } + + @Test + public void refreshInterval() { + NodeRefIndex index = new NodeRefIndex(); + Assert.assertEquals(EsConfig.Es.Index.RefreshInterval.NodeRefIndex.VALUE.intValue(), index.refreshInterval()); } } diff --git a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/noderef/NodeRefResSumGetGroupWithTimeSliceTestCase.java b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/noderef/NodeRefResSumGetGroupWithTimeSliceTestCase.java index be821c2a8..a9e3599cf 100644 --- a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/noderef/NodeRefResSumGetGroupWithTimeSliceTestCase.java +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/noderef/NodeRefResSumGetGroupWithTimeSliceTestCase.java @@ -63,14 +63,15 @@ public class NodeRefResSumGetGroupWithTimeSliceTestCase { @Test public void testFactory() { - Assert.assertEquals(NodeRefResSumGetGroupWithTimeSlice.class.getSimpleName(), NodeRefResSumGetGroupWithTimeSlice.Factory.INSTANCE.role().roleName()); - Assert.assertEquals(NodeRefResSumGetGroupWithTimeSlice.class.getSimpleName(), NodeRefResSumGetGroupWithTimeSlice.Factory.INSTANCE.workerInstance(null).getClass().getSimpleName()); - Assert.assertEquals("/nodeRef/resSum/groupTimeSlice", NodeRefResSumGetGroupWithTimeSlice.Factory.INSTANCE.servletPath()); + NodeRefResSumGetGroupWithTimeSlice.Factory factory = new NodeRefResSumGetGroupWithTimeSlice.Factory(); + Assert.assertEquals(NodeRefResSumGetGroupWithTimeSlice.class.getSimpleName(), factory.role().roleName()); + Assert.assertEquals(NodeRefResSumGetGroupWithTimeSlice.class.getSimpleName(), factory.workerInstance(null).getClass().getSimpleName()); + Assert.assertEquals("/nodeRef/resSum/groupTimeSlice", factory.servletPath()); } @Test public void testPreStart() throws ProviderNotFoundException { - when(clusterWorkerContext.findProvider(NodeRefResSumGroupWithTimeSlice.WorkerRole.INSTANCE)).thenReturn(NodeRefResSumGroupWithTimeSlice.Factory.INSTANCE); + when(clusterWorkerContext.findProvider(NodeRefResSumGroupWithTimeSlice.WorkerRole.INSTANCE)).thenReturn(new NodeRefResSumGroupWithTimeSlice.Factory()); ArgumentCaptor argumentCaptor = ArgumentCaptor.forClass(NodeRefResSumGroupWithTimeSlice.WorkerRole.class); getObj.preStart(); @@ -128,7 +129,7 @@ public class NodeRefResSumGetGroupWithTimeSliceTestCase { @Override public Object answer(InvocationOnMock invocation) throws Throwable { - NodeRefResSumGroupWithTimeSlice.RequestEntity requestEntity = (NodeRefResSumGroupWithTimeSlice.RequestEntity)invocation.getArguments()[0]; + NodeRefResSumGroupWithTimeSlice.RequestEntity requestEntity = (NodeRefResSumGroupWithTimeSlice.RequestEntity) invocation.getArguments()[0]; Assert.assertEquals(100L, requestEntity.getStartTime()); Assert.assertEquals(200L, requestEntity.getEndTime()); Assert.assertEquals("minute", requestEntity.getSliceType()); diff --git a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/noderef/NodeRefResSumIndexTestCase.java b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/noderef/NodeRefResSumIndexTestCase.java index 5042572ca..d32c66556 100644 --- a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/noderef/NodeRefResSumIndexTestCase.java +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/noderef/NodeRefResSumIndexTestCase.java @@ -1,5 +1,6 @@ package com.a.eye.skywalking.collector.worker.noderef; +import com.a.eye.skywalking.collector.worker.config.EsConfig; import org.junit.Assert; import org.junit.Test; @@ -20,6 +21,12 @@ public class NodeRefResSumIndexTestCase { @Test public void testBuilder() throws IOException { NodeRefResSumIndex index = new NodeRefResSumIndex(); - Assert.assertEquals("{\"properties\":{\"oneSecondLess\":{\"type\":\"long\",\"index\":\"not_analyzed\"},\"threeSecondLess\":{\"type\":\"long\",\"index\":\"not_analyzed\"},\"fiveSecondLess\":{\"type\":\"long\",\"index\":\"not_analyzed\"},\"fiveSecondGreater\":{\"type\":\"long\",\"index\":\"not_analyzed\"},\"error\":{\"type\":\"long\",\"index\":\"not_analyzed\"},\"summary\":{\"type\":\"long\",\"index\":\"not_analyzed\"},\"aggId\":{\"type\":\"string\",\"index\":\"not_analyzed\"},\"timeSlice\":{\"type\":\"long\",\"index\":\"not_analyzed\"}}}", index.createMappingBuilder().string()); + Assert.assertEquals("{\"properties\":{\"oneSecondLess\":{\"type\":\"long\",\"index\":\"not_analyzed\"},\"threeSecondLess\":{\"type\":\"long\",\"index\":\"not_analyzed\"},\"fiveSecondLess\":{\"type\":\"long\",\"index\":\"not_analyzed\"},\"fiveSecondGreater\":{\"type\":\"long\",\"index\":\"not_analyzed\"},\"error\":{\"type\":\"long\",\"index\":\"not_analyzed\"},\"summary\":{\"type\":\"long\",\"index\":\"not_analyzed\"},\"aggId\":{\"type\":\"keyword\"},\"timeSlice\":{\"type\":\"long\",\"index\":\"not_analyzed\"}}}", index.createMappingBuilder().string()); + } + + @Test + public void refreshInterval() { + NodeRefResSumIndex index = new NodeRefResSumIndex(); + Assert.assertEquals(EsConfig.Es.Index.RefreshInterval.NodeRefResSumIndex.VALUE.intValue(), index.refreshInterval()); } } diff --git a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/noderef/analysis/AbstractNodeRefResSumAnalysisTestCase.java b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/noderef/analysis/AbstractNodeRefResSumAnalysisTestCase.java new file mode 100644 index 000000000..9c61e0e0b --- /dev/null +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/noderef/analysis/AbstractNodeRefResSumAnalysisTestCase.java @@ -0,0 +1,95 @@ +package com.a.eye.skywalking.collector.worker.noderef.analysis; + +import com.a.eye.skywalking.collector.actor.ClusterWorkerContext; +import com.a.eye.skywalking.collector.actor.LocalWorkerContext; +import com.a.eye.skywalking.collector.actor.WorkerRefs; +import com.a.eye.skywalking.collector.actor.selector.RollingSelector; +import com.a.eye.skywalking.collector.actor.selector.WorkerSelector; +import com.a.eye.skywalking.collector.worker.Const; +import com.a.eye.skywalking.collector.worker.storage.MetricAnalysisData; +import java.lang.reflect.Field; +import org.junit.Assert; +import org.junit.Test; + +/** + * @author pengys5 + */ +public class AbstractNodeRefResSumAnalysisTestCase { + + @Test + public void analyseResSum() throws Exception { + Impl impl = new Impl(Role.INSTANCE, null, null); + + AbstractNodeRefResSumAnalysis.NodeRefResRecord record = + new AbstractNodeRefResSumAnalysis.NodeRefResRecord(1, 2, 3, 4); + record.setStartTime(10); + record.setEndTime(20); + record.setError(false); + + String id = 2017 + Const.ID_SPLIT + "A" + Const.ID_SPLIT + "B"; + record.setNodeRefId(id); + Assert.assertEquals(id, record.getNodeRefId()); + + impl.analyseResSum(record); + + record.setStartTime(0); + record.setEndTime(2000); + record.setError(false); + impl.analyseResSum(record); + + record.setStartTime(0); + record.setEndTime(4000); + record.setError(false); + impl.analyseResSum(record); + + record.setStartTime(0); + record.setEndTime(6000); + record.setError(false); + impl.analyseResSum(record); + + record.setStartTime(0); + record.setEndTime(6000); + record.setError(true); + impl.analyseResSum(record); + + Field testAField = impl.getClass().getSuperclass().getSuperclass().getDeclaredField("metricAnalysisData"); + testAField.setAccessible(true); + + MetricAnalysisData metricAnalysisData = (MetricAnalysisData)testAField.get(impl); + + Assert.assertEquals(1L, metricAnalysisData.asMap().get("2017..-..A..-..B").asMap().get("oneSecondLess")); + Assert.assertEquals(1L, metricAnalysisData.asMap().get("2017..-..A..-..B").asMap().get("threeSecondLess")); + Assert.assertEquals(1L, metricAnalysisData.asMap().get("2017..-..A..-..B").asMap().get("fiveSecondLess")); + Assert.assertEquals(1L, metricAnalysisData.asMap().get("2017..-..A..-..B").asMap().get("fiveSecondGreater")); + Assert.assertEquals(1L, metricAnalysisData.asMap().get("2017..-..A..-..B").asMap().get("error")); + Assert.assertEquals(5L, metricAnalysisData.asMap().get("2017..-..A..-..B").asMap().get("summary")); + } + + class Impl extends AbstractNodeRefResSumAnalysis { + Impl(Role role, ClusterWorkerContext clusterContext, LocalWorkerContext selfContext) { + super(role, clusterContext, selfContext); + } + + @Override public void analyse(Object message) throws Exception { + + } + + @Override protected WorkerRefs aggWorkRefs() { + return null; + } + } + + enum Role implements com.a.eye.skywalking.collector.actor.Role { + INSTANCE; + + @Override + public String roleName() { + return Impl.class.getSimpleName(); + } + + @Override + public WorkerSelector workerSelector() { + return new RollingSelector(); + } + } +} diff --git a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/noderef/analysis/NodeRefAnalyse.java b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/noderef/analysis/NodeRefAnalyse.java index 829af5253..8a176d516 100644 --- a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/noderef/analysis/NodeRefAnalyse.java +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/noderef/analysis/NodeRefAnalyse.java @@ -26,9 +26,6 @@ public enum NodeRefAnalyse { Gson gson = new Gson(); String recordJsonStr = gson.toJson(recordAnswer.getNodeRefResRecordList()); - System.out.println(recordJsonStr); - - System.out.println("--------------------------------"); JsonArray recordJsonArray = gson.fromJson(recordJsonStr, JsonArray.class); JsonDataMerge.INSTANCE.merge(resSumJsonFile, recordJsonArray); } diff --git a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/noderef/analysis/NodeRefDayAnalysisTestCase.java b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/noderef/analysis/NodeRefDayAnalysisTestCase.java index e01e49cfe..ecacd9426 100644 --- a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/noderef/analysis/NodeRefDayAnalysisTestCase.java +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/noderef/analysis/NodeRefDayAnalysisTestCase.java @@ -68,12 +68,13 @@ public class NodeRefDayAnalysisTestCase { @Test public void testFactory() { - Assert.assertEquals(NodeRefDayAnalysis.class.getSimpleName(), NodeRefDayAnalysis.Factory.INSTANCE.role().roleName()); - Assert.assertEquals(NodeRefDayAnalysis.class.getSimpleName(), NodeRefDayAnalysis.Factory.INSTANCE.workerInstance(null).getClass().getSimpleName()); + NodeRefDayAnalysis.Factory factory = new NodeRefDayAnalysis.Factory(); + Assert.assertEquals(NodeRefDayAnalysis.class.getSimpleName(), factory.role().roleName()); + Assert.assertEquals(NodeRefDayAnalysis.class.getSimpleName(), factory.workerInstance(null).getClass().getSimpleName()); int testSize = 10; WorkerConfig.Queue.NodeRef.NodeRefDayAnalysis.SIZE = testSize; - Assert.assertEquals(testSize, NodeRefDayAnalysis.Factory.INSTANCE.queueSize()); + Assert.assertEquals(testSize, factory.queueSize()); } String jsonFile = "/json/noderef/analysis/noderef_day_analysis.json"; @@ -86,7 +87,7 @@ public class NodeRefDayAnalysisTestCase { @Test public void testPreStart() throws ProviderNotFoundException { - Mockito.when(clusterWorkerContext.findProvider(NodeRefResSumDayAnalysis.Role.INSTANCE)).thenReturn(NodeRefResSumDayAnalysis.Factory.INSTANCE); + Mockito.when(clusterWorkerContext.findProvider(NodeRefResSumDayAnalysis.Role.INSTANCE)).thenReturn(new NodeRefResSumDayAnalysis.Factory()); ArgumentCaptor argumentCaptor = ArgumentCaptor.forClass(NodeRefResSumDayAnalysis.Role.class); analysis.preStart(); diff --git a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/noderef/analysis/NodeRefHourAnalysisTestCase.java b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/noderef/analysis/NodeRefHourAnalysisTestCase.java index 798b3946e..c46c74319 100644 --- a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/noderef/analysis/NodeRefHourAnalysisTestCase.java +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/noderef/analysis/NodeRefHourAnalysisTestCase.java @@ -67,12 +67,13 @@ public class NodeRefHourAnalysisTestCase { @Test public void testFactory() { - Assert.assertEquals(NodeRefHourAnalysis.class.getSimpleName(), NodeRefHourAnalysis.Factory.INSTANCE.role().roleName()); - Assert.assertEquals(NodeRefHourAnalysis.class.getSimpleName(), NodeRefHourAnalysis.Factory.INSTANCE.workerInstance(null).getClass().getSimpleName()); + NodeRefHourAnalysis.Factory factory = new NodeRefHourAnalysis.Factory(); + Assert.assertEquals(NodeRefHourAnalysis.class.getSimpleName(), factory.role().roleName()); + Assert.assertEquals(NodeRefHourAnalysis.class.getSimpleName(), factory.workerInstance(null).getClass().getSimpleName()); int testSize = 10; WorkerConfig.Queue.NodeRef.NodeRefHourAnalysis.SIZE = testSize; - Assert.assertEquals(testSize, NodeRefHourAnalysis.Factory.INSTANCE.queueSize()); + Assert.assertEquals(testSize, factory.queueSize()); } String jsonFile = "/json/noderef/analysis/noderef_hour_analysis.json"; @@ -85,7 +86,7 @@ public class NodeRefHourAnalysisTestCase { @Test public void testPreStart() throws ProviderNotFoundException { - Mockito.when(clusterWorkerContext.findProvider(NodeRefResSumHourAnalysis.Role.INSTANCE)).thenReturn(NodeRefResSumHourAnalysis.Factory.INSTANCE); + Mockito.when(clusterWorkerContext.findProvider(NodeRefResSumHourAnalysis.Role.INSTANCE)).thenReturn(new NodeRefResSumHourAnalysis.Factory()); ArgumentCaptor argumentCaptor = ArgumentCaptor.forClass(NodeRefResSumHourAnalysis.Role.class); analysis.preStart(); diff --git a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/noderef/analysis/NodeRefMinuteAnalysisTestCase.java b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/noderef/analysis/NodeRefMinuteAnalysisTestCase.java index 39f5be5e9..39eba7e1f 100644 --- a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/noderef/analysis/NodeRefMinuteAnalysisTestCase.java +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/noderef/analysis/NodeRefMinuteAnalysisTestCase.java @@ -68,12 +68,13 @@ public class NodeRefMinuteAnalysisTestCase { @Test public void testFactory() { - Assert.assertEquals(NodeRefMinuteAnalysis.class.getSimpleName(), NodeRefMinuteAnalysis.Factory.INSTANCE.role().roleName()); - Assert.assertEquals(NodeRefMinuteAnalysis.class.getSimpleName(), NodeRefMinuteAnalysis.Factory.INSTANCE.workerInstance(null).getClass().getSimpleName()); + NodeRefMinuteAnalysis.Factory factory = new NodeRefMinuteAnalysis.Factory(); + Assert.assertEquals(NodeRefMinuteAnalysis.class.getSimpleName(), factory.role().roleName()); + Assert.assertEquals(NodeRefMinuteAnalysis.class.getSimpleName(), factory.workerInstance(null).getClass().getSimpleName()); int testSize = 10; WorkerConfig.Queue.NodeRef.NodeRefMinuteAnalysis.SIZE = testSize; - Assert.assertEquals(testSize, NodeRefMinuteAnalysis.Factory.INSTANCE.queueSize()); + Assert.assertEquals(testSize, factory.queueSize()); } String jsonFile = "/json/noderef/analysis/noderef_minute_analysis.json"; @@ -86,7 +87,7 @@ public class NodeRefMinuteAnalysisTestCase { @Test public void testPreStart() throws ProviderNotFoundException { - Mockito.when(clusterWorkerContext.findProvider(NodeRefResSumMinuteAnalysis.Role.INSTANCE)).thenReturn(NodeRefResSumMinuteAnalysis.Factory.INSTANCE); + Mockito.when(clusterWorkerContext.findProvider(NodeRefResSumMinuteAnalysis.Role.INSTANCE)).thenReturn(new NodeRefResSumMinuteAnalysis.Factory()); ArgumentCaptor argumentCaptor = ArgumentCaptor.forClass(NodeRefResSumMinuteAnalysis.Role.class); analysis.preStart(); diff --git a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/noderef/analysis/NodeRefResRecordAnswer.java b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/noderef/analysis/NodeRefResRecordAnswer.java index 569459417..36b9593bb 100644 --- a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/noderef/analysis/NodeRefResRecordAnswer.java +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/noderef/analysis/NodeRefResRecordAnswer.java @@ -21,9 +21,6 @@ public class NodeRefResRecordAnswer implements Answer { AbstractNodeRefResSumAnalysis.NodeRefResRecord nodeRefResRecord = (AbstractNodeRefResSumAnalysis.NodeRefResRecord)invocation.getArguments()[0]; String recordJsonStr = gson.toJson(nodeRefResRecord); JsonObject recordJsonObj = gson.fromJson(recordJsonStr, JsonObject.class); - - System.out.printf("NodeRefId: %s \n", nodeRefResRecord.getNodeRefId()); - System.out.printf("NodeRefResRecord data: %s \n", recordJsonStr); nodeRefResRecordList.add(recordJsonObj); return null; } diff --git a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/noderef/analysis/NodeRefResSumDayAnalysisTestCase.java b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/noderef/analysis/NodeRefResSumDayAnalysisTestCase.java index a46fbf849..d7dfdef9d 100644 --- a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/noderef/analysis/NodeRefResSumDayAnalysisTestCase.java +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/noderef/analysis/NodeRefResSumDayAnalysisTestCase.java @@ -59,12 +59,13 @@ public class NodeRefResSumDayAnalysisTestCase { @Test public void testFactory() { - Assert.assertEquals(NodeRefResSumDayAnalysis.class.getSimpleName(), NodeRefResSumDayAnalysis.Factory.INSTANCE.role().roleName()); - Assert.assertEquals(NodeRefResSumDayAnalysis.class.getSimpleName(), NodeRefResSumDayAnalysis.Factory.INSTANCE.workerInstance(null).getClass().getSimpleName()); + NodeRefResSumDayAnalysis.Factory factory = new NodeRefResSumDayAnalysis.Factory(); + Assert.assertEquals(NodeRefResSumDayAnalysis.class.getSimpleName(), factory.role().roleName()); + Assert.assertEquals(NodeRefResSumDayAnalysis.class.getSimpleName(), factory.workerInstance(null).getClass().getSimpleName()); int testSize = 10; WorkerConfig.Queue.NodeRef.NodeRefResSumDayAnalysis.SIZE = testSize; - Assert.assertEquals(testSize, NodeRefResSumDayAnalysis.Factory.INSTANCE.queueSize()); + Assert.assertEquals(testSize, factory.queueSize()); } String jsonFile = "/json/noderef/analysis/noderef_ressum_day_analysis.json"; diff --git a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/noderef/analysis/NodeRefResSumHourAnalysisTestCase.java b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/noderef/analysis/NodeRefResSumHourAnalysisTestCase.java index 335f5d2ed..703454bbe 100644 --- a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/noderef/analysis/NodeRefResSumHourAnalysisTestCase.java +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/noderef/analysis/NodeRefResSumHourAnalysisTestCase.java @@ -59,12 +59,13 @@ public class NodeRefResSumHourAnalysisTestCase { @Test public void testFactory() { - Assert.assertEquals(NodeRefResSumHourAnalysis.class.getSimpleName(), NodeRefResSumHourAnalysis.Factory.INSTANCE.role().roleName()); - Assert.assertEquals(NodeRefResSumHourAnalysis.class.getSimpleName(), NodeRefResSumHourAnalysis.Factory.INSTANCE.workerInstance(null).getClass().getSimpleName()); + NodeRefResSumHourAnalysis.Factory factory = new NodeRefResSumHourAnalysis.Factory(); + Assert.assertEquals(NodeRefResSumHourAnalysis.class.getSimpleName(), factory.role().roleName()); + Assert.assertEquals(NodeRefResSumHourAnalysis.class.getSimpleName(), factory.workerInstance(null).getClass().getSimpleName()); int testSize = 10; WorkerConfig.Queue.NodeRef.NodeRefResSumHourAnalysis.SIZE = testSize; - Assert.assertEquals(testSize, NodeRefResSumHourAnalysis.Factory.INSTANCE.queueSize()); + Assert.assertEquals(testSize, factory.queueSize()); } String jsonFile = "/json/noderef/analysis/noderef_ressum_hour_analysis.json"; diff --git a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/noderef/analysis/NodeRefResSumMinuteAnalysisTestCase.java b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/noderef/analysis/NodeRefResSumMinuteAnalysisTestCase.java index e8921a40d..dfd079a63 100644 --- a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/noderef/analysis/NodeRefResSumMinuteAnalysisTestCase.java +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/noderef/analysis/NodeRefResSumMinuteAnalysisTestCase.java @@ -59,12 +59,13 @@ public class NodeRefResSumMinuteAnalysisTestCase { @Test public void testFactory() { - Assert.assertEquals(NodeRefResSumMinuteAnalysis.class.getSimpleName(), NodeRefResSumMinuteAnalysis.Factory.INSTANCE.role().roleName()); - Assert.assertEquals(NodeRefResSumMinuteAnalysis.class.getSimpleName(), NodeRefResSumMinuteAnalysis.Factory.INSTANCE.workerInstance(null).getClass().getSimpleName()); + NodeRefResSumMinuteAnalysis.Factory factory = new NodeRefResSumMinuteAnalysis.Factory(); + Assert.assertEquals(NodeRefResSumMinuteAnalysis.class.getSimpleName(), factory.role().roleName()); + Assert.assertEquals(NodeRefResSumMinuteAnalysis.class.getSimpleName(), factory.workerInstance(null).getClass().getSimpleName()); int testSize = 10; WorkerConfig.Queue.NodeRef.NodeRefResSumMinuteAnalysis.SIZE = testSize; - Assert.assertEquals(testSize, NodeRefResSumMinuteAnalysis.Factory.INSTANCE.queueSize()); + Assert.assertEquals(testSize, factory.queueSize()); } String jsonFile = "/json/noderef/analysis/noderef_ressum_minute_analysis.json"; diff --git a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/noderef/persistence/NodeRefDayAggTestCase.java b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/noderef/persistence/NodeRefDayAggTestCase.java index d6abdeba4..bfccd74e4 100644 --- a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/noderef/persistence/NodeRefDayAggTestCase.java +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/noderef/persistence/NodeRefDayAggTestCase.java @@ -62,28 +62,24 @@ public class NodeRefDayAggTestCase { @Test public void testFactory() { - Assert.assertEquals(NodeRefDayAgg.class.getSimpleName(), NodeRefDayAgg.Factory.INSTANCE.role().roleName()); - Assert.assertEquals(NodeRefDayAgg.class.getSimpleName(), NodeRefDayAgg.Factory.INSTANCE.workerInstance(null).getClass().getSimpleName()); + NodeRefDayAgg.Factory factory = new NodeRefDayAgg.Factory(); + Assert.assertEquals(NodeRefDayAgg.class.getSimpleName(), factory.role().roleName()); + Assert.assertEquals(NodeRefDayAgg.class.getSimpleName(), factory.workerInstance(null).getClass().getSimpleName()); int testSize = 10; WorkerConfig.WorkerNum.NodeRef.NodeRefDayAgg.VALUE = testSize; - Assert.assertEquals(testSize, NodeRefDayAgg.Factory.INSTANCE.workerNum()); + Assert.assertEquals(testSize, factory.workerNum()); } @Test public void testPreStart() throws ProviderNotFoundException { - when(clusterWorkerContext.findProvider(NodeRefDaySave.Role.INSTANCE)).thenReturn(NodeRefDaySave.Factory.INSTANCE); + when(clusterWorkerContext.findProvider(NodeRefDaySave.Role.INSTANCE)).thenReturn(new NodeRefDaySave.Factory()); ArgumentCaptor argumentCaptor = ArgumentCaptor.forClass(NodeRefDaySave.Role.class); agg.preStart(); verify(clusterWorkerContext).findProvider(argumentCaptor.capture()); } - @Test - public void testOnWorkError() throws Exception { - agg.onWork(new Object()); - } - @Test public void testOnWork() throws Exception { RecordDataAggTools.INSTANCE.testOnWork(agg, recordDataAnswer); diff --git a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/noderef/persistence/NodeRefDaySaveTestCase.java b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/noderef/persistence/NodeRefDaySaveTestCase.java index 33eb20ac5..82f0cc018 100644 --- a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/noderef/persistence/NodeRefDaySaveTestCase.java +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/noderef/persistence/NodeRefDaySaveTestCase.java @@ -3,7 +3,6 @@ package com.a.eye.skywalking.collector.worker.noderef.persistence; import com.a.eye.skywalking.collector.actor.ClusterWorkerContext; import com.a.eye.skywalking.collector.actor.LocalWorkerContext; import com.a.eye.skywalking.collector.actor.selector.HashCodeSelector; -import com.a.eye.skywalking.collector.worker.config.WorkerConfig; import com.a.eye.skywalking.collector.worker.noderef.NodeRefIndex; import org.junit.Assert; import org.junit.Before; @@ -46,11 +45,8 @@ public class NodeRefDaySaveTestCase { @Test public void testFactory() { - Assert.assertEquals(NodeRefDaySave.class.getSimpleName(), NodeRefDaySave.Factory.INSTANCE.role().roleName()); - Assert.assertEquals(NodeRefDaySave.class.getSimpleName(), NodeRefDaySave.Factory.INSTANCE.workerInstance(null).getClass().getSimpleName()); - - int testSize = 10; - WorkerConfig.Queue.NodeRef.NodeRefDaySave.SIZE = testSize; - Assert.assertEquals(testSize, NodeRefDaySave.Factory.INSTANCE.queueSize()); + NodeRefDaySave.Factory factory = new NodeRefDaySave.Factory(); + Assert.assertEquals(NodeRefDaySave.class.getSimpleName(), factory.role().roleName()); + Assert.assertEquals(NodeRefDaySave.class.getSimpleName(), factory.workerInstance(null).getClass().getSimpleName()); } } diff --git a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/noderef/persistence/NodeRefHourAggTestCase.java b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/noderef/persistence/NodeRefHourAggTestCase.java index fa16921b1..ebb9dc6f7 100644 --- a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/noderef/persistence/NodeRefHourAggTestCase.java +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/noderef/persistence/NodeRefHourAggTestCase.java @@ -62,28 +62,24 @@ public class NodeRefHourAggTestCase { @Test public void testFactory() { - Assert.assertEquals(NodeRefHourAgg.class.getSimpleName(), NodeRefHourAgg.Factory.INSTANCE.role().roleName()); - Assert.assertEquals(NodeRefHourAgg.class.getSimpleName(), NodeRefHourAgg.Factory.INSTANCE.workerInstance(null).getClass().getSimpleName()); + NodeRefHourAgg.Factory factory = new NodeRefHourAgg.Factory(); + Assert.assertEquals(NodeRefHourAgg.class.getSimpleName(), factory.role().roleName()); + Assert.assertEquals(NodeRefHourAgg.class.getSimpleName(), factory.workerInstance(null).getClass().getSimpleName()); int testSize = 10; WorkerConfig.WorkerNum.NodeRef.NodeRefHourAgg.VALUE = testSize; - Assert.assertEquals(testSize, NodeRefHourAgg.Factory.INSTANCE.workerNum()); + Assert.assertEquals(testSize, factory.workerNum()); } @Test public void testPreStart() throws ProviderNotFoundException { - when(clusterWorkerContext.findProvider(NodeRefHourSave.Role.INSTANCE)).thenReturn(NodeRefHourSave.Factory.INSTANCE); + when(clusterWorkerContext.findProvider(NodeRefHourSave.Role.INSTANCE)).thenReturn(new NodeRefHourSave.Factory()); ArgumentCaptor argumentCaptor = ArgumentCaptor.forClass(NodeRefHourSave.Role.class); agg.preStart(); verify(clusterWorkerContext).findProvider(argumentCaptor.capture()); } - @Test - public void testOnWorkError() throws Exception { - agg.onWork(new Object()); - } - @Test public void testOnWork() throws Exception { RecordDataAggTools.INSTANCE.testOnWork(agg, recordDataAnswer); diff --git a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/noderef/persistence/NodeRefHourSaveTestCase.java b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/noderef/persistence/NodeRefHourSaveTestCase.java index 423a1cbc2..a000f1d60 100644 --- a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/noderef/persistence/NodeRefHourSaveTestCase.java +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/noderef/persistence/NodeRefHourSaveTestCase.java @@ -46,11 +46,8 @@ public class NodeRefHourSaveTestCase { @Test public void testFactory() { - Assert.assertEquals(NodeRefHourSave.class.getSimpleName(), NodeRefHourSave.Factory.INSTANCE.role().roleName()); - Assert.assertEquals(NodeRefHourSave.class.getSimpleName(), NodeRefHourSave.Factory.INSTANCE.workerInstance(null).getClass().getSimpleName()); - - int testSize = 10; - WorkerConfig.Queue.NodeRef.NodeRefHourSave.SIZE = testSize; - Assert.assertEquals(testSize, NodeRefHourSave.Factory.INSTANCE.queueSize()); + NodeRefHourSave.Factory factory = new NodeRefHourSave.Factory(); + Assert.assertEquals(NodeRefHourSave.class.getSimpleName(), factory.role().roleName()); + Assert.assertEquals(NodeRefHourSave.class.getSimpleName(), factory.workerInstance(null).getClass().getSimpleName()); } } diff --git a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/noderef/persistence/NodeRefMinuteAggTestCase.java b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/noderef/persistence/NodeRefMinuteAggTestCase.java index c38e2c937..1b38eb214 100644 --- a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/noderef/persistence/NodeRefMinuteAggTestCase.java +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/noderef/persistence/NodeRefMinuteAggTestCase.java @@ -62,28 +62,24 @@ public class NodeRefMinuteAggTestCase { @Test public void testFactory() { - Assert.assertEquals(NodeRefMinuteAgg.class.getSimpleName(), NodeRefMinuteAgg.Factory.INSTANCE.role().roleName()); - Assert.assertEquals(NodeRefMinuteAgg.class.getSimpleName(), NodeRefMinuteAgg.Factory.INSTANCE.workerInstance(null).getClass().getSimpleName()); + NodeRefMinuteAgg.Factory factory = new NodeRefMinuteAgg.Factory(); + Assert.assertEquals(NodeRefMinuteAgg.class.getSimpleName(), factory.role().roleName()); + Assert.assertEquals(NodeRefMinuteAgg.class.getSimpleName(), factory.workerInstance(null).getClass().getSimpleName()); int testSize = 10; WorkerConfig.WorkerNum.NodeRef.NodeRefMinuteAgg.VALUE = testSize; - Assert.assertEquals(testSize, NodeRefMinuteAgg.Factory.INSTANCE.workerNum()); + Assert.assertEquals(testSize, factory.workerNum()); } @Test public void testPreStart() throws ProviderNotFoundException { - when(clusterWorkerContext.findProvider(NodeRefMinuteSave.Role.INSTANCE)).thenReturn(NodeRefMinuteSave.Factory.INSTANCE); + when(clusterWorkerContext.findProvider(NodeRefMinuteSave.Role.INSTANCE)).thenReturn(new NodeRefMinuteSave.Factory()); ArgumentCaptor argumentCaptor = ArgumentCaptor.forClass(NodeRefMinuteSave.Role.class); agg.preStart(); verify(clusterWorkerContext).findProvider(argumentCaptor.capture()); } - @Test - public void testOnWorkError() throws Exception { - agg.onWork(new Object()); - } - @Test public void testOnWork() throws Exception { RecordDataAggTools.INSTANCE.testOnWork(agg, recordDataAnswer); diff --git a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/noderef/persistence/NodeRefMinuteSaveTestCase.java b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/noderef/persistence/NodeRefMinuteSaveTestCase.java index 8f9acb6de..c93e9d856 100644 --- a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/noderef/persistence/NodeRefMinuteSaveTestCase.java +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/noderef/persistence/NodeRefMinuteSaveTestCase.java @@ -3,7 +3,6 @@ package com.a.eye.skywalking.collector.worker.noderef.persistence; import com.a.eye.skywalking.collector.actor.ClusterWorkerContext; import com.a.eye.skywalking.collector.actor.LocalWorkerContext; import com.a.eye.skywalking.collector.actor.selector.HashCodeSelector; -import com.a.eye.skywalking.collector.worker.config.WorkerConfig; import com.a.eye.skywalking.collector.worker.noderef.NodeRefIndex; import org.junit.Assert; import org.junit.Before; @@ -46,11 +45,8 @@ public class NodeRefMinuteSaveTestCase { @Test public void testFactory() { - Assert.assertEquals(NodeRefMinuteSave.class.getSimpleName(), NodeRefMinuteSave.Factory.INSTANCE.role().roleName()); - Assert.assertEquals(NodeRefMinuteSave.class.getSimpleName(), NodeRefMinuteSave.Factory.INSTANCE.workerInstance(null).getClass().getSimpleName()); - - int testSize = 10; - WorkerConfig.Queue.NodeRef.NodeRefMinuteSave.SIZE = testSize; - Assert.assertEquals(testSize, NodeRefMinuteSave.Factory.INSTANCE.queueSize()); + NodeRefMinuteSave.Factory factory = new NodeRefMinuteSave.Factory(); + Assert.assertEquals(NodeRefMinuteSave.class.getSimpleName(), factory.role().roleName()); + Assert.assertEquals(NodeRefMinuteSave.class.getSimpleName(), factory.workerInstance(null).getClass().getSimpleName()); } } diff --git a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/noderef/persistence/NodeRefResSumDayAggTestCase.java b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/noderef/persistence/NodeRefResSumDayAggTestCase.java index 0836ad8ec..dd63c7160 100644 --- a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/noderef/persistence/NodeRefResSumDayAggTestCase.java +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/noderef/persistence/NodeRefResSumDayAggTestCase.java @@ -62,28 +62,24 @@ public class NodeRefResSumDayAggTestCase { @Test public void testFactory() { - Assert.assertEquals(NodeRefResSumDayAgg.class.getSimpleName(), NodeRefResSumDayAgg.Factory.INSTANCE.role().roleName()); - Assert.assertEquals(NodeRefResSumDayAgg.class.getSimpleName(), NodeRefResSumDayAgg.Factory.INSTANCE.workerInstance(null).getClass().getSimpleName()); + NodeRefResSumDayAgg.Factory factory = new NodeRefResSumDayAgg.Factory(); + Assert.assertEquals(NodeRefResSumDayAgg.class.getSimpleName(), factory.role().roleName()); + Assert.assertEquals(NodeRefResSumDayAgg.class.getSimpleName(), factory.workerInstance(null).getClass().getSimpleName()); int testSize = 10; WorkerConfig.WorkerNum.NodeRef.NodeRefResSumDayAgg.VALUE = testSize; - Assert.assertEquals(testSize, NodeRefResSumDayAgg.Factory.INSTANCE.workerNum()); + Assert.assertEquals(testSize, factory.workerNum()); } @Test public void testPreStart() throws ProviderNotFoundException { - when(clusterWorkerContext.findProvider(NodeRefResSumDaySave.Role.INSTANCE)).thenReturn(NodeRefResSumDaySave.Factory.INSTANCE); + when(clusterWorkerContext.findProvider(NodeRefResSumDaySave.Role.INSTANCE)).thenReturn(new NodeRefResSumDaySave.Factory()); ArgumentCaptor argumentCaptor = ArgumentCaptor.forClass(NodeRefResSumDaySave.Role.class); agg.preStart(); verify(clusterWorkerContext).findProvider(argumentCaptor.capture()); } - @Test - public void testOnWorkError() throws Exception { - agg.onWork(new Object()); - } - @Test public void testOnWork() throws Exception { MetricDataAggTools.INSTANCE.testOnWork(agg, metricDataAnswer); diff --git a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/noderef/persistence/NodeRefResSumDaySaveTestCase.java b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/noderef/persistence/NodeRefResSumDaySaveTestCase.java index 7cb1de98c..0e75fcddc 100644 --- a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/noderef/persistence/NodeRefResSumDaySaveTestCase.java +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/noderef/persistence/NodeRefResSumDaySaveTestCase.java @@ -3,7 +3,6 @@ package com.a.eye.skywalking.collector.worker.noderef.persistence; import com.a.eye.skywalking.collector.actor.ClusterWorkerContext; import com.a.eye.skywalking.collector.actor.LocalWorkerContext; import com.a.eye.skywalking.collector.actor.selector.HashCodeSelector; -import com.a.eye.skywalking.collector.worker.config.WorkerConfig; import com.a.eye.skywalking.collector.worker.noderef.NodeRefResSumIndex; import org.junit.Assert; import org.junit.Before; @@ -45,11 +44,8 @@ public class NodeRefResSumDaySaveTestCase { @Test public void testFactory() { - Assert.assertEquals(NodeRefResSumDaySave.class.getSimpleName(), NodeRefResSumDaySave.Factory.INSTANCE.role().roleName()); - Assert.assertEquals(NodeRefResSumDaySave.class.getSimpleName(), NodeRefResSumDaySave.Factory.INSTANCE.workerInstance(null).getClass().getSimpleName()); - - int testSize = 10; - WorkerConfig.Queue.NodeRef.NodeRefResSumDaySave.SIZE = testSize; - Assert.assertEquals(testSize, NodeRefResSumDaySave.Factory.INSTANCE.queueSize()); + NodeRefResSumDaySave.Factory factory = new NodeRefResSumDaySave.Factory(); + Assert.assertEquals(NodeRefResSumDaySave.class.getSimpleName(), factory.role().roleName()); + Assert.assertEquals(NodeRefResSumDaySave.class.getSimpleName(), factory.workerInstance(null).getClass().getSimpleName()); } } diff --git a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/noderef/persistence/NodeRefResSumGroupWithTimeSliceUseDB.java b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/noderef/persistence/NodeRefResSumGroupWithTimeSliceUseDB.java index 981444771..a09d75a4d 100644 --- a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/noderef/persistence/NodeRefResSumGroupWithTimeSliceUseDB.java +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/noderef/persistence/NodeRefResSumGroupWithTimeSliceUseDB.java @@ -28,10 +28,8 @@ public class NodeRefResSumGroupWithTimeSliceUseDB { nodeRefSearch.onWork(requestEntity, response); JsonArray nodeRefArray = response.get("result").getAsJsonArray(); - System.out.println(nodeRefArray.toString()); for (int i = 0; i < nodeRefArray.size(); i++) { JsonObject nodeRefJsonObj = nodeRefArray.get(i).getAsJsonObject(); - System.out.println(nodeRefJsonObj); } } } diff --git a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/noderef/persistence/NodeRefResSumHourAggTestCase.java b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/noderef/persistence/NodeRefResSumHourAggTestCase.java index c441940b5..7ddf064f6 100644 --- a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/noderef/persistence/NodeRefResSumHourAggTestCase.java +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/noderef/persistence/NodeRefResSumHourAggTestCase.java @@ -62,28 +62,24 @@ public class NodeRefResSumHourAggTestCase { @Test public void testFactory() { - Assert.assertEquals(NodeRefResSumHourAgg.class.getSimpleName(), NodeRefResSumHourAgg.Factory.INSTANCE.role().roleName()); - Assert.assertEquals(NodeRefResSumHourAgg.class.getSimpleName(), NodeRefResSumHourAgg.Factory.INSTANCE.workerInstance(null).getClass().getSimpleName()); + NodeRefResSumHourAgg.Factory factory = new NodeRefResSumHourAgg.Factory(); + Assert.assertEquals(NodeRefResSumHourAgg.class.getSimpleName(), factory.role().roleName()); + Assert.assertEquals(NodeRefResSumHourAgg.class.getSimpleName(), factory.workerInstance(null).getClass().getSimpleName()); int testSize = 10; WorkerConfig.WorkerNum.NodeRef.NodeRefResSumHourAgg.VALUE = testSize; - Assert.assertEquals(testSize, NodeRefResSumHourAgg.Factory.INSTANCE.workerNum()); + Assert.assertEquals(testSize, factory.workerNum()); } @Test public void testPreStart() throws ProviderNotFoundException { - when(clusterWorkerContext.findProvider(NodeRefResSumHourSave.Role.INSTANCE)).thenReturn(NodeRefResSumHourSave.Factory.INSTANCE); + when(clusterWorkerContext.findProvider(NodeRefResSumHourSave.Role.INSTANCE)).thenReturn(new NodeRefResSumHourSave.Factory()); ArgumentCaptor argumentCaptor = ArgumentCaptor.forClass(NodeRefResSumHourSave.Role.class); agg.preStart(); verify(clusterWorkerContext).findProvider(argumentCaptor.capture()); } - @Test - public void testOnWorkError() throws Exception { - agg.onWork(new Object()); - } - @Test public void testOnWork() throws Exception { MetricDataAggTools.INSTANCE.testOnWork(agg, metricDataAnswer); diff --git a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/noderef/persistence/NodeRefResSumHourSaveTestCase.java b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/noderef/persistence/NodeRefResSumHourSaveTestCase.java index e519688c7..e9e20e4ea 100644 --- a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/noderef/persistence/NodeRefResSumHourSaveTestCase.java +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/noderef/persistence/NodeRefResSumHourSaveTestCase.java @@ -3,7 +3,6 @@ package com.a.eye.skywalking.collector.worker.noderef.persistence; import com.a.eye.skywalking.collector.actor.ClusterWorkerContext; import com.a.eye.skywalking.collector.actor.LocalWorkerContext; import com.a.eye.skywalking.collector.actor.selector.HashCodeSelector; -import com.a.eye.skywalking.collector.worker.config.WorkerConfig; import com.a.eye.skywalking.collector.worker.noderef.NodeRefResSumIndex; import org.junit.Assert; import org.junit.Before; @@ -46,11 +45,8 @@ public class NodeRefResSumHourSaveTestCase { @Test public void testFactory() { - Assert.assertEquals(NodeRefResSumHourSave.class.getSimpleName(), NodeRefResSumHourSave.Factory.INSTANCE.role().roleName()); - Assert.assertEquals(NodeRefResSumHourSave.class.getSimpleName(), NodeRefResSumHourSave.Factory.INSTANCE.workerInstance(null).getClass().getSimpleName()); - - int testSize = 10; - WorkerConfig.Queue.NodeRef.NodeRefResSumHourSave.SIZE = testSize; - Assert.assertEquals(testSize, NodeRefResSumHourSave.Factory.INSTANCE.queueSize()); + NodeRefResSumHourSave.Factory factory = new NodeRefResSumHourSave.Factory(); + Assert.assertEquals(NodeRefResSumHourSave.class.getSimpleName(), factory.role().roleName()); + Assert.assertEquals(NodeRefResSumHourSave.class.getSimpleName(), factory.workerInstance(null).getClass().getSimpleName()); } } diff --git a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/noderef/persistence/NodeRefResSumMinuteAggTestCase.java b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/noderef/persistence/NodeRefResSumMinuteAggTestCase.java index 2f3f24f72..fb5fb703d 100644 --- a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/noderef/persistence/NodeRefResSumMinuteAggTestCase.java +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/noderef/persistence/NodeRefResSumMinuteAggTestCase.java @@ -62,28 +62,24 @@ public class NodeRefResSumMinuteAggTestCase { @Test public void testFactory() { - Assert.assertEquals(NodeRefResSumMinuteAgg.class.getSimpleName(), NodeRefResSumMinuteAgg.Factory.INSTANCE.role().roleName()); - Assert.assertEquals(NodeRefResSumMinuteAgg.class.getSimpleName(), NodeRefResSumMinuteAgg.Factory.INSTANCE.workerInstance(null).getClass().getSimpleName()); + NodeRefResSumMinuteAgg.Factory factory = new NodeRefResSumMinuteAgg.Factory(); + Assert.assertEquals(NodeRefResSumMinuteAgg.class.getSimpleName(), factory.role().roleName()); + Assert.assertEquals(NodeRefResSumMinuteAgg.class.getSimpleName(), factory.workerInstance(null).getClass().getSimpleName()); int testSize = 10; WorkerConfig.WorkerNum.NodeRef.NodeRefResSumMinuteAgg.VALUE = testSize; - Assert.assertEquals(testSize, NodeRefResSumMinuteAgg.Factory.INSTANCE.workerNum()); + Assert.assertEquals(testSize, factory.workerNum()); } @Test public void testPreStart() throws ProviderNotFoundException { - when(clusterWorkerContext.findProvider(NodeRefResSumMinuteSave.Role.INSTANCE)).thenReturn(NodeRefResSumMinuteSave.Factory.INSTANCE); + when(clusterWorkerContext.findProvider(NodeRefResSumMinuteSave.Role.INSTANCE)).thenReturn(new NodeRefResSumMinuteSave.Factory()); ArgumentCaptor argumentCaptor = ArgumentCaptor.forClass(NodeRefResSumMinuteSave.Role.class); agg.preStart(); verify(clusterWorkerContext).findProvider(argumentCaptor.capture()); } - @Test - public void testOnWorkError() throws Exception { - agg.onWork(new Object()); - } - @Test public void testOnWork() throws Exception { MetricDataAggTools.INSTANCE.testOnWork(agg, metricDataAnswer); diff --git a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/noderef/persistence/NodeRefResSumMinuteSaveTestCase.java b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/noderef/persistence/NodeRefResSumMinuteSaveTestCase.java index c941a08a8..754c327ad 100644 --- a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/noderef/persistence/NodeRefResSumMinuteSaveTestCase.java +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/noderef/persistence/NodeRefResSumMinuteSaveTestCase.java @@ -3,7 +3,6 @@ package com.a.eye.skywalking.collector.worker.noderef.persistence; import com.a.eye.skywalking.collector.actor.ClusterWorkerContext; import com.a.eye.skywalking.collector.actor.LocalWorkerContext; import com.a.eye.skywalking.collector.actor.selector.HashCodeSelector; -import com.a.eye.skywalking.collector.worker.config.WorkerConfig; import com.a.eye.skywalking.collector.worker.noderef.NodeRefResSumIndex; import org.junit.Assert; import org.junit.Before; @@ -46,11 +45,8 @@ public class NodeRefResSumMinuteSaveTestCase { @Test public void testFactory() { - Assert.assertEquals(NodeRefResSumMinuteSave.class.getSimpleName(), NodeRefResSumMinuteSave.Factory.INSTANCE.role().roleName()); - Assert.assertEquals(NodeRefResSumMinuteSave.class.getSimpleName(), NodeRefResSumMinuteSave.Factory.INSTANCE.workerInstance(null).getClass().getSimpleName()); - - int testSize = 10; - WorkerConfig.Queue.NodeRef.NodeRefResSumMinuteSave.SIZE = testSize; - Assert.assertEquals(testSize, NodeRefResSumMinuteSave.Factory.INSTANCE.queueSize()); + NodeRefResSumMinuteSave.Factory factory = new NodeRefResSumMinuteSave.Factory(); + Assert.assertEquals(NodeRefResSumMinuteSave.class.getSimpleName(), factory.role().roleName()); + Assert.assertEquals(NodeRefResSumMinuteSave.class.getSimpleName(), factory.workerInstance(null).getClass().getSimpleName()); } } diff --git a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/noderef/persistence/NodeRefResSumSearchWithTimeSliceUseDB.java b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/noderef/persistence/NodeRefResSumSearchWithTimeSliceUseDB.java index 4986dfeaa..6a26334dc 100644 --- a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/noderef/persistence/NodeRefResSumSearchWithTimeSliceUseDB.java +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/noderef/persistence/NodeRefResSumSearchWithTimeSliceUseDB.java @@ -28,10 +28,8 @@ public class NodeRefResSumSearchWithTimeSliceUseDB { nodeRefSearch.onWork(requestEntity, response); JsonArray nodeRefArray = response.get("result").getAsJsonArray(); - System.out.println(nodeRefArray.toString()); for (int i = 0; i < nodeRefArray.size(); i++) { JsonObject nodeRefJsonObj = nodeRefArray.get(i).getAsJsonObject(); - System.out.println(nodeRefJsonObj); } } } diff --git a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/noderef/persistence/NodeRefSearchWithTimeSliceUseDB.java b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/noderef/persistence/NodeRefSearchWithTimeSliceUseDB.java index b17fd55b3..175c28fac 100644 --- a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/noderef/persistence/NodeRefSearchWithTimeSliceUseDB.java +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/noderef/persistence/NodeRefSearchWithTimeSliceUseDB.java @@ -28,10 +28,8 @@ public class NodeRefSearchWithTimeSliceUseDB { nodeRefSearch.onWork(requestEntity, response); JsonArray nodeRefArray = response.get("result").getAsJsonArray(); - System.out.println(nodeRefArray.toString()); for (int i = 0; i < nodeRefArray.size(); i++) { JsonObject nodeRefJsonObj = nodeRefArray.get(i).getAsJsonObject(); - System.out.println(nodeRefJsonObj); } } } diff --git a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/segment/HttpClientTools.java b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/segment/HttpClientTools.java index ce28e6729..2934e8679 100644 --- a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/segment/HttpClientTools.java +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/segment/HttpClientTools.java @@ -36,18 +36,17 @@ public enum HttpClientTools { try (CloseableHttpResponse response = httpClient.execute(httpget)) { HttpEntity entity = response.getEntity(); - System.out.println(response.getStatusLine()); if (entity != null) { return EntityUtils.toString(entity); } } } catch (Exception e) { - e.printStackTrace(); + logger.error(e); } finally { try { httpClient.close(); } catch (IOException e) { - e.printStackTrace(); + logger.error(e); } } return null; @@ -66,12 +65,12 @@ public enum HttpClientTools { } } } catch (Exception e) { - e.printStackTrace(); + logger.error(e); } finally { try { httpClient.close(); } catch (Exception e) { - e.printStackTrace(); + logger.error(e); } } return null; diff --git a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/segment/SegmentCostIndexTestCase.java b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/segment/SegmentCostIndexTestCase.java index 3f789db30..50f02f040 100644 --- a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/segment/SegmentCostIndexTestCase.java +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/segment/SegmentCostIndexTestCase.java @@ -1,11 +1,10 @@ package com.a.eye.skywalking.collector.worker.segment; -import com.a.eye.skywalking.collector.worker.globaltrace.GlobalTraceIndex; +import com.a.eye.skywalking.collector.worker.config.EsConfig; +import java.io.IOException; import org.junit.Assert; import org.junit.Test; -import java.io.IOException; - /** * @author pengys5 */ @@ -21,6 +20,12 @@ public class SegmentCostIndexTestCase { @Test public void testBuilder() throws IOException { SegmentCostIndex index = new SegmentCostIndex(); - Assert.assertEquals("{\"properties\":{\"segId\":{\"type\":\"string\",\"index\":\"not_analyzed\"},\"startTime\":{\"type\":\"long\",\"index\":\"not_analyzed\"},\"END_TIME\":{\"type\":\"long\",\"index\":\"not_analyzed\"},\"operationName\":{\"type\":\"string\",\"index\":\"not_analyzed\"},\"cost\":{\"type\":\"long\",\"index\":\"not_analyzed\"}}}", index.createMappingBuilder().string()); + Assert.assertEquals("{\"properties\":{\"segId\":{\"type\":\"keyword\"},\"startTime\":{\"type\":\"long\",\"index\":\"not_analyzed\"},\"END_TIME\":{\"type\":\"long\",\"index\":\"not_analyzed\"},\"operationName\":{\"type\":\"keyword\"},\"cost\":{\"type\":\"long\",\"index\":\"not_analyzed\"}}}", index.createMappingBuilder().string()); + } + + @Test + public void refreshInterval() { + SegmentCostIndex index = new SegmentCostIndex(); + Assert.assertEquals(EsConfig.Es.Index.RefreshInterval.SegmentCostIndex.VALUE.intValue(), index.refreshInterval()); } } diff --git a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/segment/SegmentExceptionIndexTestCase.java b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/segment/SegmentExceptionIndexTestCase.java index 0f818cace..bec336196 100644 --- a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/segment/SegmentExceptionIndexTestCase.java +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/segment/SegmentExceptionIndexTestCase.java @@ -1,11 +1,10 @@ package com.a.eye.skywalking.collector.worker.segment; -import com.a.eye.skywalking.collector.worker.globaltrace.GlobalTraceIndex; +import com.a.eye.skywalking.collector.worker.config.EsConfig; +import java.io.IOException; import org.junit.Assert; import org.junit.Test; -import java.io.IOException; - /** * @author pengys5 */ @@ -21,6 +20,12 @@ public class SegmentExceptionIndexTestCase { @Test public void testBuilder() throws IOException { SegmentExceptionIndex index = new SegmentExceptionIndex(); - Assert.assertEquals("{\"properties\":{\"segId\":{\"type\":\"string\",\"index\":\"not_analyzed\"},\"isError\":{\"type\":\"boolean\",\"index\":\"not_analyzed\"},\"errorKind\":{\"type\":\"string\",\"index\":\"not_analyzed\"}}}", index.createMappingBuilder().string()); + Assert.assertEquals("{\"properties\":{\"segId\":{\"type\":\"keyword\"},\"isError\":{\"type\":\"boolean\",\"index\":\"not_analyzed\"},\"errorKind\":{\"type\":\"keyword\"}}}", index.createMappingBuilder().string()); + } + + @Test + public void refreshInterval() { + SegmentExceptionIndex index = new SegmentExceptionIndex(); + Assert.assertEquals(EsConfig.Es.Index.RefreshInterval.SegmentExceptionIndex.VALUE.intValue(), index.refreshInterval()); } } diff --git a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/segment/SegmentIndexTestCase.java b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/segment/SegmentIndexTestCase.java index 930351b7b..d16667c6c 100644 --- a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/segment/SegmentIndexTestCase.java +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/segment/SegmentIndexTestCase.java @@ -1,5 +1,6 @@ package com.a.eye.skywalking.collector.worker.segment; +import com.a.eye.skywalking.collector.worker.config.EsConfig; import org.junit.Assert; import org.junit.Test; @@ -20,6 +21,12 @@ public class SegmentIndexTestCase { @Test public void testBuilder() throws IOException { SegmentIndex index = new SegmentIndex(); - Assert.assertEquals("{\"properties\":{\"traceSegmentId\":{\"type\":\"string\",\"index\":\"not_analyzed\"},\"startTime\":{\"type\":\"date\",\"index\":\"not_analyzed\"},\"endTime\":{\"type\":\"date\",\"index\":\"not_analyzed\"},\"applicationCode\":{\"type\":\"string\",\"index\":\"not_analyzed\"},\"minute\":{\"type\":\"long\",\"index\":\"not_analyzed\"},\"hour\":{\"type\":\"long\",\"index\":\"not_analyzed\"},\"day\":{\"type\":\"long\",\"index\":\"not_analyzed\"}}}", index.createMappingBuilder().string()); + Assert.assertEquals("{\"properties\":{\"traceSegmentId\":{\"type\":\"keyword\"},\"startTime\":{\"type\":\"date\",\"index\":\"not_analyzed\"},\"endTime\":{\"type\":\"date\",\"index\":\"not_analyzed\"},\"applicationCode\":{\"type\":\"keyword\"},\"minute\":{\"type\":\"long\",\"index\":\"not_analyzed\"},\"hour\":{\"type\":\"long\",\"index\":\"not_analyzed\"},\"day\":{\"type\":\"long\",\"index\":\"not_analyzed\"}}}", index.createMappingBuilder().string()); + } + + @Test + public void refreshInterval() { + SegmentIndex index = new SegmentIndex(); + Assert.assertEquals(EsConfig.Es.Index.RefreshInterval.SegmentIndex.VALUE.intValue(), index.refreshInterval()); } } diff --git a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/segment/SegmentPostTestCase.java b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/segment/SegmentPostTestCase.java index b3c503f24..015596806 100644 --- a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/segment/SegmentPostTestCase.java +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/segment/SegmentPostTestCase.java @@ -9,6 +9,9 @@ import com.a.eye.skywalking.collector.worker.node.analysis.NodeMappingDayAnalysi import com.a.eye.skywalking.collector.worker.node.analysis.NodeMappingHourAnalysis; import com.a.eye.skywalking.collector.worker.node.analysis.NodeMappingMinuteAnalysis; import com.a.eye.skywalking.collector.worker.noderef.analysis.*; +import com.a.eye.skywalking.collector.worker.segment.analysis.SegmentAnalysis; +import com.a.eye.skywalking.collector.worker.segment.analysis.SegmentCostAnalysis; +import com.a.eye.skywalking.collector.worker.segment.analysis.SegmentExceptionAnalysis; import com.a.eye.skywalking.collector.worker.segment.mock.SegmentMock; import com.a.eye.skywalking.collector.worker.segment.persistence.SegmentCostSave; import com.a.eye.skywalking.collector.worker.segment.persistence.SegmentExceptionSave; @@ -69,9 +72,9 @@ public class SegmentPostTestCase { initNodeNodeMappingAnalysis(); initNodeCompAnalysis(); initNodeRefAnalysis(); - initSegmentExceptionSave(); - initSegmentSave(); - initSegmentCostSave(); + initSegmentExceptionAnalysis(); + initSegmentAnalysis(); + initSegmentCostAnalysis(); initGlobalTraceAnalysis(); } @@ -83,58 +86,82 @@ public class SegmentPostTestCase { @Test public void testFactory() { - Assert.assertEquals(SegmentPost.class.getSimpleName(), SegmentPost.Factory.INSTANCE.role().roleName()); - Assert.assertEquals(SegmentPost.class.getSimpleName(), SegmentPost.Factory.INSTANCE.workerInstance(null).getClass().getSimpleName()); - Assert.assertEquals("/segments", SegmentPost.Factory.INSTANCE.servletPath()); + SegmentPost.Factory factory = new SegmentPost.Factory(); + Assert.assertEquals(SegmentPost.class.getSimpleName(), factory.role().roleName()); + Assert.assertEquals(SegmentPost.class.getSimpleName(), factory.workerInstance(null).getClass().getSimpleName()); + Assert.assertEquals("/segments", factory.servletPath()); int testSize = 10; WorkerConfig.Queue.Segment.SegmentPost.SIZE = testSize; - Assert.assertEquals(testSize, SegmentPost.Factory.INSTANCE.queueSize()); + Assert.assertEquals(testSize, factory.queueSize()); } @Test public void testPreStart() throws ProviderNotFoundException { - when(clusterWorkerContext.findProvider(GlobalTraceAnalysis.Role.INSTANCE)).thenReturn(GlobalTraceAnalysis.Factory.INSTANCE); - when(clusterWorkerContext.findProvider(NodeCompAnalysis.Role.INSTANCE)).thenReturn(NodeCompAnalysis.Factory.INSTANCE); - when(clusterWorkerContext.findProvider(SegmentSave.Role.INSTANCE)).thenReturn(SegmentSave.Factory.INSTANCE); - when(clusterWorkerContext.findProvider(SegmentCostSave.Role.INSTANCE)).thenReturn(SegmentCostSave.Factory.INSTANCE); - when(clusterWorkerContext.findProvider(SegmentExceptionSave.Role.INSTANCE)).thenReturn(SegmentExceptionSave.Factory.INSTANCE); + when(clusterWorkerContext.findProvider(GlobalTraceAnalysis.Role.INSTANCE)).thenReturn(new GlobalTraceAnalysis.Factory()); + when(clusterWorkerContext.findProvider(NodeCompAnalysis.Role.INSTANCE)).thenReturn(new NodeCompAnalysis.Factory()); - NodeRefMinuteAnalysis.Factory.INSTANCE.setClusterContext(clusterWorkerContext); - when(clusterWorkerContext.findProvider(NodeRefResSumMinuteAnalysis.Role.INSTANCE)).thenReturn(NodeRefResSumMinuteAnalysis.Factory.INSTANCE); - when(clusterWorkerContext.findProvider(NodeRefMinuteAnalysis.Role.INSTANCE)).thenReturn(NodeRefMinuteAnalysis.Factory.INSTANCE); + SegmentAnalysis.Factory segmentAnalysisFactory = new SegmentAnalysis.Factory(); + segmentAnalysisFactory.setClusterContext(clusterWorkerContext); - NodeRefHourAnalysis.Factory.INSTANCE.setClusterContext(clusterWorkerContext); - when(clusterWorkerContext.findProvider(NodeRefResSumHourAnalysis.Role.INSTANCE)).thenReturn(NodeRefResSumHourAnalysis.Factory.INSTANCE); - when(clusterWorkerContext.findProvider(NodeRefHourAnalysis.Role.INSTANCE)).thenReturn(NodeRefHourAnalysis.Factory.INSTANCE); + when(clusterWorkerContext.findProvider(SegmentAnalysis.Role.INSTANCE)).thenReturn(segmentAnalysisFactory); - NodeRefDayAnalysis.Factory.INSTANCE.setClusterContext(clusterWorkerContext); - when(clusterWorkerContext.findProvider(NodeRefResSumDayAnalysis.Role.INSTANCE)).thenReturn(NodeRefResSumDayAnalysis.Factory.INSTANCE); - when(clusterWorkerContext.findProvider(NodeRefDayAnalysis.Role.INSTANCE)).thenReturn(NodeRefDayAnalysis.Factory.INSTANCE); + SegmentCostAnalysis.Factory segmentCostAnalysisFactory = new SegmentCostAnalysis.Factory(); + segmentCostAnalysisFactory.setClusterContext(clusterWorkerContext); - when(clusterWorkerContext.findProvider(NodeMappingDayAnalysis.Role.INSTANCE)).thenReturn(NodeMappingDayAnalysis.Factory.INSTANCE); - when(clusterWorkerContext.findProvider(NodeMappingHourAnalysis.Role.INSTANCE)).thenReturn(NodeMappingHourAnalysis.Factory.INSTANCE); - when(clusterWorkerContext.findProvider(NodeMappingMinuteAnalysis.Role.INSTANCE)).thenReturn(NodeMappingMinuteAnalysis.Factory.INSTANCE); + when(clusterWorkerContext.findProvider(SegmentCostAnalysis.Role.INSTANCE)).thenReturn(segmentCostAnalysisFactory); + + SegmentExceptionAnalysis.Factory segmentExceptionAnalysisFactory = new SegmentExceptionAnalysis.Factory(); + segmentExceptionAnalysisFactory.setClusterContext(clusterWorkerContext); + when(clusterWorkerContext.findProvider(SegmentExceptionAnalysis.Role.INSTANCE)).thenReturn(segmentExceptionAnalysisFactory); + + NodeRefMinuteAnalysis.Factory nodeRefMinuteAnalysisFactory = new NodeRefMinuteAnalysis.Factory(); + nodeRefMinuteAnalysisFactory.setClusterContext(clusterWorkerContext); + when(clusterWorkerContext.findProvider(NodeRefResSumMinuteAnalysis.Role.INSTANCE)).thenReturn(new NodeRefResSumMinuteAnalysis.Factory()); + when(clusterWorkerContext.findProvider(NodeRefMinuteAnalysis.Role.INSTANCE)).thenReturn(nodeRefMinuteAnalysisFactory); + + NodeRefHourAnalysis.Factory nodeRefHourAnalysisFactory = new NodeRefHourAnalysis.Factory(); + nodeRefHourAnalysisFactory.setClusterContext(clusterWorkerContext); + when(clusterWorkerContext.findProvider(NodeRefResSumHourAnalysis.Role.INSTANCE)).thenReturn(new NodeRefResSumHourAnalysis.Factory()); + when(clusterWorkerContext.findProvider(NodeRefHourAnalysis.Role.INSTANCE)).thenReturn(nodeRefHourAnalysisFactory); + + NodeRefDayAnalysis.Factory nodeRefDayAnalysisFactory = new NodeRefDayAnalysis.Factory(); + nodeRefDayAnalysisFactory.setClusterContext(clusterWorkerContext); + when(clusterWorkerContext.findProvider(NodeRefResSumDayAnalysis.Role.INSTANCE)).thenReturn(new NodeRefResSumDayAnalysis.Factory()); + when(clusterWorkerContext.findProvider(NodeRefDayAnalysis.Role.INSTANCE)).thenReturn(nodeRefDayAnalysisFactory); + + when(clusterWorkerContext.findProvider(NodeMappingDayAnalysis.Role.INSTANCE)).thenReturn(new NodeMappingDayAnalysis.Factory()); + when(clusterWorkerContext.findProvider(NodeMappingHourAnalysis.Role.INSTANCE)).thenReturn(new NodeMappingHourAnalysis.Factory()); + when(clusterWorkerContext.findProvider(NodeMappingMinuteAnalysis.Role.INSTANCE)).thenReturn(new NodeMappingMinuteAnalysis.Factory()); ArgumentCaptor argumentCaptor = ArgumentCaptor.forClass(Role.class); segmentPost.preStart(); - verify(clusterWorkerContext, times(14)).findProvider(argumentCaptor.capture()); + verify(clusterWorkerContext, times(17)).findProvider(argumentCaptor.capture()); Assert.assertEquals(GlobalTraceAnalysis.Role.INSTANCE.roleName(), argumentCaptor.getAllValues().get(0).roleName()); - Assert.assertEquals(NodeCompAnalysis.Role.INSTANCE.roleName(), argumentCaptor.getAllValues().get(1).roleName()); + + Assert.assertEquals(SegmentAnalysis.Role.INSTANCE.roleName(), argumentCaptor.getAllValues().get(1).roleName()); Assert.assertEquals(SegmentSave.Role.INSTANCE.roleName(), argumentCaptor.getAllValues().get(2).roleName()); - Assert.assertEquals(SegmentCostSave.Role.INSTANCE.roleName(), argumentCaptor.getAllValues().get(3).roleName()); - Assert.assertEquals(SegmentExceptionSave.Role.INSTANCE.roleName(), argumentCaptor.getAllValues().get(4).roleName()); - Assert.assertEquals(NodeRefMinuteAnalysis.Role.INSTANCE.roleName(), argumentCaptor.getAllValues().get(5).roleName()); - Assert.assertEquals(NodeRefResSumMinuteAnalysis.Role.INSTANCE.roleName(), argumentCaptor.getAllValues().get(6).roleName()); - Assert.assertEquals(NodeRefHourAnalysis.Role.INSTANCE.roleName(), argumentCaptor.getAllValues().get(7).roleName()); - Assert.assertEquals(NodeRefResSumHourAnalysis.Role.INSTANCE.roleName(), argumentCaptor.getAllValues().get(8).roleName()); - Assert.assertEquals(NodeRefDayAnalysis.Role.INSTANCE.roleName(), argumentCaptor.getAllValues().get(9).roleName()); - Assert.assertEquals(NodeRefResSumDayAnalysis.Role.INSTANCE.roleName(), argumentCaptor.getAllValues().get(10).roleName()); - Assert.assertEquals(NodeMappingDayAnalysis.Role.INSTANCE.roleName(), argumentCaptor.getAllValues().get(11).roleName()); - Assert.assertEquals(NodeMappingHourAnalysis.Role.INSTANCE.roleName(), argumentCaptor.getAllValues().get(12).roleName()); - Assert.assertEquals(NodeMappingMinuteAnalysis.Role.INSTANCE.roleName(), argumentCaptor.getAllValues().get(13).roleName()); + + Assert.assertEquals(SegmentCostAnalysis.Role.INSTANCE.roleName(), argumentCaptor.getAllValues().get(3).roleName()); + Assert.assertEquals(SegmentCostSave.Role.INSTANCE.roleName(), argumentCaptor.getAllValues().get(4).roleName()); + + Assert.assertEquals(SegmentExceptionAnalysis.Role.INSTANCE.roleName(), argumentCaptor.getAllValues().get(5).roleName()); + Assert.assertEquals(SegmentExceptionSave.Role.INSTANCE.roleName(), argumentCaptor.getAllValues().get(6).roleName()); + + Assert.assertEquals(NodeRefMinuteAnalysis.Role.INSTANCE.roleName(), argumentCaptor.getAllValues().get(7).roleName()); + Assert.assertEquals(NodeRefResSumMinuteAnalysis.Role.INSTANCE.roleName(), argumentCaptor.getAllValues().get(8).roleName()); + Assert.assertEquals(NodeRefHourAnalysis.Role.INSTANCE.roleName(), argumentCaptor.getAllValues().get(9).roleName()); + Assert.assertEquals(NodeRefResSumHourAnalysis.Role.INSTANCE.roleName(), argumentCaptor.getAllValues().get(10).roleName()); + Assert.assertEquals(NodeRefDayAnalysis.Role.INSTANCE.roleName(), argumentCaptor.getAllValues().get(11).roleName()); + Assert.assertEquals(NodeRefResSumDayAnalysis.Role.INSTANCE.roleName(), argumentCaptor.getAllValues().get(12).roleName()); + + Assert.assertEquals(NodeCompAnalysis.Role.INSTANCE.roleName(), argumentCaptor.getAllValues().get(13).roleName()); + + Assert.assertEquals(NodeMappingDayAnalysis.Role.INSTANCE.roleName(), argumentCaptor.getAllValues().get(14).roleName()); + Assert.assertEquals(NodeMappingHourAnalysis.Role.INSTANCE.roleName(), argumentCaptor.getAllValues().get(15).roleName()); + Assert.assertEquals(NodeMappingMinuteAnalysis.Role.INSTANCE.roleName(), argumentCaptor.getAllValues().get(16).roleName()); } @Test @@ -150,23 +177,27 @@ public class SegmentPostTestCase { private SegmentSaveAnswer segmentSaveAnswer_1; private SegmentSaveAnswer segmentSaveAnswer_2; - public void initSegmentSave() throws Exception { - WorkerRef segmentSave = mock(WorkerRef.class); - doReturn(SegmentSave.Role.INSTANCE).when(segmentSave, "getRole"); - localWorkerContext.put(segmentSave); + public void initSegmentAnalysis() throws Exception { + when(clusterWorkerContext.findProvider(SegmentSave.Role.INSTANCE)).thenReturn(new SegmentSave.Factory()); + + WorkerRef segmentAnalysis = mock(WorkerRef.class); + doReturn(SegmentAnalysis.Role.INSTANCE).when(segmentAnalysis, "getRole"); + localWorkerContext.put(segmentAnalysis); segmentSaveAnswer_1 = new SegmentSaveAnswer(); - doAnswer(segmentSaveAnswer_1).when(segmentSave).tell(Mockito.argThat(new IsCacheServiceSegment_1())); + doAnswer(segmentSaveAnswer_1).when(segmentAnalysis).tell(Mockito.argThat(new IsCacheServiceSegment_1())); segmentSaveAnswer_2 = new SegmentSaveAnswer(); - doAnswer(segmentSaveAnswer_2).when(segmentSave).tell(Mockito.argThat(new IsCacheServiceSegment_2())); + doAnswer(segmentSaveAnswer_2).when(segmentAnalysis).tell(Mockito.argThat(new IsCacheServiceSegment_2())); } private SegmentOtherAnswer segmentCostSaveAnswer; - public void initSegmentCostSave() throws Exception { + public void initSegmentCostAnalysis() throws Exception { + when(clusterWorkerContext.findProvider(SegmentCostSave.Role.INSTANCE)).thenReturn(new SegmentCostSave.Factory()); + WorkerRef segmentCostSave = mock(WorkerRef.class); - doReturn(SegmentCostSave.Role.INSTANCE).when(segmentCostSave, "getRole"); + doReturn(SegmentCostAnalysis.Role.INSTANCE).when(segmentCostSave, "getRole"); localWorkerContext.put(segmentCostSave); segmentCostSaveAnswer = new SegmentOtherAnswer(); @@ -186,9 +217,11 @@ public class SegmentPostTestCase { private SegmentOtherAnswer segmentExceptionSaveAnswer; - public void initSegmentExceptionSave() throws Exception { + public void initSegmentExceptionAnalysis() throws Exception { + when(clusterWorkerContext.findProvider(SegmentExceptionSave.Role.INSTANCE)).thenReturn(new SegmentExceptionSave.Factory()); + WorkerRef segmentExceptionSave = mock(WorkerRef.class); - doReturn(SegmentExceptionSave.Role.INSTANCE).when(segmentExceptionSave, "getRole"); + doReturn(SegmentExceptionAnalysis.Role.INSTANCE).when(segmentExceptionSave, "getRole"); localWorkerContext.put(segmentExceptionSave); segmentExceptionSaveAnswer = new SegmentOtherAnswer(); @@ -260,7 +293,7 @@ public class SegmentPostTestCase { doAnswer(nodeMappingDayAnalysisAnswer).when(nodeMappingDayAnalysis).tell(Mockito.argThat(new IsSegmentWithTimeSlice())); } -// @Test + // @Test public void testOnReceive() throws Exception { String cacheServiceSegmentAsString = segmentMock.mockCacheServiceSegmentAsString(); @@ -305,7 +338,7 @@ public class SegmentPostTestCase { @Override public Object answer(InvocationOnMock invocation) throws Throwable { - segmentWithTimeSlice = (SegmentPost.SegmentWithTimeSlice)invocation.getArguments()[0]; + segmentWithTimeSlice = (SegmentPost.SegmentWithTimeSlice) invocation.getArguments()[0]; return null; } } @@ -317,7 +350,7 @@ public class SegmentPostTestCase { @Override public Object answer(InvocationOnMock invocation) throws Throwable { - JsonObject jsonObject = (JsonObject)invocation.getArguments()[0]; + JsonObject jsonObject = (JsonObject) invocation.getArguments()[0]; logger.info("SegmentSave json: " + jsonObject.toString()); minute = jsonObject.get("minute").getAsLong(); hour = jsonObject.get("hour").getAsLong(); @@ -330,7 +363,7 @@ public class SegmentPostTestCase { private static final String SegId = "Segment.1490922929258.927784221.5991.27.1"; public boolean matches(Object para) { - JsonObject paraJson = (JsonObject)para; + JsonObject paraJson = (JsonObject) para; return SegId.equals(paraJson.get("ts").getAsString()); } } @@ -339,7 +372,7 @@ public class SegmentPostTestCase { private static final String SegId = "Segment.1490922929298.927784221.5991.28.1"; public boolean matches(Object para) { - JsonObject paraJson = (JsonObject)para; + JsonObject paraJson = (JsonObject) para; return SegId.equals(paraJson.get("ts").getAsString()); } } diff --git a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/segment/SegmentTopGetWithGlobalTraceIdTestCase.java b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/segment/SegmentTopGetWithGlobalTraceIdTestCase.java index 131066363..712869054 100644 --- a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/segment/SegmentTopGetWithGlobalTraceIdTestCase.java +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/segment/SegmentTopGetWithGlobalTraceIdTestCase.java @@ -64,18 +64,22 @@ public class SegmentTopGetWithGlobalTraceIdTestCase { @Test public void testFactory() { - Assert.assertEquals(SegmentTopGetWithGlobalTraceId.class.getSimpleName(), SegmentTopGetWithGlobalTraceId.Factory.INSTANCE.role().roleName()); - Assert.assertEquals(SegmentTopGetWithGlobalTraceId.class.getSimpleName(), SegmentTopGetWithGlobalTraceId.Factory.INSTANCE.workerInstance(null).getClass().getSimpleName()); - Assert.assertEquals("/segments/top/globalTraceId", SegmentTopGetWithGlobalTraceId.Factory.INSTANCE.servletPath()); + SegmentTopGetWithGlobalTraceId.Factory factory = new SegmentTopGetWithGlobalTraceId.Factory(); + Assert.assertEquals(SegmentTopGetWithGlobalTraceId.class.getSimpleName(), factory.role().roleName()); + Assert.assertEquals(SegmentTopGetWithGlobalTraceId.class.getSimpleName(), factory.workerInstance(null).getClass().getSimpleName()); + Assert.assertEquals("/segments/top/globalTraceId", factory.servletPath()); } @Test public void testPreStart() throws ProviderNotFoundException { ClusterWorkerContext exceptionContext = PowerMockito.mock(ClusterWorkerContext.class); - when(exceptionContext.findProvider(SegmentExceptionWithSegId.WorkerRole.INSTANCE)).thenReturn(SegmentExceptionWithSegId.Factory.INSTANCE); - SegmentTopSearchWithGlobalTraceId.Factory.INSTANCE.setClusterContext(exceptionContext); + SegmentExceptionWithSegId.Factory factory = new SegmentExceptionWithSegId.Factory(); + when(exceptionContext.findProvider(SegmentExceptionWithSegId.WorkerRole.INSTANCE)).thenReturn(factory); - when(clusterWorkerContext.findProvider(SegmentTopSearchWithGlobalTraceId.WorkerRole.INSTANCE)).thenReturn(SegmentTopSearchWithGlobalTraceId.Factory.INSTANCE); + SegmentTopSearchWithGlobalTraceId.Factory factory1 = new SegmentTopSearchWithGlobalTraceId.Factory(); + factory1.setClusterContext(exceptionContext); + + when(clusterWorkerContext.findProvider(SegmentTopSearchWithGlobalTraceId.WorkerRole.INSTANCE)).thenReturn(factory1); ArgumentCaptor argumentCaptor = ArgumentCaptor.forClass(SegmentTopSearchWithGlobalTraceId.WorkerRole.class); getObj.preStart(); @@ -135,7 +139,7 @@ public class SegmentTopGetWithGlobalTraceIdTestCase { @Override public Object answer(InvocationOnMock invocation) throws Throwable { - SegmentTopSearchWithGlobalTraceId.RequestEntity requestEntity = (SegmentTopSearchWithGlobalTraceId.RequestEntity)invocation.getArguments()[0]; + SegmentTopSearchWithGlobalTraceId.RequestEntity requestEntity = (SegmentTopSearchWithGlobalTraceId.RequestEntity) invocation.getArguments()[0]; Assert.assertEquals("TestId", requestEntity.getGlobalTraceId()); Assert.assertEquals(20, requestEntity.getFrom()); Assert.assertEquals(50, requestEntity.getLimit()); diff --git a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/segment/SegmentTopGetWithTimeSliceTestCase.java b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/segment/SegmentTopGetWithTimeSliceTestCase.java index a1fee3fa5..5fad718a2 100644 --- a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/segment/SegmentTopGetWithTimeSliceTestCase.java +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/segment/SegmentTopGetWithTimeSliceTestCase.java @@ -64,18 +64,22 @@ public class SegmentTopGetWithTimeSliceTestCase { @Test public void testFactory() { - Assert.assertEquals(SegmentTopGetWithTimeSlice.class.getSimpleName(), SegmentTopGetWithTimeSlice.Factory.INSTANCE.role().roleName()); - Assert.assertEquals(SegmentTopGetWithTimeSlice.class.getSimpleName(), SegmentTopGetWithTimeSlice.Factory.INSTANCE.workerInstance(null).getClass().getSimpleName()); - Assert.assertEquals("/segments/top/timeSlice", SegmentTopGetWithTimeSlice.Factory.INSTANCE.servletPath()); + SegmentTopGetWithTimeSlice.Factory factory = new SegmentTopGetWithTimeSlice.Factory(); + Assert.assertEquals(SegmentTopGetWithTimeSlice.class.getSimpleName(), factory.role().roleName()); + Assert.assertEquals(SegmentTopGetWithTimeSlice.class.getSimpleName(), factory.workerInstance(null).getClass().getSimpleName()); + Assert.assertEquals("/segments/top/timeSlice", factory.servletPath()); } @Test public void testPreStart() throws ProviderNotFoundException { ClusterWorkerContext exceptionContext = PowerMockito.mock(ClusterWorkerContext.class); - when(exceptionContext.findProvider(SegmentExceptionWithSegId.WorkerRole.INSTANCE)).thenReturn(SegmentExceptionWithSegId.Factory.INSTANCE); - SegmentTopSearchWithTimeSlice.Factory.INSTANCE.setClusterContext(exceptionContext); + SegmentExceptionWithSegId.Factory factory = new SegmentExceptionWithSegId.Factory(); + when(exceptionContext.findProvider(SegmentExceptionWithSegId.WorkerRole.INSTANCE)).thenReturn(factory); - when(clusterWorkerContext.findProvider(SegmentTopSearchWithTimeSlice.WorkerRole.INSTANCE)).thenReturn(SegmentTopSearchWithTimeSlice.Factory.INSTANCE); + SegmentTopSearchWithTimeSlice.Factory factory1 = new SegmentTopSearchWithTimeSlice.Factory(); + factory1.setClusterContext(exceptionContext); + + when(clusterWorkerContext.findProvider(SegmentTopSearchWithTimeSlice.WorkerRole.INSTANCE)).thenReturn(factory1); ArgumentCaptor argumentCaptor = ArgumentCaptor.forClass(SegmentTopSearchWithTimeSlice.WorkerRole.class); getObj.preStart(); @@ -150,7 +154,7 @@ public class SegmentTopGetWithTimeSliceTestCase { @Override public Object answer(InvocationOnMock invocation) throws Throwable { - SegmentTopSearchWithTimeSlice.RequestEntity requestEntity = (SegmentTopSearchWithTimeSlice.RequestEntity)invocation.getArguments()[0]; + SegmentTopSearchWithTimeSlice.RequestEntity requestEntity = (SegmentTopSearchWithTimeSlice.RequestEntity) invocation.getArguments()[0]; Assert.assertEquals(10, requestEntity.getStartTime()); Assert.assertEquals(20, requestEntity.getEndTime()); Assert.assertEquals(30, requestEntity.getFrom()); diff --git a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/segment/analysis/SegmentCostAnalysisTestCase.java b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/segment/analysis/SegmentCostAnalysisTestCase.java new file mode 100644 index 000000000..3ad7b0a7e --- /dev/null +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/segment/analysis/SegmentCostAnalysisTestCase.java @@ -0,0 +1,35 @@ +package com.a.eye.skywalking.collector.worker.segment.analysis; + +import com.a.eye.skywalking.collector.actor.LocalSyncWorkerRef; +import com.a.eye.skywalking.collector.actor.LocalWorkerContext; +import com.a.eye.skywalking.collector.actor.WorkerNotFoundException; +import com.a.eye.skywalking.collector.actor.WorkerRef; +import com.a.eye.skywalking.collector.actor.WorkerRefs; +import com.a.eye.skywalking.collector.worker.segment.persistence.SegmentCostSave; +import java.lang.reflect.Field; +import java.util.List; +import org.junit.Assert; +import org.junit.Test; + +/** + * @author pengys5 + */ +public class SegmentCostAnalysisTestCase { + + @Test + public void aggWorkRefs() throws WorkerNotFoundException, NoSuchFieldException, IllegalAccessException { + LocalWorkerContext localWorkerContext = new LocalWorkerContext(); + + WorkerRef workerRef = new LocalSyncWorkerRef(SegmentCostSave.Role.INSTANCE, null); + localWorkerContext.put(workerRef); + + SegmentCostAnalysis analysis = new SegmentCostAnalysis(SegmentCostAnalysis.Role.INSTANCE, null, localWorkerContext); + WorkerRefs workerRefs = analysis.aggWorkRefs(); + + Field testAField = workerRefs.getClass().getDeclaredField("workerRefs"); + testAField.setAccessible(true); + List list = (List)testAField.get(workerRefs); + + Assert.assertEquals(workerRef, list.get(0)); + } +} diff --git a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/segment/entity/LogDataTestCase.java b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/segment/entity/LogDataTestCase.java new file mode 100644 index 000000000..63bd6ee89 --- /dev/null +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/segment/entity/LogDataTestCase.java @@ -0,0 +1,29 @@ +package com.a.eye.skywalking.collector.worker.segment.entity; + +import com.google.gson.stream.JsonReader; +import java.io.IOException; +import java.io.StringReader; +import java.util.Map; +import org.junit.Assert; +import org.junit.Test; + +/** + * @author pengys5 + */ +public class LogDataTestCase { + + @Test + public void deserialize() throws IOException { + LogData logData = new LogData(); + + JsonReader reader = new JsonReader(new StringReader("{\"tm\":1, \"fi\": {\"test1\":\"test1\",\"test2\":\"test2\"}, \"skip\":\"skip\"}")); + logData.deserialize(reader); + + Assert.assertEquals(1L, logData.getTime()); + + Map fields = logData.getFields(); + Assert.assertEquals("test1", fields.get("test1")); + Assert.assertEquals("test2", fields.get("test2")); + Assert.assertEquals(false, fields.containsKey("skip")); + } +} diff --git a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/segment/entity/SpanViewTestCase.java b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/segment/entity/SpanViewTestCase.java new file mode 100644 index 000000000..b98186c88 --- /dev/null +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/segment/entity/SpanViewTestCase.java @@ -0,0 +1,37 @@ +package com.a.eye.skywalking.collector.worker.segment.entity; + +import org.junit.Assert; +import org.junit.Test; + +/** + * @author pengys5 + */ +public class SpanViewTestCase { + + @Test + public void test() { + SpanView spanView = new SpanView(); + spanView.setSpanId(1); + Assert.assertEquals(1, spanView.getSpanId()); + + spanView.setSegId("1"); + Assert.assertEquals("1", spanView.getSegId()); + + spanView.setAppCode("2"); + Assert.assertEquals("2", spanView.getAppCode()); + + spanView.setRelativeStartTime(10L); + Assert.assertEquals(10L, spanView.getRelativeStartTime()); + + spanView.setCost(20L); + Assert.assertEquals(20L, spanView.getCost()); + + spanView.setOperationName("3"); + Assert.assertEquals("3", spanView.getOperationName()); + + SpanView child = new SpanView(); + spanView.addChild(child); + + spanView.compareTo(child); + } +} diff --git a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/segment/entity/TraceSegmentRefTestCase.java b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/segment/entity/TraceSegmentRefTestCase.java new file mode 100644 index 000000000..6bb6a0ee3 --- /dev/null +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/segment/entity/TraceSegmentRefTestCase.java @@ -0,0 +1,25 @@ +package com.a.eye.skywalking.collector.worker.segment.entity; + +import com.google.gson.stream.JsonReader; +import java.io.IOException; +import java.io.StringReader; +import org.junit.Assert; +import org.junit.Test; + +/** + * @author pengys5 + */ +public class TraceSegmentRefTestCase { + + @Test + public void deserialize() throws IOException { + TraceSegmentRef traceSegmentRef = new TraceSegmentRef(); + JsonReader reader = new JsonReader(new StringReader("{\"ts\" :\"ts\",\"si\":0,\"ac\":\"ac\",\"ph\":\"ph\", \"skip\":\"skip\"}")); + traceSegmentRef.deserialize(reader); + + Assert.assertEquals("ts", traceSegmentRef.getTraceSegmentId()); + Assert.assertEquals("ac", traceSegmentRef.getApplicationCode()); + Assert.assertEquals("ph", traceSegmentRef.getPeerHost()); + Assert.assertEquals(0, traceSegmentRef.getSpanId()); + } +} diff --git a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/segment/entity/tag/BooleanTagTestCase.java b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/segment/entity/tag/BooleanTagTestCase.java new file mode 100644 index 000000000..41ca79805 --- /dev/null +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/segment/entity/tag/BooleanTagTestCase.java @@ -0,0 +1,31 @@ +package com.a.eye.skywalking.collector.worker.segment.entity.tag; + +import com.a.eye.skywalking.collector.worker.segment.entity.Span; +import java.lang.reflect.Field; +import java.util.LinkedHashMap; +import java.util.Map; +import org.junit.Assert; +import org.junit.Test; + +/** + * @author pengys5 + */ +public class BooleanTagTestCase { + + @Test + public void test() throws NoSuchFieldException, IllegalAccessException { + BooleanTag booleanTag = new BooleanTag("test", false); + + Map tagsWithInt = new LinkedHashMap<>(); + + Span span = new Span(); + Field testAField = span.getClass().getDeclaredField("tagsWithBool"); + testAField.setAccessible(true); + testAField.set(span, tagsWithInt); + + Assert.assertEquals(false, booleanTag.get(span)); + + tagsWithInt.put("test", true); + Assert.assertEquals(true, booleanTag.get(span)); + } +} diff --git a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/segment/entity/tag/IntTagTestCase.java b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/segment/entity/tag/IntTagTestCase.java new file mode 100644 index 000000000..8d739bf03 --- /dev/null +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/segment/entity/tag/IntTagTestCase.java @@ -0,0 +1,31 @@ +package com.a.eye.skywalking.collector.worker.segment.entity.tag; + +import com.a.eye.skywalking.collector.worker.segment.entity.Span; +import java.lang.reflect.Field; +import java.util.LinkedHashMap; +import java.util.Map; +import org.junit.Assert; +import org.junit.Test; + +/** + * @author pengys5 + */ +public class IntTagTestCase { + + @Test + public void test() throws NoSuchFieldException, IllegalAccessException { + IntTag intTag = new IntTag("test"); + + Map tagsWithInt = new LinkedHashMap<>(); + + Span span = new Span(); + Field testAField = span.getClass().getDeclaredField("tagsWithInt"); + testAField.setAccessible(true); + testAField.set(span, tagsWithInt); + + Assert.assertEquals(null, intTag.get(span)); + + tagsWithInt.put("test", 10); + Assert.assertEquals(10, intTag.get(span).intValue()); + } +} diff --git a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/segment/entity/tag/ShortTagTestCase.java b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/segment/entity/tag/ShortTagTestCase.java new file mode 100644 index 000000000..61cedbc6c --- /dev/null +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/segment/entity/tag/ShortTagTestCase.java @@ -0,0 +1,35 @@ +package com.a.eye.skywalking.collector.worker.segment.entity.tag; + +import com.a.eye.skywalking.collector.worker.segment.entity.Span; +import com.a.eye.skywalking.collector.worker.storage.SegmentData; +import com.a.eye.skywalking.collector.worker.storage.WindowData; +import java.lang.reflect.Field; +import java.util.LinkedHashMap; +import java.util.Map; +import org.junit.Assert; +import org.junit.Test; + +/** + * @author pengys5 + */ +public class ShortTagTestCase { + + @Test + public void test() throws NoSuchFieldException, IllegalAccessException { + ShortTag shortTag = new ShortTag("short"); + + Map tagsWithInt = new LinkedHashMap<>(); + + Span span = new Span(); + Field testAField = span.getClass().getDeclaredField("tagsWithInt"); + testAField.setAccessible(true); + testAField.set(span, tagsWithInt); + + Short tag = shortTag.get(span); + Assert.assertEquals(null, tag); + + tagsWithInt.put("short", 10); + tag = shortTag.get(span); + Assert.assertEquals(10, tag.intValue()); + } +} diff --git a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/segment/entity/tag/TagsTestCase.java b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/segment/entity/tag/TagsTestCase.java new file mode 100644 index 000000000..5dafb8bf3 --- /dev/null +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/segment/entity/tag/TagsTestCase.java @@ -0,0 +1,28 @@ +package com.a.eye.skywalking.collector.worker.segment.entity.tag; + +import com.a.eye.skywalking.collector.worker.segment.entity.Span; +import java.lang.reflect.Field; +import java.util.LinkedHashMap; +import java.util.Map; +import org.junit.Assert; +import org.junit.Test; + +/** + * @author pengys5 + */ +public class TagsTestCase { + + @Test + public void test() throws NoSuchFieldException, IllegalAccessException { + Span span = new Span(); + + Map tagsWithStr = new LinkedHashMap<>(); + tagsWithStr.put("span.layer", "db"); + + Field testAField = span.getClass().getDeclaredField("tagsWithStr"); + testAField.setAccessible(true); + testAField.set(span, tagsWithStr); + + Assert.assertEquals("db", Tags.SPAN_LAYER.get(span)); + } +} diff --git a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/segment/persistence/SegmentCostSaveTestCase.java b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/segment/persistence/SegmentCostSaveTestCase.java index d0ea11eb2..a29a16476 100644 --- a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/segment/persistence/SegmentCostSaveTestCase.java +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/segment/persistence/SegmentCostSaveTestCase.java @@ -3,17 +3,11 @@ package com.a.eye.skywalking.collector.worker.segment.persistence; import com.a.eye.skywalking.collector.actor.ClusterWorkerContext; import com.a.eye.skywalking.collector.actor.LocalWorkerContext; import com.a.eye.skywalking.collector.actor.selector.RollingSelector; -import com.a.eye.skywalking.collector.worker.config.CacheSizeConfig; -import com.a.eye.skywalking.collector.worker.config.WorkerConfig; import com.a.eye.skywalking.collector.worker.mock.MockEsBulkClient; import com.a.eye.skywalking.collector.worker.mock.SaveToEsSourceAnswer; import com.a.eye.skywalking.collector.worker.segment.SegmentCostIndex; -import com.a.eye.skywalking.collector.worker.segment.SegmentPost; import com.a.eye.skywalking.collector.worker.segment.mock.SegmentMock; import com.a.eye.skywalking.collector.worker.storage.EsClient; -import com.a.eye.skywalking.collector.worker.tools.DateTools; -import com.google.gson.JsonArray; -import com.google.gson.JsonObject; import org.apache.logging.log4j.LogManager; import org.elasticsearch.client.Client; import org.junit.Assert; @@ -25,7 +19,6 @@ import org.powermock.core.classloader.annotations.PowerMockIgnore; import org.powermock.core.classloader.annotations.PrepareForTest; import org.powermock.modules.junit4.PowerMockRunner; -import java.util.List; import java.util.TimeZone; import static org.powermock.api.mockito.PowerMockito.when; @@ -77,136 +70,8 @@ public class SegmentCostSaveTestCase { @Test public void testFactory() { - Assert.assertEquals(SegmentCostSave.class.getSimpleName(), SegmentCostSave.Factory.INSTANCE.role().roleName()); - Assert.assertEquals(SegmentCostSave.class.getSimpleName(), SegmentCostSave.Factory.INSTANCE.workerInstance(null).getClass().getSimpleName()); - - int testSize = 10; - WorkerConfig.Queue.Segment.SegmentCostSave.SIZE = testSize; - Assert.assertEquals(testSize, SegmentCostSave.Factory.INSTANCE.queueSize()); - } - - @Test - public void testPersistenceServiceAnalyse() throws Exception { - CacheSizeConfig.Cache.Persistence.SIZE = 1; - - List segmentWithTimeSliceList = segmentMock.mockPersistenceServiceSegmentTimeSlice(); - - for (SegmentPost.SegmentWithTimeSlice segmentWithTimeSlice : segmentWithTimeSliceList) { - segmentCostSave.analyse(segmentWithTimeSlice); - } - - JsonArray sourceArray = saveToEsSourceAnswer.sourceObj.getSource(); - Assert.assertEquals(1, sourceArray.size()); - - JsonObject costJsonObj = sourceArray.get(0).getAsJsonObject(); - Assert.assertEquals("Segment.1490922929274.1382198130.5997.47.1", costJsonObj.get("segId").getAsString()); - Assert.assertEquals(1490922929274L, costJsonObj.get("startTime").getAsLong()); - Assert.assertEquals(1490922929288L, costJsonObj.get("END_TIME").getAsLong()); - Assert.assertEquals("/persistence/query", costJsonObj.get("operationName").getAsString()); - Assert.assertEquals(DateTools.changeToUTCSlice(201703310915L), costJsonObj.get("timeSlice").getAsLong()); - Assert.assertEquals(14, costJsonObj.get("cost").getAsInt()); - } - - @Test - public void testCacheServiceAnalyse() throws Exception { - CacheSizeConfig.Cache.Persistence.SIZE = 2; - - List segmentWithTimeSliceList = segmentMock.mockCacheServiceSegmentSegmentTimeSlice(); - - for (SegmentPost.SegmentWithTimeSlice segmentWithTimeSlice : segmentWithTimeSliceList) { - segmentCostSave.analyse(segmentWithTimeSlice); - } - - JsonArray sourceArray = saveToEsSourceAnswer.sourceObj.getSource(); - Assert.assertEquals(2, sourceArray.size()); - - JsonObject costJsonObj_0 = null; - JsonObject costJsonObj_1 = null; - for (int i = 0; i < sourceArray.size(); i++) { - JsonObject costJsonObj = sourceArray.get(i).getAsJsonObject(); - if (costJsonObj.get("segId").getAsString().equals("Segment.1490922929258.927784221.5991.27.1")) { - costJsonObj_0 = costJsonObj; - } else if (costJsonObj.get("segId").getAsString().equals("Segment.1490922929298.927784221.5991.28.1")) { - costJsonObj_1 = costJsonObj; - } - } - - Assert.assertEquals(1490922929258L, costJsonObj_0.get("startTime").getAsLong()); - Assert.assertEquals(1490922929261L, costJsonObj_0.get("END_TIME").getAsLong()); - Assert.assertEquals("com.a.eye.skywalking.test.cache.CacheService.findCache(java.lang.String)", costJsonObj_0.get("operationName").getAsString()); - Assert.assertEquals(DateTools.changeToUTCSlice(201703310915L), costJsonObj_0.get("timeSlice").getAsLong()); - Assert.assertEquals(3, costJsonObj_0.get("cost").getAsInt()); - - Assert.assertEquals(1490922929298L, costJsonObj_1.get("startTime").getAsLong()); - Assert.assertEquals(1490922929303L, costJsonObj_1.get("END_TIME").getAsLong()); - Assert.assertEquals("com.a.eye.skywalking.test.cache.CacheService.updateCache(java.lang.String,java.lang.String)", costJsonObj_1.get("operationName").getAsString()); - Assert.assertEquals(DateTools.changeToUTCSlice(201703310915L), costJsonObj_1.get("timeSlice").getAsLong()); - Assert.assertEquals(5, costJsonObj_1.get("cost").getAsInt()); - } - - @Test - public void testPortalServiceAnalyse() throws Exception { - CacheSizeConfig.Cache.Persistence.SIZE = 1; - - List segmentWithTimeSliceList = segmentMock.mockPortalServiceSegmentSegmentTimeSlice(); - - for (SegmentPost.SegmentWithTimeSlice segmentWithTimeSlice : segmentWithTimeSliceList) { - segmentCostSave.analyse(segmentWithTimeSlice); - } - - JsonArray sourceArray = saveToEsSourceAnswer.sourceObj.getSource(); - Assert.assertEquals(1, sourceArray.size()); - - JsonObject costJsonObj = sourceArray.get(0).getAsJsonObject(); - Assert.assertEquals("Segment.1490922929254.1797892356.6003.69.1", costJsonObj.get("segId").getAsString()); - Assert.assertEquals(1490922929254L, costJsonObj.get("startTime").getAsLong()); - Assert.assertEquals(1490922929306L, costJsonObj.get("END_TIME").getAsLong()); - Assert.assertEquals("/portal/", costJsonObj.get("operationName").getAsString()); - Assert.assertEquals(DateTools.changeToUTCSlice(201703310915L), costJsonObj.get("timeSlice").getAsLong()); - Assert.assertEquals(52, costJsonObj.get("cost").getAsInt()); - } - - @Test - public void testCacheServiceExceptionAnalyse() throws Exception { - CacheSizeConfig.Cache.Persistence.SIZE = 1; - - List segmentWithTimeSliceList = segmentMock.mockCacheServiceExceptionSegmentTimeSlice(); - - for (SegmentPost.SegmentWithTimeSlice segmentWithTimeSlice : segmentWithTimeSliceList) { - segmentCostSave.analyse(segmentWithTimeSlice); - } - - JsonArray sourceArray = saveToEsSourceAnswer.sourceObj.getSource(); - Assert.assertEquals(1, sourceArray.size()); - - JsonObject costJsonObj = sourceArray.get(0).getAsJsonObject(); - Assert.assertEquals("Segment.1490923010328.927784221.5991.32.1", costJsonObj.get("segId").getAsString()); - Assert.assertEquals(1490923010328L, costJsonObj.get("startTime").getAsLong()); - Assert.assertEquals(1490923010329L, costJsonObj.get("END_TIME").getAsLong()); - Assert.assertEquals("com.a.eye.skywalking.test.cache.CacheService.findCacheWithException(java.lang.String)", costJsonObj.get("operationName").getAsString()); - Assert.assertEquals(DateTools.changeToUTCSlice(201703310916L), costJsonObj.get("timeSlice").getAsLong()); - Assert.assertEquals(1, costJsonObj.get("cost").getAsInt()); - } - - @Test - public void testPortalServiceExceptionAnalyse() throws Exception { - CacheSizeConfig.Cache.Persistence.SIZE = 1; - - List segmentWithTimeSliceList = segmentMock.mockPortalServiceExceptionSegmentTimeSlice(); - - for (SegmentPost.SegmentWithTimeSlice segmentWithTimeSlice : segmentWithTimeSliceList) { - segmentCostSave.analyse(segmentWithTimeSlice); - } - - JsonArray sourceArray = saveToEsSourceAnswer.sourceObj.getSource(); - Assert.assertEquals(1, sourceArray.size()); - - JsonObject costJsonObj = sourceArray.get(0).getAsJsonObject(); - Assert.assertEquals("Segment.1490923010324.1797892356.6003.67.1", costJsonObj.get("segId").getAsString()); - Assert.assertEquals(1490923010324L, costJsonObj.get("startTime").getAsLong()); - Assert.assertEquals(1490923010336L, costJsonObj.get("END_TIME").getAsLong()); - Assert.assertEquals("/portal/cache/exception/test", costJsonObj.get("operationName").getAsString()); - Assert.assertEquals(DateTools.changeToUTCSlice(201703310916L), costJsonObj.get("timeSlice").getAsLong()); - Assert.assertEquals(12, costJsonObj.get("cost").getAsInt()); + SegmentCostSave.Factory factory = new SegmentCostSave.Factory(); + Assert.assertEquals(SegmentCostSave.class.getSimpleName(), factory.role().roleName()); + Assert.assertEquals(SegmentCostSave.class.getSimpleName(), factory.workerInstance(null).getClass().getSimpleName()); } } diff --git a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/segment/persistence/SegmentExceptionSaveTestCase.java b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/segment/persistence/SegmentExceptionSaveTestCase.java index 6426bf0d9..294deedc1 100644 --- a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/segment/persistence/SegmentExceptionSaveTestCase.java +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/segment/persistence/SegmentExceptionSaveTestCase.java @@ -4,7 +4,6 @@ import com.a.eye.skywalking.collector.actor.ClusterWorkerContext; import com.a.eye.skywalking.collector.actor.LocalWorkerContext; import com.a.eye.skywalking.collector.actor.selector.RollingSelector; import com.a.eye.skywalking.collector.worker.config.CacheSizeConfig; -import com.a.eye.skywalking.collector.worker.config.WorkerConfig; import com.a.eye.skywalking.collector.worker.mock.MockEsBulkClient; import com.a.eye.skywalking.collector.worker.segment.SegmentExceptionIndex; import com.a.eye.skywalking.collector.worker.segment.SegmentPost; @@ -81,44 +80,9 @@ public class SegmentExceptionSaveTestCase { @Test public void testFactory() { - Assert.assertEquals(SegmentExceptionSave.class.getSimpleName(), SegmentExceptionSave.Factory.INSTANCE.role().roleName()); - Assert.assertEquals(SegmentExceptionSave.class.getSimpleName(), SegmentExceptionSave.Factory.INSTANCE.workerInstance(null).getClass().getSimpleName()); - - int testSize = 10; - WorkerConfig.Queue.Segment.SegmentExceptionSave.SIZE = testSize; - Assert.assertEquals(testSize, SegmentExceptionSave.Factory.INSTANCE.queueSize()); - } - - @Test - public void testSuccessAnalyse() throws Exception { - CacheSizeConfig.Cache.Persistence.SIZE = 1; - - List cacheServiceList = segmentMock.mockCacheServiceSegmentSegmentTimeSlice(); - for (SegmentPost.SegmentWithTimeSlice segmentWithTimeSlice : cacheServiceList) { - segmentExceptionSave.analyse(segmentWithTimeSlice); - } - - JsonObject isError_1 = saveToEsSource.isErrorMap.get("Segment.1490922929258.927784221.5991.27.1"); - Assert.assertEquals(false, isError_1.get("isError").getAsBoolean()); - Assert.assertEquals(0, isError_1.get("errorKind").getAsJsonArray().size()); - - JsonObject isError_2 = saveToEsSource.isErrorMap.get("Segment.1490922929298.927784221.5991.28.1"); - Assert.assertEquals(false, isError_2.get("isError").getAsBoolean()); - Assert.assertEquals(0, isError_2.get("errorKind").getAsJsonArray().size()); - } - - @Test - public void testErrorAnalyse() throws Exception { - CacheSizeConfig.Cache.Persistence.SIZE = 1; - - List cacheServiceList = segmentMock.mockCacheServiceExceptionSegmentTimeSlice(); - for (SegmentPost.SegmentWithTimeSlice segmentWithTimeSlice : cacheServiceList) { - segmentExceptionSave.analyse(segmentWithTimeSlice); - } - - JsonObject isError_1 = saveToEsSource.isErrorMap.get("Segment.1490923010328.927784221.5991.32.1"); - Assert.assertEquals(true, isError_1.get("isError").getAsBoolean()); - Assert.assertEquals("com.weibo.api.motan.exception.MotanBizException", isError_1.get("errorKind").getAsJsonArray().get(0).getAsString()); + SegmentExceptionSave.Factory factory = new SegmentExceptionSave.Factory(); + Assert.assertEquals(SegmentExceptionSave.class.getSimpleName(), factory.role().roleName()); + Assert.assertEquals(SegmentExceptionSave.class.getSimpleName(), factory.workerInstance(null).getClass().getSimpleName()); } class SaveToEsSource implements Answer { @@ -128,7 +92,7 @@ public class SegmentExceptionSaveTestCase { @Override public Object answer(InvocationOnMock invocation) throws Throwable { Gson gson = new Gson(); - String source = (String)invocation.getArguments()[0]; + String source = (String) invocation.getArguments()[0]; JsonObject sourceJsonObj = gson.fromJson(source, JsonObject.class); logger.info("es source: %s", sourceJsonObj.toString()); isErrorMap.put(sourceJsonObj.get("segId").getAsString(), sourceJsonObj); diff --git a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/segment/persistence/SegmentSaveTestCase.java b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/segment/persistence/SegmentSaveTestCase.java index d036b5716..86a07e7da 100644 --- a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/segment/persistence/SegmentSaveTestCase.java +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/segment/persistence/SegmentSaveTestCase.java @@ -4,10 +4,8 @@ import com.a.eye.skywalking.collector.actor.ClusterWorkerContext; import com.a.eye.skywalking.collector.actor.LocalWorkerContext; import com.a.eye.skywalking.collector.actor.selector.RollingSelector; import com.a.eye.skywalking.collector.worker.config.CacheSizeConfig; -import com.a.eye.skywalking.collector.worker.config.WorkerConfig; import com.a.eye.skywalking.collector.worker.mock.MockEsBulkClient; import com.a.eye.skywalking.collector.worker.segment.SegmentIndex; -import com.a.eye.skywalking.collector.worker.segment.entity.Segment; import com.a.eye.skywalking.collector.worker.storage.EsClient; import com.google.gson.Gson; import com.google.gson.JsonObject; @@ -21,7 +19,6 @@ import org.mockito.stubbing.Answer; import org.powermock.core.classloader.annotations.PowerMockIgnore; import org.powermock.core.classloader.annotations.PrepareForTest; import org.powermock.modules.junit4.PowerMockRunner; -import org.powermock.reflect.Whitebox; import java.util.TimeZone; @@ -73,23 +70,9 @@ public class SegmentSaveTestCase { @Test public void testFactory() { - Assert.assertEquals(SegmentSave.class.getSimpleName(), SegmentSave.Factory.INSTANCE.role().roleName()); - Assert.assertEquals(SegmentSave.class.getSimpleName(), SegmentSave.Factory.INSTANCE.workerInstance(null).getClass().getSimpleName()); - - int testSize = 10; - WorkerConfig.Queue.Segment.SegmentSave.SIZE = testSize; - Assert.assertEquals(testSize, SegmentSave.Factory.INSTANCE.queueSize()); - } - - @Test - public void testAnalyse() throws Exception { - CacheSizeConfig.Cache.Persistence.SIZE = 1; - - Segment segment = new Segment(); - segment.setJsonStr("{\"ts\":\"segment_1\"}"); - segmentSave.analyse(segment); - - Assert.assertEquals("segment_1", saveToEsSource.ts); + SegmentSave.Factory factory = new SegmentSave.Factory(); + Assert.assertEquals(SegmentSave.class.getSimpleName(), factory.role().roleName()); + Assert.assertEquals(SegmentSave.class.getSimpleName(), factory.workerInstance(null).getClass().getSimpleName()); } class SaveToEsSource implements Answer { diff --git a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/span/SpanGetWithIdTestCase.java b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/span/SpanGetWithIdTestCase.java index de33510d7..5c1b5a825 100644 --- a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/span/SpanGetWithIdTestCase.java +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/span/SpanGetWithIdTestCase.java @@ -63,14 +63,15 @@ public class SpanGetWithIdTestCase { @Test public void testFactory() { - Assert.assertEquals(SpanGetWithId.class.getSimpleName(), SpanGetWithId.Factory.INSTANCE.role().roleName()); - Assert.assertEquals(SpanGetWithId.class.getSimpleName(), SpanGetWithId.Factory.INSTANCE.workerInstance(null).getClass().getSimpleName()); - Assert.assertEquals("/span/spanId", SpanGetWithId.Factory.INSTANCE.servletPath()); + SpanGetWithId.Factory factory = new SpanGetWithId.Factory(); + Assert.assertEquals(SpanGetWithId.class.getSimpleName(), factory.role().roleName()); + Assert.assertEquals(SpanGetWithId.class.getSimpleName(), factory.workerInstance(null).getClass().getSimpleName()); + Assert.assertEquals("/span/spanId", factory.servletPath()); } @Test public void testPreStart() throws ProviderNotFoundException { - when(clusterWorkerContext.findProvider(SpanSearchWithId.WorkerRole.INSTANCE)).thenReturn(SpanSearchWithId.Factory.INSTANCE); + when(clusterWorkerContext.findProvider(SpanSearchWithId.WorkerRole.INSTANCE)).thenReturn(new SpanSearchWithId.Factory()); ArgumentCaptor argumentCaptor = ArgumentCaptor.forClass(SpanSearchWithId.WorkerRole.class); getObj.preStart(); @@ -99,7 +100,7 @@ public class SpanGetWithIdTestCase { @Override public Object answer(InvocationOnMock invocation) throws Throwable { - SpanSearchWithId.RequestEntity requestEntity = (SpanSearchWithId.RequestEntity)invocation.getArguments()[0]; + SpanSearchWithId.RequestEntity requestEntity = (SpanSearchWithId.RequestEntity) invocation.getArguments()[0]; Assert.assertEquals("10", requestEntity.getSegId()); Assert.assertEquals("20", requestEntity.getSpanId()); return null; diff --git a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/span/persistence/SpanSearchWithIdTestCase.java b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/span/persistence/SpanSearchWithIdTestCase.java index ba894b5bf..49c89c911 100644 --- a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/span/persistence/SpanSearchWithIdTestCase.java +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/span/persistence/SpanSearchWithIdTestCase.java @@ -53,8 +53,9 @@ public class SpanSearchWithIdTestCase { @Test public void testFactory() { - Assert.assertEquals(SpanSearchWithId.class.getSimpleName(), SpanSearchWithId.Factory.INSTANCE.role().roleName()); - Assert.assertEquals(SpanSearchWithId.class.getSimpleName(), SpanSearchWithId.Factory.INSTANCE.workerInstance(null).getClass().getSimpleName()); + SpanSearchWithId.Factory factory = new SpanSearchWithId.Factory(); + Assert.assertEquals(SpanSearchWithId.class.getSimpleName(), factory.role().roleName()); + Assert.assertEquals(SpanSearchWithId.class.getSimpleName(), factory.workerInstance(null).getClass().getSimpleName()); } @Test @@ -74,7 +75,6 @@ public class SpanSearchWithIdTestCase { spanSearchWithId.onWork(request, response); JsonObject spanJsonObj = response.get(Const.RESULT).getAsJsonObject(); - System.out.println(spanJsonObj.toString()); String value = spanJsonObj.get("operationName").getAsString(); Assert.assertEquals("/portal/", value); } diff --git a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/storage/AbstractIndexTestCase.java b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/storage/AbstractIndexTestCase.java index cfbbc8b32..f4fe462eb 100644 --- a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/storage/AbstractIndexTestCase.java +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/storage/AbstractIndexTestCase.java @@ -22,7 +22,7 @@ public class AbstractIndexTestCase { @Test public void testCreateSettingBuilder() throws IOException { IndexTest indexTest = new IndexTest(); - Assert.assertEquals("{\"index.number_of_shards\":\"\",\"index.number_of_replicas\":\"\"}", indexTest.createSettingBuilder().string()); + Assert.assertEquals("{\"index.number_of_shards\":\"\",\"index.number_of_replicas\":\"\",\"index.refresh_interval\":\"0s\"}", indexTest.createSettingBuilder().string()); } class IndexTest extends AbstractIndex { @@ -49,5 +49,10 @@ public class AbstractIndexTestCase { public String index() { return "Index_Test"; } + + @Override + public int refreshInterval() { + return 0; + } } } diff --git a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/storage/IndexCreatorTestCase.java b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/storage/IndexCreatorTestCase.java index 416b2e2a8..2bb19fed0 100644 --- a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/storage/IndexCreatorTestCase.java +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/storage/IndexCreatorTestCase.java @@ -119,6 +119,11 @@ public class IndexCreatorTestCase { return false; } + @Override + public int refreshInterval() { + return 0; + } + @Override public XContentBuilder createMappingBuilder() throws IOException { return XContentFactory.jsonBuilder(); diff --git a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/storage/JoinAndSplitAnalysisDataTestCase.java b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/storage/JoinAndSplitAnalysisDataTestCase.java new file mode 100644 index 000000000..074c5d87c --- /dev/null +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/storage/JoinAndSplitAnalysisDataTestCase.java @@ -0,0 +1,28 @@ +package com.a.eye.skywalking.collector.worker.storage; + +import org.junit.Assert; +import org.junit.Test; + +/** + * @author pengys5 + */ +public class JoinAndSplitAnalysisDataTestCase { + + @Test + public void getOrCreate() { + JoinAndSplitAnalysisData joinAndSplitAnalysisData = new JoinAndSplitAnalysisData(); + JoinAndSplitData joinAndSplitData = joinAndSplitAnalysisData.getOrCreate("Test1"); + + JoinAndSplitData joinAndSplitData_1 = joinAndSplitAnalysisData.getOrCreate("Test1"); + Assert.assertEquals(joinAndSplitData, joinAndSplitData_1); + } + + @Test + public void asMap() { + JoinAndSplitAnalysisData joinAndSplitAnalysisData = new JoinAndSplitAnalysisData(); + JoinAndSplitData joinAndSplitData = joinAndSplitAnalysisData.getOrCreate("Test1"); + + JoinAndSplitData joinAndSplitData_1 = joinAndSplitAnalysisData.asMap().get("Test1"); + Assert.assertEquals(joinAndSplitData, joinAndSplitData_1); + } +} diff --git a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/storage/JoinAndSplitPersistenceDataTestCase.java b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/storage/JoinAndSplitPersistenceDataTestCase.java new file mode 100644 index 000000000..4d4565b69 --- /dev/null +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/storage/JoinAndSplitPersistenceDataTestCase.java @@ -0,0 +1,66 @@ +package com.a.eye.skywalking.collector.worker.storage; + +import java.lang.reflect.Field; +import org.junit.Assert; +import org.junit.Test; + +/** + * @author pengys5 + */ +public class JoinAndSplitPersistenceDataTestCase { + + @Test + public void testGetElseCreate() { + JoinAndSplitPersistenceData persistenceData = new JoinAndSplitPersistenceData(); + persistenceData.hold(); + JoinAndSplitData joinAndSplitData = persistenceData.getOrCreate("test"); + Assert.assertEquals("test", joinAndSplitData.getId()); + } + + @Test + public void testSize() { + JoinAndSplitPersistenceData persistenceData = new JoinAndSplitPersistenceData(); + persistenceData.hold(); + persistenceData.getOrCreate("test_1"); + Assert.assertEquals(1, persistenceData.getCurrentAndHold().size()); + persistenceData.getOrCreate("test_1"); + Assert.assertEquals(1, persistenceData.getCurrentAndHold().size()); + persistenceData.getOrCreate("test_2"); + Assert.assertEquals(2, persistenceData.getCurrentAndHold().size()); + } + + @Test + public void testClear() { + JoinAndSplitPersistenceData persistenceData = new JoinAndSplitPersistenceData(); + persistenceData.hold(); + persistenceData.getOrCreate("test_1"); + Assert.assertEquals(1, persistenceData.getCurrentAndHold().size()); + persistenceData.getCurrentAndHold().clear(); + Assert.assertEquals(0, persistenceData.getCurrentAndHold().size()); + } + + @Test + public void hold() throws NoSuchFieldException, IllegalAccessException { + JoinAndSplitPersistenceData persistenceData = new JoinAndSplitPersistenceData(); + persistenceData.hold(); + + Field testAField = persistenceData.getClass().getDeclaredField("lockedWindowData"); + testAField.setAccessible(true); + WindowData windowData = (WindowData)testAField.get(persistenceData); + Assert.assertEquals(true, windowData.isHolding()); + } + + @Test + public void release() throws NoSuchFieldException, IllegalAccessException { + JoinAndSplitPersistenceData persistenceData = new JoinAndSplitPersistenceData(); + persistenceData.hold(); + + Field testAField = persistenceData.getClass().getDeclaredField("lockedWindowData"); + testAField.setAccessible(true); + WindowData windowData = (WindowData)testAField.get(persistenceData); + Assert.assertEquals(true, windowData.isHolding()); + + persistenceData.release(); + Assert.assertEquals(false, windowData.isHolding()); + } +} diff --git a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/storage/MergeDataTestCase.java b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/storage/MergeDataTestCase.java deleted file mode 100644 index eaedddfad..000000000 --- a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/storage/MergeDataTestCase.java +++ /dev/null @@ -1,64 +0,0 @@ -package com.a.eye.skywalking.collector.worker.storage; - -import org.junit.Assert; -import org.junit.Test; - -import java.util.HashMap; -import java.util.Map; - -/** - * @author pengys5 - */ -public class MergeDataTestCase { - - @Test - public void testConstruction() { - String id = "Test"; - MergeData mergeData = new MergeData(id); - - Assert.assertEquals(id, mergeData.getId()); - } - - @Test - public void testSetMergeData() { - String id = "Test"; - MergeData mergeData = new MergeData(id); - - mergeData.setMergeData("Column_1", "Value_1"); - Assert.assertEquals("Value_1", mergeData.toMap().get("Column_1")); - mergeData.setMergeData("Column_1", "Value_1"); - Assert.assertEquals("Value_1", mergeData.toMap().get("Column_1")); - - mergeData.setMergeData("Column_1", "Value_2"); - Assert.assertEquals("Value_2,Value_1", mergeData.toMap().get("Column_1")); - - mergeData.setMergeData("Column_2", "Value_3"); - Assert.assertEquals("Value_3", mergeData.toMap().get("Column_2")); - } - - @Test - public void testMerge() { - String id = "Test"; - MergeData mergeData_1 = new MergeData(id); - mergeData_1.setMergeData("Column_1", "Value_1"); - - MergeData mergeData_2 = new MergeData(id); - mergeData_2.setMergeData("Column_1", "Value_2"); - - mergeData_1.merge(mergeData_2); - Assert.assertEquals("Value_2,Value_1", mergeData_1.toMap().get("Column_1")); - } - - @Test - public void testMergeMap() { - String id = "Test"; - MergeData mergeData_1 = new MergeData(id); - mergeData_1.setMergeData("Column_1", "Value_1"); - - Map dbData = new HashMap<>(); - dbData.put("Column_1", "Value_2"); - - mergeData_1.merge(dbData); - Assert.assertEquals("Value_2,Value_1", mergeData_1.toMap().get("Column_1")); - } -} diff --git a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/storage/MergePersistenceDataTestCase.java b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/storage/MergePersistenceDataTestCase.java deleted file mode 100644 index d8c0c48f6..000000000 --- a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/storage/MergePersistenceDataTestCase.java +++ /dev/null @@ -1,86 +0,0 @@ -package com.a.eye.skywalking.collector.worker.storage; - -import org.junit.Assert; -import org.junit.Test; - -import java.util.Iterator; -import java.util.Map; - -/** - * @author pengys5 - */ -public class MergePersistenceDataTestCase { - - @Test - public void testGetElseCreate() { - MergePersistenceData persistenceData = new MergePersistenceData(); - MergeData mergeData = persistenceData.getElseCreate("test"); - Assert.assertEquals("test", mergeData.getId()); - } - - @Test - public void testSize() { - MergePersistenceData persistenceData = new MergePersistenceData(); - persistenceData.getElseCreate("test_1"); - Assert.assertEquals(1, persistenceData.size()); - persistenceData.getElseCreate("test_1"); - Assert.assertEquals(1, persistenceData.size()); - persistenceData.getElseCreate("test_2"); - Assert.assertEquals(2, persistenceData.size()); - } - - @Test - public void testClear() { - MergePersistenceData persistenceData = new MergePersistenceData(); - persistenceData.getElseCreate("test_1"); - Assert.assertEquals(1, persistenceData.size()); - persistenceData.clear(); - Assert.assertEquals(0, persistenceData.size()); - } - - @Test - public void testPushOne() { - MergePersistenceData persistenceData = new MergePersistenceData(); - persistenceData.getElseCreate("test_1"); - persistenceData.getElseCreate("test_2"); - persistenceData.getElseCreate("test_3"); - - Assert.assertEquals(3, persistenceData.size()); - MergeData mergeData = persistenceData.pushOne(); - Assert.assertEquals("test_3", mergeData.getId()); - Assert.assertEquals(2, persistenceData.size()); - - mergeData = persistenceData.pushOne(); - Assert.assertEquals("test_2", mergeData.getId()); - Assert.assertEquals(1, persistenceData.size()); - - mergeData = persistenceData.pushOne(); - Assert.assertEquals("test_1", mergeData.getId()); - Assert.assertEquals(0, persistenceData.size()); - } - - @Test(expected = UnsupportedOperationException.class) - public void testForEach() { - MergePersistenceData persistenceData = new MergePersistenceData(); - persistenceData.forEach(c -> System.out.println(c)); - } - - @Test(expected = UnsupportedOperationException.class) - public void testSpliterator() { - MergePersistenceData persistenceData = new MergePersistenceData(); - persistenceData.spliterator(); - } - - @Test - public void testIterator() { - MergePersistenceData persistenceData = new MergePersistenceData(); - persistenceData.getElseCreate("test_1"); - persistenceData.getElseCreate("test_2"); - persistenceData.getElseCreate("test_3"); - - Iterator> iterator = persistenceData.iterator(); - Assert.assertEquals("test_3", iterator.next().getKey()); - Assert.assertEquals("test_2", iterator.next().getKey()); - Assert.assertEquals("test_1", iterator.next().getKey()); - } -} diff --git a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/storage/MergeWindowDataTestCase.java b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/storage/MergeWindowDataTestCase.java new file mode 100644 index 000000000..3667d8f71 --- /dev/null +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/storage/MergeWindowDataTestCase.java @@ -0,0 +1,64 @@ +package com.a.eye.skywalking.collector.worker.storage; + +import org.junit.Assert; +import org.junit.Test; + +import java.util.HashMap; +import java.util.Map; + +/** + * @author pengys5 + */ +public class MergeWindowDataTestCase { + + @Test + public void testConstruction() { + String id = "Test"; + JoinAndSplitData joinAndSplitData = new JoinAndSplitData(id); + + Assert.assertEquals(id, joinAndSplitData.getId()); + } + + @Test + public void testSetMergeData() { + String id = "Test"; + JoinAndSplitData joinAndSplitData = new JoinAndSplitData(id); + + joinAndSplitData.set("Column_1", "Value_1"); + Assert.assertEquals("Value_1", joinAndSplitData.asMap().get("Column_1")); + joinAndSplitData.set("Column_1", "Value_1"); + Assert.assertEquals("Value_1", joinAndSplitData.asMap().get("Column_1")); + + joinAndSplitData.set("Column_1", "Value_2"); + Assert.assertEquals("Value_2,Value_1", joinAndSplitData.asMap().get("Column_1")); + + joinAndSplitData.set("Column_2", "Value_3"); + Assert.assertEquals("Value_3", joinAndSplitData.asMap().get("Column_2")); + } + + @Test + public void testMerge() { + String id = "Test"; + JoinAndSplitData joinAndSplitData_1 = new JoinAndSplitData(id); + joinAndSplitData_1.set("Column_1", "Value_1"); + + JoinAndSplitData joinAndSplitData_2 = new JoinAndSplitData(id); + joinAndSplitData_2.set("Column_1", "Value_2"); + + joinAndSplitData_1.merge(joinAndSplitData_2); + Assert.assertEquals("Value_2,Value_1", joinAndSplitData_1.asMap().get("Column_1")); + } + + @Test + public void testMergeMap() { + String id = "Test"; + JoinAndSplitData joinAndSplitData_1 = new JoinAndSplitData(id); + joinAndSplitData_1.set("Column_1", "Value_1"); + + Map dbData = new HashMap<>(); + dbData.put("Column_1", "Value_2"); + + joinAndSplitData_1.merge(dbData); + Assert.assertEquals("Value_2,Value_1", joinAndSplitData_1.asMap().get("Column_1")); + } +} diff --git a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/storage/MetricAnalysisDataTestCase.java b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/storage/MetricAnalysisDataTestCase.java new file mode 100644 index 000000000..171419960 --- /dev/null +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/storage/MetricAnalysisDataTestCase.java @@ -0,0 +1,31 @@ +package com.a.eye.skywalking.collector.worker.storage; + +import com.a.eye.skywalking.collector.worker.Const; +import org.junit.Assert; +import org.junit.Test; + +/** + * @author pengys5 + */ +public class MetricAnalysisDataTestCase { + + @Test + public void getOrCreate() { + String id = "2016" + Const.ID_SPLIT + "A" + Const.ID_SPLIT + "B"; + MetricAnalysisData metricAnalysisData = new MetricAnalysisData(); + MetricData metricData = metricAnalysisData.getOrCreate(id); + + MetricData metricData_1 = metricAnalysisData.getOrCreate(id); + Assert.assertEquals(metricData, metricData_1); + } + + @Test + public void asMap() { + String id = "2016" + Const.ID_SPLIT + "A" + Const.ID_SPLIT + "B"; + MetricAnalysisData metricAnalysisData = new MetricAnalysisData(); + MetricData metricData = metricAnalysisData.getOrCreate(id); + + MetricData metricData_1 = metricAnalysisData.asMap().get(id); + Assert.assertEquals(metricData, metricData_1); + } +} diff --git a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/storage/MetricPersistenceDataTestCase.java b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/storage/MetricPersistenceDataTestCase.java deleted file mode 100644 index 717780fed..000000000 --- a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/storage/MetricPersistenceDataTestCase.java +++ /dev/null @@ -1,79 +0,0 @@ -package com.a.eye.skywalking.collector.worker.storage; - -import com.a.eye.skywalking.collector.worker.Const; -import org.junit.Assert; -import org.junit.Test; - -import java.util.Iterator; -import java.util.Map; - -/** - * @author pengys5 - */ -public class MetricPersistenceDataTestCase { - - @Test - public void testGetElseCreate() { - String id = "2016" + Const.ID_SPLIT + "A" + Const.ID_SPLIT + "B"; - - MetricPersistenceData metricPersistenceData = new MetricPersistenceData(); - MetricData metricData = metricPersistenceData.getElseCreate(id); - metricData.setMetric("Column_1", 10L); - Assert.assertEquals(id, metricData.getId()); - - MetricData metricData1 = metricPersistenceData.getElseCreate(id); - Assert.assertEquals(10L, metricData1.toMap().get("Column_1")); - } - - @Test - public void testSize() { - String id = "2016" + Const.ID_SPLIT + "A" + Const.ID_SPLIT + "B"; - - MetricPersistenceData metricPersistenceData = new MetricPersistenceData(); - metricPersistenceData.getElseCreate(id); - - Assert.assertEquals(1, metricPersistenceData.size()); - String id_1 = "2016" + Const.ID_SPLIT + "B" + Const.ID_SPLIT + "C"; - metricPersistenceData.getElseCreate(id_1); - Assert.assertEquals(2, metricPersistenceData.size()); - - metricPersistenceData.clear(); - Assert.assertEquals(0, metricPersistenceData.size()); - } - - @Test - public void testPushOne() { - String id_1 = "2016" + Const.ID_SPLIT + "A" + Const.ID_SPLIT + "B"; - String id_2 = "2016" + Const.ID_SPLIT + "B" + Const.ID_SPLIT + "C"; - - MetricPersistenceData metricPersistenceData = new MetricPersistenceData(); - metricPersistenceData.getElseCreate(id_1); - metricPersistenceData.getElseCreate(id_2); - - MetricData metricData_2 = metricPersistenceData.pushOne(); - Assert.assertEquals(id_2, metricData_2.getId()); - - MetricData metricData_1 = metricPersistenceData.pushOne(); - Assert.assertEquals(id_1, metricData_1.getId()); - } - - @Test(expected = UnsupportedOperationException.class) - public void testSpliterator() { - MetricPersistenceData metricPersistenceData = new MetricPersistenceData(); - metricPersistenceData.spliterator(); - } - - @Test - public void testIterator() { - String id_1 = "2016" + Const.ID_SPLIT + "A" + Const.ID_SPLIT + "B"; - String id_2 = "2016" + Const.ID_SPLIT + "B" + Const.ID_SPLIT + "C"; - - MetricPersistenceData metricPersistenceData = new MetricPersistenceData(); - metricPersistenceData.getElseCreate(id_1); - metricPersistenceData.getElseCreate(id_2); - - Iterator> iterator = metricPersistenceData.iterator(); - Assert.assertEquals(id_2, iterator.next().getKey()); - Assert.assertEquals(id_1, iterator.next().getKey()); - } -} diff --git a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/storage/MetricPersistenceTestCase.java b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/storage/MetricPersistenceTestCase.java new file mode 100644 index 000000000..0b907af99 --- /dev/null +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/storage/MetricPersistenceTestCase.java @@ -0,0 +1,68 @@ +package com.a.eye.skywalking.collector.worker.storage; + +import com.a.eye.skywalking.collector.worker.Const; +import java.lang.reflect.Field; +import org.junit.Assert; +import org.junit.Test; + +/** + * @author pengys5 + */ +public class MetricPersistenceTestCase { + + @Test + public void testGetElseCreate() { + String id = "2016" + Const.ID_SPLIT + "A" + Const.ID_SPLIT + "B"; + + MetricPersistenceData metricPersistenceData = new MetricPersistenceData(); + metricPersistenceData.hold(); + MetricData metricData = metricPersistenceData.getOrCreate(id); + metricData.set("Column_1", 10L); + Assert.assertEquals(id, metricData.getId()); + + MetricData metricData1 = metricPersistenceData.getOrCreate(id); + Assert.assertEquals(10L, metricData1.asMap().get("Column_1")); + } + + @Test + public void testSize() { + String id = "2016" + Const.ID_SPLIT + "A" + Const.ID_SPLIT + "B"; + + MetricPersistenceData metricPersistenceData = new MetricPersistenceData(); + metricPersistenceData.hold(); + metricPersistenceData.getOrCreate(id); + + Assert.assertEquals(1, metricPersistenceData.getCurrentAndHold().size()); + String id_1 = "2016" + Const.ID_SPLIT + "B" + Const.ID_SPLIT + "C"; + metricPersistenceData.getOrCreate(id_1); + Assert.assertEquals(2, metricPersistenceData.getCurrentAndHold().size()); + + metricPersistenceData.getCurrentAndHold().clear(); + Assert.assertEquals(0, metricPersistenceData.getCurrentAndHold().size()); + } + + @Test + public void hold() throws NoSuchFieldException, IllegalAccessException { + MetricPersistenceData persistenceData = new MetricPersistenceData(); + persistenceData.hold(); + + Field testAField = persistenceData.getClass().getDeclaredField("lockedWindowData"); + testAField.setAccessible(true); + WindowData windowData = (WindowData)testAField.get(persistenceData); + Assert.assertEquals(true, windowData.isHolding()); + } + + @Test + public void release() throws NoSuchFieldException, IllegalAccessException { + MetricPersistenceData persistenceData = new MetricPersistenceData(); + persistenceData.hold(); + + Field testAField = persistenceData.getClass().getDeclaredField("lockedWindowData"); + testAField.setAccessible(true); + WindowData windowData = (WindowData)testAField.get(persistenceData); + Assert.assertEquals(true, windowData.isHolding()); + + persistenceData.release(); + Assert.assertEquals(false, windowData.isHolding()); + } +} diff --git a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/storage/MetricDataTestCase.java b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/storage/MetricWindowDataTestCase.java similarity index 66% rename from skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/storage/MetricDataTestCase.java rename to skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/storage/MetricWindowDataTestCase.java index 1e8b921c5..a01cad77f 100644 --- a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/storage/MetricDataTestCase.java +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/storage/MetricWindowDataTestCase.java @@ -10,7 +10,7 @@ import java.util.Map; /** * @author pengys5 */ -public class MetricDataTestCase { +public class MetricWindowDataTestCase { @Test public void testConstruction() { @@ -18,15 +18,15 @@ public class MetricDataTestCase { MetricData metricData_1 = new MetricData(id_1); Assert.assertEquals(id_1, metricData_1.getId()); - Assert.assertEquals(2016L, metricData_1.toMap().get(AbstractIndex.TIME_SLICE)); - Assert.assertEquals("B", metricData_1.toMap().get(AbstractIndex.AGG_COLUMN)); + Assert.assertEquals(2016L, metricData_1.asMap().get(AbstractIndex.TIME_SLICE)); + Assert.assertEquals("B", metricData_1.asMap().get(AbstractIndex.AGG_COLUMN)); String id_2 = "2017" + Const.ID_SPLIT + "B" + Const.ID_SPLIT + "C"; MetricData metricData_2 = new MetricData(id_2); Assert.assertEquals(id_2, metricData_2.getId()); - Assert.assertEquals(2017L, metricData_2.toMap().get(AbstractIndex.TIME_SLICE)); - Assert.assertEquals("B" + Const.ID_SPLIT + "C", metricData_2.toMap().get(AbstractIndex.AGG_COLUMN)); + Assert.assertEquals(2017L, metricData_2.asMap().get(AbstractIndex.TIME_SLICE)); + Assert.assertEquals("B" + Const.ID_SPLIT + "C", metricData_2.asMap().get(AbstractIndex.AGG_COLUMN)); } @Test @@ -34,36 +34,36 @@ public class MetricDataTestCase { String id_1 = "2016" + Const.ID_SPLIT + "B"; MetricData metricData = new MetricData(id_1); - metricData.setMetric("Column", 10L); - Assert.assertEquals(10L, metricData.toMap().get("Column")); + metricData.set("Column", 10L); + Assert.assertEquals(10L, metricData.asMap().get("Column")); - metricData.setMetric("Column", 10L); - Assert.assertEquals(20L, metricData.toMap().get("Column")); + metricData.set("Column", 10L); + Assert.assertEquals(20L, metricData.asMap().get("Column")); } @Test public void testMerge() { String id_1 = "2016" + Const.ID_SPLIT + "B"; MetricData metricData_1 = new MetricData(id_1); - metricData_1.setMetric("Column", 10L); + metricData_1.set("Column", 10L); MetricData metricData_2 = new MetricData(id_1); - metricData_2.setMetric("Column", 10L); + metricData_2.set("Column", 10L); metricData_1.merge(metricData_2); - Assert.assertEquals(20L, metricData_1.toMap().get("Column")); + Assert.assertEquals(20L, metricData_1.asMap().get("Column")); } @Test public void testMergeMapData() { String id_1 = "2016" + Const.ID_SPLIT + "B"; MetricData metricData_1 = new MetricData(id_1); - metricData_1.setMetric("Column", 10L); + metricData_1.set("Column", 10L); Map dbData = new HashMap<>(); dbData.put("Column", 10L); metricData_1.merge(dbData); - Assert.assertEquals(20L, metricData_1.toMap().get("Column")); + Assert.assertEquals(20L, metricData_1.asMap().get("Column")); } } diff --git a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/storage/PersistenceWorkerListenerTestCase.java b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/storage/PersistenceWorkerListenerTestCase.java new file mode 100644 index 000000000..70917c360 --- /dev/null +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/storage/PersistenceWorkerListenerTestCase.java @@ -0,0 +1,23 @@ +package com.a.eye.skywalking.collector.worker.storage; + +import com.a.eye.skywalking.collector.actor.AbstractLocalSyncWorker; +import java.util.List; +import org.junit.Assert; +import org.junit.Test; +import org.mockito.Mockito; + +/** + * @author pengys5 + */ +public class PersistenceWorkerListenerTestCase { + + @Test + public void register() { + PersistenceWorkerListener.INSTANCE.reset(); + AbstractLocalSyncWorker worker = Mockito.mock(AbstractLocalSyncWorker.class); + PersistenceWorkerListener.INSTANCE.register(worker); + + List workers = PersistenceWorkerListener.INSTANCE.getWorkers(); + Assert.assertEquals(worker, workers.get(0)); + } +} diff --git a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/storage/RecordAnalysisDataTestCase.java b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/storage/RecordAnalysisDataTestCase.java new file mode 100644 index 000000000..5438ea192 --- /dev/null +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/storage/RecordAnalysisDataTestCase.java @@ -0,0 +1,29 @@ +package com.a.eye.skywalking.collector.worker.storage; + +import org.junit.Assert; +import org.junit.Test; + +/** + * @author pengys5 + */ +public class RecordAnalysisDataTestCase { + + @Test + public void getOrCreate() { + RecordAnalysisData recordAnalysisData = new RecordAnalysisData(); + RecordData recordData = recordAnalysisData.getOrCreate("Test1"); + + RecordData recordData_1 = recordAnalysisData.getOrCreate("Test1"); + Assert.assertEquals(recordData, recordData_1); + } + + @Test + public void asMap() { + RecordAnalysisData recordAnalysisData = new RecordAnalysisData(); + RecordData recordData = recordAnalysisData.getOrCreate("Test1"); + recordData.merge(null); + + RecordData recordData_1 = recordAnalysisData.asMap().get("Test1"); + Assert.assertEquals(recordData, recordData_1); + } +} diff --git a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/storage/RecordPersistenceDataTestCase.java b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/storage/RecordPersistenceDataTestCase.java deleted file mode 100644 index beb32fa41..000000000 --- a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/storage/RecordPersistenceDataTestCase.java +++ /dev/null @@ -1,99 +0,0 @@ -package com.a.eye.skywalking.collector.worker.storage; - -import com.a.eye.skywalking.collector.worker.Const; -import com.google.gson.JsonObject; -import org.junit.Assert; -import org.junit.Test; - -import java.util.Iterator; -import java.util.Map; - -/** - * @author pengys5 - */ -public class RecordPersistenceDataTestCase { - - @Test - public void testGetElseCreate() { - String id = "2016" + Const.ID_SPLIT + "A" + Const.ID_SPLIT + "B"; - - JsonObject record = new JsonObject(); - record.addProperty("Column_1", "Value_1"); - RecordPersistenceData recordPersistenceData = new RecordPersistenceData(); - RecordData recordData = recordPersistenceData.getElseCreate(id); - recordData.setRecord(record); - - Assert.assertEquals(id, recordData.getId()); - - RecordData recordData1 = recordPersistenceData.getElseCreate(id); - Assert.assertEquals("Value_1", recordData1.getRecord().get("Column_1").getAsString()); - } - - @Test - public void testClear() { - String id_1 = "2016" + Const.ID_SPLIT + "A" + Const.ID_SPLIT + "B"; - String id_2 = "2016" + Const.ID_SPLIT + "B" + Const.ID_SPLIT + "C"; - RecordPersistenceData recordPersistenceData = new RecordPersistenceData(); - recordPersistenceData.getElseCreate(id_1); - Assert.assertEquals(1, recordPersistenceData.size()); - recordPersistenceData.getElseCreate(id_2); - Assert.assertEquals(2, recordPersistenceData.size()); - - Assert.assertEquals(true, recordPersistenceData.hasNext()); - - recordPersistenceData.clear(); - Assert.assertEquals(0, recordPersistenceData.size()); - - Assert.assertEquals(false, recordPersistenceData.hasNext()); - } - - @Test - public void testPushOne() { - String id_1 = "2016" + Const.ID_SPLIT + "A" + Const.ID_SPLIT + "B"; - String id_2 = "2016" + Const.ID_SPLIT + "B" + Const.ID_SPLIT + "C"; - RecordPersistenceData recordPersistenceData = new RecordPersistenceData(); - JsonObject obj_1 = new JsonObject(); - obj_1.addProperty("Column_1", "Value_1"); - recordPersistenceData.getElseCreate(id_1).setRecord(obj_1); - - JsonObject obj_2 = new JsonObject(); - obj_2.addProperty("Column_2", "Value_2"); - recordPersistenceData.getElseCreate(id_2).setRecord(obj_2); - - RecordData recordData_2 = recordPersistenceData.pushOne(); - Assert.assertEquals("Value_2", recordData_2.getRecord().get("Column_2").getAsString()); - - RecordData recordData_1 = recordPersistenceData.pushOne(); - Assert.assertEquals("Value_1", recordData_1.getRecord().get("Column_1").getAsString()); - } - - @Test(expected = UnsupportedOperationException.class) - public void testForEach() { - RecordPersistenceData recordPersistenceData = new RecordPersistenceData(); - recordPersistenceData.forEach(r -> System.out.println(r)); - } - - @Test(expected = UnsupportedOperationException.class) - public void testSpliterator() { - RecordPersistenceData recordPersistenceData = new RecordPersistenceData(); - recordPersistenceData.spliterator(); - } - - @Test - public void testIterator() { - String id_1 = "2016" + Const.ID_SPLIT + "A" + Const.ID_SPLIT + "B"; - String id_2 = "2016" + Const.ID_SPLIT + "B" + Const.ID_SPLIT + "C"; - RecordPersistenceData recordPersistenceData = new RecordPersistenceData(); - JsonObject obj_1 = new JsonObject(); - obj_1.addProperty("Column_1", "Value_1"); - recordPersistenceData.getElseCreate(id_1).setRecord(obj_1); - - JsonObject obj_2 = new JsonObject(); - obj_2.addProperty("Column_2", "Value_2"); - recordPersistenceData.getElseCreate(id_2).setRecord(obj_2); - - Iterator> iterator = recordPersistenceData.iterator(); - Assert.assertEquals("Value_2", iterator.next().getValue().getRecord().get("Column_2").getAsString()); - Assert.assertEquals("Value_1", iterator.next().getValue().getRecord().get("Column_1").getAsString()); - } -} diff --git a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/storage/RecordPersistenceTestCase.java b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/storage/RecordPersistenceTestCase.java new file mode 100644 index 000000000..799757c11 --- /dev/null +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/storage/RecordPersistenceTestCase.java @@ -0,0 +1,72 @@ +package com.a.eye.skywalking.collector.worker.storage; + +import com.a.eye.skywalking.collector.worker.Const; +import com.google.gson.JsonObject; +import java.lang.reflect.Field; +import org.junit.Assert; +import org.junit.Test; + +/** + * @author pengys5 + */ +public class RecordPersistenceTestCase { + + @Test + public void testGetElseCreate() { + String id = "2016" + Const.ID_SPLIT + "A" + Const.ID_SPLIT + "B"; + + JsonObject record = new JsonObject(); + record.addProperty("Column_1", "Value_1"); + RecordPersistenceData recordPersistenceData = new RecordPersistenceData(); + recordPersistenceData.hold(); + + RecordData recordData = recordPersistenceData.getOrCreate(id); + recordData.set(record); + + Assert.assertEquals(id, recordData.getId()); + + RecordData recordData1 = recordPersistenceData.getOrCreate(id); + Assert.assertEquals("Value_1", recordData1.get().get("Column_1").getAsString()); + } + + @Test + public void testClear() { + String id_1 = "2016" + Const.ID_SPLIT + "A" + Const.ID_SPLIT + "B"; + String id_2 = "2016" + Const.ID_SPLIT + "B" + Const.ID_SPLIT + "C"; + RecordPersistenceData recordPersistenceData = new RecordPersistenceData(); + recordPersistenceData.hold(); + + recordPersistenceData.getOrCreate(id_1); + Assert.assertEquals(1, recordPersistenceData.getCurrentAndHold().size()); + recordPersistenceData.getOrCreate(id_2); + Assert.assertEquals(2, recordPersistenceData.getCurrentAndHold().size()); + + recordPersistenceData.getCurrentAndHold().clear(); + Assert.assertEquals(0, recordPersistenceData.getCurrentAndHold().size()); + } + + @Test + public void hold() throws NoSuchFieldException, IllegalAccessException { + RecordPersistenceData persistenceData = new RecordPersistenceData(); + persistenceData.hold(); + + Field testAField = persistenceData.getClass().getDeclaredField("lockedWindowData"); + testAField.setAccessible(true); + WindowData windowData = (WindowData)testAField.get(persistenceData); + Assert.assertEquals(true, windowData.isHolding()); + } + + @Test + public void release() throws NoSuchFieldException, IllegalAccessException { + RecordPersistenceData persistenceData = new RecordPersistenceData(); + persistenceData.hold(); + + Field testAField = persistenceData.getClass().getDeclaredField("lockedWindowData"); + testAField.setAccessible(true); + WindowData windowData = (WindowData)testAField.get(persistenceData); + Assert.assertEquals(true, windowData.isHolding()); + + persistenceData.release(); + Assert.assertEquals(false, windowData.isHolding()); + } +} diff --git a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/storage/RecordDataTestCase.java b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/storage/RecordWindowDataTestCase.java similarity index 78% rename from skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/storage/RecordDataTestCase.java rename to skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/storage/RecordWindowDataTestCase.java index bf5e5c89c..fd158cb14 100644 --- a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/storage/RecordDataTestCase.java +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/storage/RecordWindowDataTestCase.java @@ -8,7 +8,7 @@ import org.junit.Test; /** * @author pengys5 */ -public class RecordDataTestCase { +public class RecordWindowDataTestCase { @Test public void testConstruction() { @@ -16,7 +16,7 @@ public class RecordDataTestCase { RecordData recordData = new RecordData(id_1); Assert.assertEquals(id_1, recordData.getId()); - Assert.assertEquals("B" + Const.ID_SPLIT + "C", recordData.getRecord().get("aggId").getAsString()); + Assert.assertEquals("B" + Const.ID_SPLIT + "C", recordData.get().get("aggId").getAsString()); } @Test @@ -26,10 +26,10 @@ public class RecordDataTestCase { JsonObject record = new JsonObject(); record.addProperty("Column", "VALUE"); - recordData.setRecord(record); + recordData.set(record); Assert.assertEquals(id_1, recordData.getId()); - Assert.assertEquals("B" + Const.ID_SPLIT + "C", recordData.getRecord().get("aggId").getAsString()); - Assert.assertEquals("VALUE", recordData.getRecord().get("Column").getAsString()); + Assert.assertEquals("B" + Const.ID_SPLIT + "C", recordData.get().get("aggId").getAsString()); + Assert.assertEquals("VALUE", recordData.get().get("Column").getAsString()); } } diff --git a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/storage/SegmentDataTestCase.java b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/storage/SegmentDataTestCase.java new file mode 100644 index 000000000..fb1e2b456 --- /dev/null +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/storage/SegmentDataTestCase.java @@ -0,0 +1,21 @@ +package com.a.eye.skywalking.collector.worker.storage; + +import org.junit.Assert; +import org.junit.Test; + +/** + * @author pengys5 + */ +public class SegmentDataTestCase { + + @Test + public void test() { + SegmentData segmentData = new SegmentData("Test1"); + + segmentData.merge(null); + Assert.assertEquals("Test1", segmentData.getId()); + + segmentData.setSegmentStr("Test2"); + Assert.assertEquals("Test2", segmentData.getSegmentStr()); + } +} diff --git a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/storage/SegmentPersistenceDataTestCase.java b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/storage/SegmentPersistenceDataTestCase.java new file mode 100644 index 000000000..080d62d22 --- /dev/null +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/storage/SegmentPersistenceDataTestCase.java @@ -0,0 +1,36 @@ +package com.a.eye.skywalking.collector.worker.storage; + +import java.lang.reflect.Field; +import org.junit.Assert; +import org.junit.Test; + +/** + * @author pengys5 + */ +public class SegmentPersistenceDataTestCase { + + @Test + public void getOrCreate() throws NoSuchFieldException, IllegalAccessException { + SegmentPersistenceData segmentPersistenceData = new SegmentPersistenceData(); + segmentPersistenceData.hold(); + SegmentData segmentData = segmentPersistenceData.getOrCreate("Test1"); + + SegmentData segmentData_1 = segmentPersistenceData.getOrCreate("Test1"); + Assert.assertEquals(segmentData, segmentData_1); + + SegmentData segmentData_2 = segmentPersistenceData.getOrCreate("Test2"); + Assert.assertEquals(2, segmentPersistenceData.size()); + + System.out.println(segmentPersistenceData.asMap().toString()); + Assert.assertEquals(segmentData, segmentPersistenceData.asMap().get("Test1")); + Assert.assertEquals(segmentData_2, segmentPersistenceData.asMap().get("Test2")); + + Field testAField = segmentPersistenceData.getClass().getDeclaredField("lockedWindowData"); + testAField.setAccessible(true); + WindowData windowData = (WindowData)testAField.get(segmentPersistenceData); + Assert.assertEquals(true, windowData.isHolding()); + + segmentPersistenceData.release(); + Assert.assertEquals(false, windowData.isHolding()); + } +} diff --git a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/storage/WindowTestCase.java b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/storage/WindowTestCase.java new file mode 100644 index 000000000..c0f20d820 --- /dev/null +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/storage/WindowTestCase.java @@ -0,0 +1,67 @@ +package com.a.eye.skywalking.collector.worker.storage; + +import java.lang.reflect.Field; +import java.util.Map; +import org.junit.Assert; +import org.junit.Test; + +/** + * @author pengys5 + */ +public class WindowTestCase { + + @Test + public void switchPointer() throws NoSuchFieldException, IllegalAccessException { + Impl impl = new Impl(); + + Field pointerField = impl.getClass().getSuperclass().getDeclaredField("pointer"); + pointerField.setAccessible(true); + WindowData pointer = (WindowData)pointerField.get(impl); + + Field windowDataAField = impl.getClass().getSuperclass().getDeclaredField("windowDataA"); + windowDataAField.setAccessible(true); + WindowData windowDataA = (WindowData)windowDataAField.get(impl); + + Field windowDataBField = impl.getClass().getSuperclass().getDeclaredField("windowDataB"); + windowDataBField.setAccessible(true); + WindowData windowDataB = (WindowData)windowDataBField.get(impl); + + Assert.assertEquals(false, windowDataA.isHolding()); + WindowData current = impl.getCurrentAndHold(); + Assert.assertEquals(current, windowDataA); + Assert.assertEquals(true, windowDataA.isHolding()); + + WindowData last = impl.getLast(); + Assert.assertEquals(last, windowDataB); + + Assert.assertEquals(pointer, windowDataA); + impl.switchPointer(); + pointer = (WindowData)pointerField.get(impl); + Assert.assertEquals(pointer, windowDataB); + + current = impl.getCurrentAndHold(); + Assert.assertEquals(current, windowDataB); + Assert.assertEquals(true, windowDataB.isHolding()); + + last = impl.getLast(); + Assert.assertEquals(last, windowDataA); + + impl.switchPointer(); + pointer = (WindowData)pointerField.get(impl); + Assert.assertEquals(pointer, windowDataA); + } + + class Impl extends Window { + + } + + class DataImpl implements Data { + @Override public String getId() { + return null; + } + + @Override public void merge(Map dbData) { + + } + } +} diff --git a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/tools/DateToolsTestCase.java b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/tools/DateToolsTestCase.java index bba1a3fae..e18905ec8 100644 --- a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/tools/DateToolsTestCase.java +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/tools/DateToolsTestCase.java @@ -35,10 +35,10 @@ public class DateToolsTestCase { Calendar calendar = Calendar.getInstance(); calendar.setTimeInMillis(1490922929258L); calendar.set(Calendar.SECOND, calendar.get(Calendar.SECOND) - 3); - System.out.println(calendar.getTimeInMillis()); +// System.out.println(calendar.getTimeInMillis()); calendar.set(Calendar.SECOND, calendar.get(Calendar.SECOND) - 2); - System.out.println(calendar.getTimeInMillis()); +// System.out.println(calendar.getTimeInMillis()); calendar.set(Calendar.SECOND, calendar.get(Calendar.SECOND) - 2); - System.out.println(calendar.getTimeInMillis()); +// System.out.println(calendar.getTimeInMillis()); } } diff --git a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/tools/IdSplitTestCase.java b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/tools/IdSplitTestCase.java index dadb89aea..5ccde52d0 100644 --- a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/tools/IdSplitTestCase.java +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/tools/IdSplitTestCase.java @@ -13,7 +13,7 @@ public class IdSplitTestCase { String id = "201703221502..-..portal-service..-..[127.0.0.1:8002]"; String[] ids = id.split(Const.IDS_SPLIT); for (String splitId : ids) { - System.out.println(splitId); +// System.out.println(splitId); } } } diff --git a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/tools/MergeDataAggTools.java b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/tools/MergeDataAggTools.java index e242ff8c0..f800f24c0 100644 --- a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/tools/MergeDataAggTools.java +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/tools/MergeDataAggTools.java @@ -3,7 +3,7 @@ package com.a.eye.skywalking.collector.worker.tools; import com.a.eye.skywalking.collector.actor.AbstractClusterWorker; import com.a.eye.skywalking.collector.worker.Const; import com.a.eye.skywalking.collector.worker.mock.MergeDataAnswer; -import com.a.eye.skywalking.collector.worker.storage.MergeData; +import com.a.eye.skywalking.collector.worker.storage.JoinAndSplitData; import org.junit.Assert; /** @@ -14,9 +14,9 @@ public enum MergeDataAggTools { public void testOnWork(AbstractClusterWorker agg, MergeDataAnswer mergeDataAnswer) throws Exception { String id = "2016" + Const.ID_SPLIT + "A" + Const.ID_SPLIT + "B"; - MergeData mergeData = new MergeData(id); - mergeData.setMergeData("Column", "VALUE"); - agg.allocateJob(mergeData); - Assert.assertEquals("VALUE", mergeDataAnswer.getMergeDataList().get(0).toMap().get("Column")); + JoinAndSplitData joinAndSplitData = new JoinAndSplitData(id); + joinAndSplitData.set("Column", "VALUE"); + agg.allocateJob(joinAndSplitData); + Assert.assertEquals("VALUE", mergeDataAnswer.getJoinAndSplitDataList().get(0).asMap().get("Column")); } } diff --git a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/tools/MetricDataAggTools.java b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/tools/MetricDataAggTools.java index 4119c32ec..c06052918 100644 --- a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/tools/MetricDataAggTools.java +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/tools/MetricDataAggTools.java @@ -16,6 +16,6 @@ public enum MetricDataAggTools { String id = "2016" + Const.ID_SPLIT + "A" + Const.ID_SPLIT + "B"; MetricData metricData = new MetricData(id); agg.allocateJob(metricData); - Assert.assertEquals("A" + Const.ID_SPLIT + "B", metricDataAnswer.getMetricDataList().get(0).toMap().get("aggId")); + Assert.assertEquals("A" + Const.ID_SPLIT + "B", metricDataAnswer.getMetricDataList().get(0).asMap().get("aggId")); } } diff --git a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/tools/RecordDataAggTools.java b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/tools/RecordDataAggTools.java index 41dd004fb..d38fa8469 100644 --- a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/tools/RecordDataAggTools.java +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/tools/RecordDataAggTools.java @@ -17,6 +17,6 @@ public enum RecordDataAggTools { RecordData recordData = new RecordData(id); agg.allocateJob(recordData); RecordData result = RecordDataTool.INSTANCE.getRecord(recordDataAnswer.getRecordDataList(), id); - Assert.assertEquals("A" + Const.ID_SPLIT + "B", result.getRecord().get("aggId").getAsString()); + Assert.assertEquals("A" + Const.ID_SPLIT + "B", result.get().get("aggId").getAsString()); } } diff --git a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/tracedag/TraceDagGetWithTimeSliceTestCase.java b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/tracedag/TraceDagGetWithTimeSliceTestCase.java index 80eefd03f..d8d650a76 100644 --- a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/tracedag/TraceDagGetWithTimeSliceTestCase.java +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/tracedag/TraceDagGetWithTimeSliceTestCase.java @@ -86,10 +86,10 @@ public class TraceDagGetWithTimeSliceTestCase { @Test public void testPreStart() throws ProviderNotFoundException { - when(clusterWorkerContext.findProvider(NodeCompLoad.WorkerRole.INSTANCE)).thenReturn(NodeCompLoad.Factory.INSTANCE); - when(clusterWorkerContext.findProvider(NodeMappingSearchWithTimeSlice.WorkerRole.INSTANCE)).thenReturn(NodeMappingSearchWithTimeSlice.Factory.INSTANCE); - when(clusterWorkerContext.findProvider(NodeRefSearchWithTimeSlice.WorkerRole.INSTANCE)).thenReturn(NodeRefSearchWithTimeSlice.Factory.INSTANCE); - when(clusterWorkerContext.findProvider(NodeRefResSumSearchWithTimeSlice.WorkerRole.INSTANCE)).thenReturn(NodeRefResSumSearchWithTimeSlice.Factory.INSTANCE); + when(clusterWorkerContext.findProvider(NodeCompLoad.WorkerRole.INSTANCE)).thenReturn(new NodeCompLoad.Factory()); + when(clusterWorkerContext.findProvider(NodeMappingSearchWithTimeSlice.WorkerRole.INSTANCE)).thenReturn(new NodeMappingSearchWithTimeSlice.Factory()); + when(clusterWorkerContext.findProvider(NodeRefSearchWithTimeSlice.WorkerRole.INSTANCE)).thenReturn(new NodeRefSearchWithTimeSlice.Factory()); + when(clusterWorkerContext.findProvider(NodeRefResSumSearchWithTimeSlice.WorkerRole.INSTANCE)).thenReturn(new NodeRefResSumSearchWithTimeSlice.Factory()); ArgumentCaptor argumentCaptor = ArgumentCaptor.forClass(Role.class); getObj.preStart(); diff --git a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/tracedag/TraceDagDataBuilderTestCase.java b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/tracedag/TraceDagWindowDataBuilderTestCase.java similarity index 95% rename from skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/tracedag/TraceDagDataBuilderTestCase.java rename to skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/tracedag/TraceDagWindowDataBuilderTestCase.java index 1bf956c24..3c6a86dce 100644 --- a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/tracedag/TraceDagDataBuilderTestCase.java +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/tracedag/TraceDagWindowDataBuilderTestCase.java @@ -8,7 +8,7 @@ import org.junit.Test; /** * @author pengys5 */ -public class TraceDagDataBuilderTestCase { +public class TraceDagWindowDataBuilderTestCase { private Gson gson = new Gson(); @@ -26,11 +26,11 @@ public class TraceDagDataBuilderTestCase { JsonArray lineArray = dagJsonObj.getAsJsonArray("nodeRefs"); for (int i = 0; i < pointArray.size(); i++) { - System.out.println(pointArray.get(i).getAsJsonObject()); +// System.out.println(pointArray.get(i).getAsJsonObject()); } for (int i = 0; i < lineArray.size(); i++) { - System.out.println(lineArray.get(i).getAsJsonObject()); +// System.out.println(lineArray.get(i).getAsJsonObject()); } } diff --git a/skywalking-collector/skywalking-collector-worker/src/test/resources/json/globaltrace/persistence/globaltrace_search.json b/skywalking-collector/skywalking-collector-worker/src/test/resources/json/globaltrace/persistence/globaltrace_search.json new file mode 100644 index 000000000..0dec69464 --- /dev/null +++ b/skywalking-collector/skywalking-collector-worker/src/test/resources/json/globaltrace/persistence/globaltrace_search.json @@ -0,0 +1,3 @@ +{ + "subSegIds": "Segment.1490922929258.927784221.5991.27.1" +} \ No newline at end of file diff --git a/skywalking-collector/skywalking-collector-worker/src/test/resources/json/globaltrace/persistence/globaltrace_segment.json b/skywalking-collector/skywalking-collector-worker/src/test/resources/json/globaltrace/persistence/globaltrace_segment.json new file mode 100644 index 000000000..3fed5b65c --- /dev/null +++ b/skywalking-collector/skywalking-collector-worker/src/test/resources/json/globaltrace/persistence/globaltrace_segment.json @@ -0,0 +1,185 @@ +{ + "ts": "Segment.1490922929258.927784221.5991.27.1", + "st": 1490922929258, + "et": 1490922929261, + "rs": [ + { + "ts": "Segment.1490922929254.1797892356.6003.69.1", + "si": 2, + "ac": "portal-service", + "ph": "127.0.0.1:8002" + } + ], + "ss": [ + { + "si": 2, + "ps": 1, + "st": 1490922929258, + "et": 1490922929258, + "on": "Jedis/getClient", + "ts": { + "span.layer": "db", + "component": "Redis", + "db.type": "Redis", + "peer.host": "127.0.0.1", + "span.kind": "client" + }, + "tb": {}, + "ti": { + "peer.port": 6379 + }, + "lo": [] + }, + { + "si": 3, + "ps": 1, + "st": 1490922929258, + "et": 1490922929258, + "on": "Jedis/getClient", + "ts": { + "span.layer": "db", + "component": "Redis", + "db.type": "Redis", + "peer.host": "127.0.0.1", + "span.kind": "client" + }, + "tb": {}, + "ti": { + "peer.port": 6379 + }, + "lo": [] + }, + { + "si": 4, + "ps": 1, + "st": 1490922929258, + "et": 1490922929258, + "on": "Jedis/isConnected", + "ts": { + "span.layer": "db", + "component": "Redis", + "db.type": "Redis", + "peer.host": "127.0.0.1", + "span.kind": "client" + }, + "tb": {}, + "ti": { + "peer.port": 6379 + }, + "lo": [] + }, + { + "si": 5, + "ps": 1, + "st": 1490922929258, + "et": 1490922929259, + "on": "Jedis/ping", + "ts": { + "span.layer": "db", + "component": "Redis", + "db.type": "Redis", + "peer.host": "127.0.0.1", + "span.kind": "client" + }, + "tb": {}, + "ti": { + "peer.port": 6379 + }, + "lo": [] + }, + { + "si": 6, + "ps": 1, + "st": 1490922929259, + "et": 1490922929259, + "on": "Jedis/get", + "ts": { + "span.layer": "db", + "component": "Redis", + "db.type": "Redis", + "peer.host": "127.0.0.1", + "span.kind": "client", + "db.statement": "get test" + }, + "tb": {}, + "ti": { + "peer.port": 6379 + }, + "lo": [] + }, + { + "si": 7, + "ps": 1, + "st": 1490922929261, + "et": 1490922929261, + "on": "H2/JDBI/PreparedStatement/executeQuery", + "ts": { + "db.instance": "dataSource", + "span.layer": "db", + "db.type": "sql", + "component": "H2", + "span.kind": "client", + "db.statement": "SELECT id,CACHE_VALUE, CACHE_KEY FROM CACHE_TABLE WHERE CACHE_KEY \u003d ?", + "peer.host": "localhost" + }, + "tb": {}, + "ti": { + "peer.port": -1 + }, + "lo": [] + }, + { + "si": 8, + "ps": 1, + "st": 1490922929261, + "et": 1490922929261, + "on": "H2/JDBI/Connection/close", + "ts": { + "db.instance": "dataSource", + "span.layer": "db", + "db.type": "sql", + "component": "H2", + "span.kind": "client", + "db.statement": "", + "peer.host": "localhost" + }, + "tb": {}, + "ti": { + "peer.port": -1 + }, + "lo": [] + }, + { + "si": 1, + "ps": 0, + "st": 0, + "et": 1490922929261, + "on": "Motan_default_rpc_com.a.eye.skywalking.test.cache.CacheService.findCache(java.lang.String)", + "ts": { + "requestId": "1563346001467539461" + }, + "tb": {}, + "ti": {}, + "lo": [] + }, + { + "si": 0, + "ps": -1, + "st": 1490922929258, + "et": 1490922929261, + "on": "com.a.eye.skywalking.test.cache.CacheService.findCache(java.lang.String)", + "ts": { + "span.layer": "rpc", + "component": "Motan", + "span.kind": "server" + }, + "tb": {}, + "ti": {}, + "lo": [] + } + ], + "ac": "cache-service", + "gt": [ + "Trace.1490922929254.1797892356.6003.69.2" + ] +} \ No newline at end of file diff --git a/skywalking-commons/skywalking-trace/src/test/java/com/a/eye/skywalking/trace/TraceSegmentTestCase.java b/skywalking-commons/skywalking-trace/src/test/java/com/a/eye/skywalking/trace/TraceSegmentTestCase.java index 2f64aee6f..b23909b3b 100644 --- a/skywalking-commons/skywalking-trace/src/test/java/com/a/eye/skywalking/trace/TraceSegmentTestCase.java +++ b/skywalking-commons/skywalking-trace/src/test/java/com/a/eye/skywalking/trace/TraceSegmentTestCase.java @@ -110,8 +110,6 @@ public class TraceSegmentTestCase { message.append(segment); String json = gson.toJson(message); - System.out.println(json); - message = gson.fromJson(json, SegmentsMessage.class); TraceSegment newSegment = message.getSegments().get(0); diff --git a/skywalking-sniffer/skywalking-api/src/test/java/com/a/eye/skywalking/api/client/HTTPRestServiceTestApp.java b/skywalking-sniffer/skywalking-api/src/test/java/com/a/eye/skywalking/api/client/HTTPRestServiceTestApp.java index 24f481fb5..361344f50 100644 --- a/skywalking-sniffer/skywalking-api/src/test/java/com/a/eye/skywalking/api/client/HTTPRestServiceTestApp.java +++ b/skywalking-sniffer/skywalking-api/src/test/java/com/a/eye/skywalking/api/client/HTTPRestServiceTestApp.java @@ -50,7 +50,6 @@ public class HTTPRestServiceTestApp { post.setEntity(entity); try { CloseableHttpResponse httpResponse = httpclient.execute(post); - System.out.println(httpResponse.getStatusLine().getStatusCode()); } catch (IOException e) { e.printStackTrace(); } @@ -69,7 +68,6 @@ public class HTTPRestServiceTestApp { while ((str = br.readLine()) != null) { wholeStr += str; } - System.out.println(wholeStr); response.setContentType("text/html; charset=utf-8"); response.setStatus(HttpServletResponse.SC_OK); baseRequest.setHandled(true);