diff --git a/skywalking-collector/skywalking-collector-cluster/src/main/java/com/a/eye/skywalking/collector/actor/AbstractLocalAsyncWorker.java b/skywalking-collector/skywalking-collector-cluster/src/main/java/com/a/eye/skywalking/collector/actor/AbstractLocalAsyncWorker.java index 3136fd6c96be781c320857e8120e627fd987e44e..eb919e57e8703f0a966276d0d7dc8480dc19dd9c 100644 --- a/skywalking-collector/skywalking-collector-cluster/src/main/java/com/a/eye/skywalking/collector/actor/AbstractLocalAsyncWorker.java +++ b/skywalking-collector/skywalking-collector-cluster/src/main/java/com/a/eye/skywalking/collector/actor/AbstractLocalAsyncWorker.java @@ -44,7 +44,7 @@ public abstract class AbstractLocalAsyncWorker extends AbstractLocalWorker { asyncWorker.allocateJob(new EndOfBatchCommand()); } } catch (Exception e) { - e.printStackTrace(); + asyncWorker.saveException(e); } } 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 9b180c093fd4b56dc5064a2d1a2184ebe608ea0a..e5a5f8a03e759d9d9ff18bf70586313bc7754da7 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 @@ -33,4 +33,8 @@ public abstract class AbstractWorker { final public static AbstractWorker noOwner() { return null; } + + final protected void saveException(Exception e) { +// e.printStackTrace(); + } } diff --git a/skywalking-collector/skywalking-collector-worker/pom.xml b/skywalking-collector/skywalking-collector-worker/pom.xml index 65c0e4d5b72d49554504339578a0251d5a8af33f..b3968863471e23acd2ebe2975cd67a0bc7938d1c 100644 --- a/skywalking-collector/skywalking-collector-worker/pom.xml +++ b/skywalking-collector/skywalking-collector-worker/pom.xml @@ -48,5 +48,10 @@ ${project.version} test + + org.jetbrains + annotations + RELEASE + 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 ec3155b18cb967e055e77c61bc4e79f5fcd4ff34..ddddbc25bdac178ea8d88731ebfe1a30250f2505 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,17 +2,13 @@ package com.a.eye.skywalking.collector.worker; import com.a.eye.skywalking.collector.actor.*; import com.a.eye.skywalking.collector.queue.EndOfBatchCommand; -import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; /** * @author pengys5 */ public abstract class AnalysisMember extends AbstractLocalAsyncWorker { - private Logger logger = LogManager.getFormatterLogger(AnalysisMember.class); - - public AnalysisMember(Role role, ClusterWorkerContext clusterContext, LocalWorkerContext selfContext) { + AnalysisMember(Role role, ClusterWorkerContext clusterContext, LocalWorkerContext selfContext) { super(role, clusterContext, selfContext); } @@ -20,7 +16,7 @@ public abstract class AnalysisMember extends AbstractLocalAsyncWorker { @Override public void preStart() throws ProviderNotFoundException { - + super.preStart(); } @Override @@ -31,7 +27,7 @@ public abstract class AnalysisMember extends AbstractLocalAsyncWorker { try { analyse(message); } catch (Exception e) { - e.printStackTrace(); + saveException(e); } } } 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 c7958e256c6c9300abdb15254b5e7b7a2f70a266..373603a3386455d9609c719c1e7b992d541a8c46 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 @@ -22,8 +22,8 @@ public class CollectorBootStartUp { CollectorSystem collectorSystem = new CollectorSystem(); collectorSystem.boot(); - EsClient.boot(); -// IndexCreator.INSTANCE.create(); + EsClient.INSTANCE.boot(); + IndexCreator.INSTANCE.create(); HttpServer.INSTANCE.boot((ClusterWorkerContext) collectorSystem.getClusterContext()); } } 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 index 2eacb7e5e6aad6508e2a52d4b804a76b9a8ec9ec..c77178470415718fca483bbb7f328b35f3fabb34 100644 --- 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 @@ -26,18 +26,23 @@ public abstract class MergePersistenceMember extends PersistenceMember { private Logger logger = LogManager.getFormatterLogger(MergePersistenceMember.class); - private MergePersistenceData persistenceData = new MergePersistenceData(); + 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; - persistenceData.getElseCreate(mergeData.getId()).merge(mergeData); - if (persistenceData.size() >= WorkerConfig.Persistence.Data.size) { + getPersistenceData().getElseCreate(mergeData.getId()).merge(mergeData); + if (getPersistenceData().size() >= WorkerConfig.Persistence.Data.size) { persistence(); } } else { @@ -50,21 +55,21 @@ public abstract class MergePersistenceMember extends PersistenceMember { for (MultiGetItemResponse itemResponse : multiGetResponse) { GetResponse response = itemResponse.getResponse(); if (response != null && response.isExists()) { - persistenceData.getElseCreate(response.getId()).merge(response.getSource()); + getPersistenceData().getElseCreate(response.getId()).merge(response.getSource()); } } boolean success = saveToEs(); if (success) { - persistenceData.clear(); + getPersistenceData().clear(); } } private MultiGetResponse searchFromEs() { - Client client = EsClient.getClient(); + Client client = EsClient.INSTANCE.getClient(); MultiGetRequestBuilder multiGetRequestBuilder = client.prepareMultiGet(); - Iterator> iterator = persistenceData.iterator(); + Iterator> iterator = getPersistenceData().iterator(); while (iterator.hasNext()) { multiGetRequestBuilder.add(esIndex(), esType(), iterator.next().getKey()); @@ -74,11 +79,11 @@ public abstract class MergePersistenceMember extends PersistenceMember { } private boolean saveToEs() { - Client client = EsClient.getClient(); + Client client = EsClient.INSTANCE.getClient(); BulkRequestBuilder bulkRequest = client.prepareBulk(); - logger.debug("persistenceData size: %s", persistenceData.size()); + logger.debug("persistenceData size: %s", getPersistenceData().size()); - Iterator> iterator = persistenceData.iterator(); + Iterator> iterator = getPersistenceData().iterator(); while (iterator.hasNext()) { MergeData mergeData = iterator.next().getValue(); bulkRequest.add(client.prepareIndex(esIndex(), esType(), mergeData.getId()).setSource(mergeData.toMap())); 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 33a1d0d5f7ef34e651792c13f0caf7dea3926d68..08e4b1130be91eef96a206dd4610ca9ab8400cf8 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 @@ -61,7 +61,7 @@ public abstract class MetricPersistenceMember extends PersistenceMember { } private MultiGetResponse searchFromEs() { - Client client = EsClient.getClient(); + Client client = EsClient.INSTANCE.getClient(); MultiGetRequestBuilder multiGetRequestBuilder = client.prepareMultiGet(); Iterator> iterator = persistenceData.iterator(); @@ -75,7 +75,7 @@ public abstract class MetricPersistenceMember extends PersistenceMember { } private boolean saveToEs() { - Client client = EsClient.getClient(); + Client client = EsClient.INSTANCE.getClient(); BulkRequestBuilder bulkRequest = client.prepareBulk(); logger.debug("persistenceData size: %s", persistenceData.size()); 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 1f9828c8b98738f5762ad512d0ce1c152f55450a..fdd75b6b3e6a80c984206788c84a8a9708ad8615 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 @@ -55,7 +55,7 @@ public abstract class RecordPersistenceMember extends PersistenceMember { } private boolean saveToEs() { - Client client = EsClient.getClient(); + Client client = EsClient.INSTANCE.getClient(); BulkRequestBuilder bulkRequest = client.prepareBulk(); logger.debug("persistenceData size: %s", getPersistenceData().size()); diff --git a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/WorkerConfig.java b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/WorkerConfig.java index fcb5e902b3c57cbb507bb1b6aadb894c43eb5575..1e9e69e6e3cc573b775eb59c7f5ceb4fb9524579 100644 --- a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/WorkerConfig.java +++ b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/WorkerConfig.java @@ -19,85 +19,85 @@ public class WorkerConfig extends ClusterConfig { } } - public static class Worker { - public static class TraceSegmentReceiver { - public static int Num = 10; - } - - public static class DAGNodeReceiver { - public static int Num = 10; - } + public static class WorkerNum { + public static class Node { + public static class NodeCompAgg { + public static int Value = 10; + } - public static class NodeInstanceReceiver { - public static int Num = 10; - } + public static class NodeMappingDayAgg { + public static int Value = 10; + } - public static class ResponseCostReceiver { - public static int Num = 10; - } + public static class NodeMappingHourAgg { + public static int Value = 10; + } - public static class ResponseSummaryReceiver { - public static int Num = 10; + public static class NodeMappingMinuteAgg { + public static int Value = 10; + } } - public static class DAGNodeRefReceiver { - public static int Num = 10; - } - } + public static class NodeRef { + public static class NodeRefDayAgg { + public static int Value = 10; + } - public static class WorkerNum { - public static class Node { - public static class NodeDayAgg { + public static class NodeRefHourAgg { public static int Value = 10; } - public static class NodeHourAgg { + public static class NodeRefMinuteAgg { public static int Value = 10; } - public static class NodeMinuteAgg { + public static class NodeRefResSumDayAgg { public static int Value = 10; } - public static class NodeMappingDayAgg { + public static class NodeRefResSumHourAgg { public static int Value = 10; } - public static class NodeMappingHourAgg { + public static class NodeRefResSumMinuteAgg { public static int Value = 10; } + } - public static class NodeMappingMinuteAgg { + public static class GlobalTrace { + public static class GlobalTraceAgg { public static int Value = 10; } } } public static class Queue { - public static class Segment { - public static class SegmentCostSave { + public static class GlobalTrace { + public static class GlobalTraceSave { public static int Size = 1024; } + } - public static class SegmentSave { + public static class Segment { + public static class SegmentPost { public static int Size = 1024; } - public static class SegmentExceptionSave { + public static class SegmentCostSave { public static int Size = 1024; } - } - public static class Node { - public static class NodeDayAnalysis { + public static class SegmentSave { public static int Size = 1024; } - public static class NodeHourAnalysis { + public static class SegmentExceptionSave { public static int Size = 1024; } + } - public static class NodeMinuteAnalysis { + public static class Node { + public static class NodeCompAnalysis { public static int Size = 1024; } @@ -124,54 +124,52 @@ public class WorkerConfig extends ClusterConfig { public static class NodeMappingMinuteAnalysis { public static int Size = 1024; } - } - - public static class Persistence { - public static class DAGNodePersistence { + public static class NodeCompSave { public static int Size = 1024; } - public static class NodeInstancePersistence { + public static class NodeMappingDaySave { public static int Size = 1024; } - public static class ResponseCostPersistence { + public static class NodeMappingHourSave { public static int Size = 1024; } - public static class ResponseSummaryPersistence { + public static class NodeMappingMinuteSave { public static int Size = 1024; } + } - public static class DAGNodeRefPersistence { + public static class NodeRef { + public static class NodeRefDaySave { public static int Size = 1024; } - } + public static class NodeRefHourSave { + public static int Size = 1024; + } - public static class TraceSegmentRecordAnalysis { - public static int Size = 1024; - } + public static class NodeRefMinuteSave { + public static int Size = 1024; + } - public static class NodeInstanceAnalysis { - public static int Size = 1024; - } + public static class NodeRefResSumDaySave { + public static int Size = 1024; + } - public static class DAGNodeAnalysis { - public static int Size = 1024; - } + public static class NodeRefResSumHourSave { + public static int Size = 1024; + } - public static class ResponseCostAnalysis { - public static int Size = 1024; + public static class NodeRefResSumMinuteSave { + public static int Size = 1024; + } } public static class ResponseSummaryAnalysis { public static int Size = 1024; } - - public static class DAGNodeRefAnalysis { - public static int Size = 1024; - } } } 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 89bb239dc70362e0c95fcbe632e036d1fe8d1101..0c54c4b08da440c86bcc76fcc0831e5b55c0d747 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 @@ -21,7 +21,7 @@ import java.util.List; */ public class GlobalTraceAnalysis extends MergeAnalysisMember { - private GlobalTraceAnalysis(Role role, ClusterWorkerContext clusterContext, LocalWorkerContext selfContext) { + GlobalTraceAnalysis(Role role, ClusterWorkerContext clusterContext, LocalWorkerContext selfContext) { super(role, clusterContext, selfContext); } diff --git a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/globaltrace/entity/TreeNode.java b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/globaltrace/entity/TreeNode.java deleted file mode 100644 index 7f7f22cbc2035fb0633215547bfade4375338df2..0000000000000000000000000000000000000000 --- a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/globaltrace/entity/TreeNode.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.a.eye.skywalking.collector.worker.globaltrace.entity; - -import java.util.ArrayList; -import java.util.List; - -/** - * @author pengys5 - */ -public class TreeNode { - - private String spanId; - - private List childNodes; - - public TreeNode(String spanId) { - this.spanId = spanId; - childNodes = new ArrayList<>(); - } - - public void addChild(TreeNode childNode) { - childNodes.add(childNode); - } -} 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 0a6cf9079fbf0619d64de4291ca06e3e85e4f56d..5e246aa7ad507f85a4aa89afe560e9edd6518f6d 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 @@ -15,7 +15,7 @@ public class GlobalTraceAgg extends AbstractClusterWorker { private Logger logger = LogManager.getFormatterLogger(GlobalTraceAgg.class); - private GlobalTraceAgg(com.a.eye.skywalking.collector.actor.Role role, ClusterWorkerContext clusterContext, LocalWorkerContext selfContext) { + GlobalTraceAgg(com.a.eye.skywalking.collector.actor.Role role, ClusterWorkerContext clusterContext, LocalWorkerContext selfContext) { super(role, clusterContext, selfContext); } @@ -48,7 +48,7 @@ public class GlobalTraceAgg extends AbstractClusterWorker { @Override public int workerNum() { - return WorkerConfig.Worker.DAGNodeReceiver.Num; + return WorkerConfig.WorkerNum.GlobalTrace.GlobalTraceAgg.Value; } } 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 6954e9b4dc7ba7d7713589446e331bcf4713d5c0..3c1f121993f70918b0f5dd2b7281830f59a2faec 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 @@ -4,7 +4,7 @@ package com.a.eye.skywalking.collector.worker.globaltrace.persistence; 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.selector.RollingSelector; +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.WorkerConfig; @@ -15,7 +15,7 @@ import com.a.eye.skywalking.collector.worker.globaltrace.GlobalTraceIndex; */ public class GlobalTraceSave extends MergePersistenceMember { - private GlobalTraceSave(com.a.eye.skywalking.collector.actor.Role role, ClusterWorkerContext clusterContext, LocalWorkerContext selfContext) { + GlobalTraceSave(com.a.eye.skywalking.collector.actor.Role role, ClusterWorkerContext clusterContext, LocalWorkerContext selfContext) { super(role, clusterContext, selfContext); } @@ -39,7 +39,7 @@ public class GlobalTraceSave extends MergePersistenceMember { @Override public int queueSize() { - return WorkerConfig.Queue.TraceSegmentRecordAnalysis.Size; + return WorkerConfig.Queue.GlobalTrace.GlobalTraceSave.Size; } @Override @@ -58,7 +58,7 @@ public class GlobalTraceSave extends MergePersistenceMember { @Override public WorkerSelector workerSelector() { - return new RollingSelector(); + return new HashCodeSelector(); } } } 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 525482393a50e71596b4b21879678c3029db6dc8..4e5915162432baab974c6a33f52a0815f6cfc79c 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 @@ -9,7 +9,7 @@ import com.a.eye.skywalking.collector.worker.segment.SegmentIndex; import com.a.eye.skywalking.collector.worker.segment.logic.Segment; import com.a.eye.skywalking.collector.worker.segment.logic.SegmentDeserialize; import com.a.eye.skywalking.collector.worker.segment.logic.SpanView; -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.storage.MergeData; import com.a.eye.skywalking.collector.worker.tools.CollectionTools; import com.a.eye.skywalking.trace.Span; @@ -18,7 +18,6 @@ import com.google.gson.Gson; import com.google.gson.JsonObject; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; -import org.elasticsearch.client.Client; import java.util.ArrayList; import java.util.Collections; @@ -33,17 +32,17 @@ public class GlobalTraceSearchWithGlobalId extends AbstractLocalSyncWorker { private Gson gson = new Gson(); - public GlobalTraceSearchWithGlobalId(Role role, ClusterWorkerContext clusterContext, LocalWorkerContext selfContext) { + GlobalTraceSearchWithGlobalId(Role role, ClusterWorkerContext clusterContext, LocalWorkerContext selfContext) { super(role, clusterContext, selfContext); } @Override protected void onWork(Object request, Object response) throws Exception { if (request instanceof String) { - Client client = EsClient.getClient(); String globalId = (String) request; - String globalTraceData = client.prepareGet(GlobalTraceIndex.Index, GlobalTraceIndex.Type_Record, globalId).get().getSourceAsString(); + String globalTraceData = GetResponseFromEs.INSTANCE.get(GlobalTraceIndex.Index, GlobalTraceIndex.Type_Record, globalId).getSourceAsString(); JsonObject globalTraceObj = gson.fromJson(globalTraceData, JsonObject.class); + logger.debug("globalTraceObj: %s", globalTraceObj); String subSegIdsStr = globalTraceObj.get(GlobalTraceIndex.SubSegIds).getAsString(); String[] subSegIds = subSegIdsStr.split(MergeData.Split); @@ -51,7 +50,8 @@ public class GlobalTraceSearchWithGlobalId extends AbstractLocalSyncWorker { List spanViewList = new ArrayList<>(); for (String subSegId : subSegIds) { logger.debug("subSegId: %s", subSegId); - String segmentSource = client.prepareGet(SegmentIndex.Index, SegmentIndex.Type_Record, subSegId).get().getSourceAsString(); + String segmentSource = GetResponseFromEs.INSTANCE.get(SegmentIndex.Index, SegmentIndex.Type_Record, subSegId).getSourceAsString(); + logger.debug("segmentSource: %s", segmentSource); Segment segment = SegmentDeserialize.INSTANCE.deserializeFromES(segmentSource); String segmentId = segment.getTraceSegmentId(); List refsList = segment.getRefs(); @@ -62,19 +62,23 @@ public class GlobalTraceSearchWithGlobalId extends AbstractLocalSyncWorker { } } - SpanView rootSpan = findRoot(spanViewList); - findChild(rootSpan, spanViewList, rootSpan.getStartTime()); - - List viewList = new ArrayList<>(); - viewList.add(rootSpan); - - Gson gson = new Gson(); - String globalTraceStr = gson.toJson(viewList); JsonObject responseObj = (JsonObject) response; - responseObj.addProperty("result", globalTraceStr); + responseObj.addProperty("result", buildTree(spanViewList)); } } + private String buildTree(List spanViewList) { + SpanView rootSpan = findRoot(spanViewList); + assert rootSpan != null; + findChild(rootSpan, spanViewList, rootSpan.getStartTime()); + + List viewList = new ArrayList<>(); + viewList.add(rootSpan); + + Gson gson = new Gson(); + return gson.toJson(viewList); + } + private SpanView findRoot(List spanViewList) { for (SpanView spanView : spanViewList) { if (StringUtil.isEmpty(spanView.getParentSpanSegId())) { diff --git a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/httpserver/HttpServer.java b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/httpserver/HttpServer.java index 481ac94ee1f69a9291eac3ed99654cd43e9e3d06..144a9ab69767ff67e8871d8b7e3ffb1f192abb4c 100644 --- a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/httpserver/HttpServer.java +++ b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/httpserver/HttpServer.java @@ -25,11 +25,6 @@ public enum HttpServer { ServletsCreator.INSTANCE.boot(servletContextHandler, clusterContext); -// ServerConnector serverConnector = new ServerConnector(server); -// serverConnector.setHost("127.0.0.1"); -// serverConnector.setPort(7001); -// serverConnector.setIdleTimeout(5000); - server.setHandler(servletContextHandler); server.start(); server.join(); 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 ea783c1ebe6a83a88cb7c22f9ccd021e2b9f1079..c85d2245f36a88e916c5f0e6d3849fc353ac3791 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 @@ -36,7 +36,7 @@ abstract class AbstractNodeCompAnalysis extends RecordAnalysisMember { for (Span span : spanList) { String kind = Tags.SPAN_KIND.get(span); if (Tags.SPAN_KIND_CLIENT.equals(kind) && ClientSpanIsLeafTools.isLeaf(span.getSpanId(), spanList)) { - String peers = SpanPeersTools.getPeers(span); + String peers = SpanPeersTools.INSTANCE.getPeers(span); JsonObject compJsonObj = new JsonObject(); compJsonObj.addProperty(NodeCompIndex.Peers, peers); 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 e7827f69d92239e243b8c43fbc9a3ad010764f25..2cc87013857bced83fb7ccb53fa436be26687285 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 @@ -50,7 +50,7 @@ public class NodeCompAnalysis extends AbstractNodeCompAnalysis { @Override public int queueSize() { - return WorkerConfig.Queue.Node.NodeDayAnalysis.Size; + return WorkerConfig.Queue.Node.NodeCompAnalysis.Size; } } 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 fd2fd46a051e3ac41d32355ed86da03e5984fcd5..2149a293121dd8c40e6e8746bfafa4242d644a90 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 @@ -11,7 +11,7 @@ import com.a.eye.skywalking.collector.worker.storage.RecordData; */ public class NodeCompAgg extends AbstractClusterWorker { - public NodeCompAgg(com.a.eye.skywalking.collector.actor.Role role, ClusterWorkerContext clusterContext, LocalWorkerContext selfContext) { + NodeCompAgg(com.a.eye.skywalking.collector.actor.Role role, ClusterWorkerContext clusterContext, LocalWorkerContext selfContext) { super(role, clusterContext, selfContext); } @@ -24,9 +24,7 @@ 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 throw new IllegalArgumentException("message instance must RecordData"); } public static class Factory extends AbstractClusterWorkerProvider { @@ -44,7 +42,7 @@ public class NodeCompAgg extends AbstractClusterWorker { @Override public int workerNum() { - return WorkerConfig.WorkerNum.Node.NodeDayAgg.Value; + return WorkerConfig.WorkerNum.Node.NodeCompAgg.Value; } } 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 098cfe6b50bde4e6e2ec8d492d7f4070068cfd81..d4e9c3d29d10c809ada883fdb876180e2c3067df 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 @@ -27,7 +27,7 @@ public class NodeCompLoad extends AbstractLocalSyncWorker { @Override public void onWork(Object request, Object response) throws Exception { - SearchRequestBuilder searchRequestBuilder = EsClient.getClient().prepareSearch(NodeCompIndex.Index); + SearchRequestBuilder searchRequestBuilder = EsClient.INSTANCE.getClient().prepareSearch(NodeCompIndex.Index); searchRequestBuilder.setTypes(NodeCompIndex.Type_Record); searchRequestBuilder.setSearchType(SearchType.DFS_QUERY_THEN_FETCH); searchRequestBuilder.setSize(100); 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 c89f6eb3b12aa7824b05cf8f5427aad4e6d59905..bcae0e72925f2607e3451b20324ad0daa6f98d83 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 @@ -43,7 +43,7 @@ public class NodeCompSave extends RecordPersistenceMember { @Override public int queueSize() { - return WorkerConfig.Queue.Persistence.DAGNodePersistence.Size; + return WorkerConfig.Queue.Node.NodeCompSave.Size; } } 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 12e36e053c32cc8b9da52ba42b95c401a9d0dc1b..25d6869b3906ccbbed93ea439bd8d8e56b692a38 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 @@ -11,7 +11,7 @@ import com.a.eye.skywalking.collector.worker.storage.RecordData; */ public class NodeMappingDayAgg extends AbstractClusterWorker { - public NodeMappingDayAgg(com.a.eye.skywalking.collector.actor.Role role, ClusterWorkerContext clusterContext, LocalWorkerContext selfContext) { + NodeMappingDayAgg(com.a.eye.skywalking.collector.actor.Role role, ClusterWorkerContext clusterContext, LocalWorkerContext selfContext) { super(role, clusterContext, selfContext); } 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 c54393183d93f1e1c54029157fee2cb64409cc84..b883a7f06039c4ae6b500e2a196adbe875e7e019 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 @@ -14,7 +14,7 @@ import com.a.eye.skywalking.collector.worker.node.NodeMappingIndex; */ public class NodeMappingDaySave extends RecordPersistenceMember { - public NodeMappingDaySave(com.a.eye.skywalking.collector.actor.Role role, ClusterWorkerContext clusterContext, LocalWorkerContext selfContext) { + NodeMappingDaySave(com.a.eye.skywalking.collector.actor.Role role, ClusterWorkerContext clusterContext, LocalWorkerContext selfContext) { super(role, clusterContext, selfContext); } @@ -43,7 +43,7 @@ public class NodeMappingDaySave extends RecordPersistenceMember { @Override public int queueSize() { - return WorkerConfig.Queue.Persistence.DAGNodePersistence.Size; + return WorkerConfig.Queue.Node.NodeMappingDaySave.Size; } } 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 2ca6a656381c3d53cddf0d96a5274e1aedce2c5c..58d776ffbfd0963d0981fa36524a3a47c21e0315 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 @@ -14,7 +14,7 @@ import com.a.eye.skywalking.collector.worker.node.NodeMappingIndex; */ public class NodeMappingHourSave extends RecordPersistenceMember { - public NodeMappingHourSave(com.a.eye.skywalking.collector.actor.Role role, ClusterWorkerContext clusterContext, LocalWorkerContext selfContext) { + NodeMappingHourSave(com.a.eye.skywalking.collector.actor.Role role, ClusterWorkerContext clusterContext, LocalWorkerContext selfContext) { super(role, clusterContext, selfContext); } @@ -43,7 +43,7 @@ public class NodeMappingHourSave extends RecordPersistenceMember { @Override public int queueSize() { - return WorkerConfig.Queue.Persistence.DAGNodePersistence.Size; + return WorkerConfig.Queue.Node.NodeMappingHourSave.Size; } } 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 e8bde58246d1cd302af4d00403baf96394c6efe6..29b398b80575326f7d5524f610732613eb1d665e 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 @@ -14,7 +14,7 @@ import com.a.eye.skywalking.collector.worker.node.NodeMappingIndex; */ public class NodeMappingMinuteSave extends RecordPersistenceMember { - public NodeMappingMinuteSave(com.a.eye.skywalking.collector.actor.Role role, ClusterWorkerContext clusterContext, LocalWorkerContext selfContext) { + NodeMappingMinuteSave(com.a.eye.skywalking.collector.actor.Role role, ClusterWorkerContext clusterContext, LocalWorkerContext selfContext) { super(role, clusterContext, selfContext); } @@ -43,7 +43,7 @@ public class NodeMappingMinuteSave extends RecordPersistenceMember { @Override public int queueSize() { - return WorkerConfig.Queue.Persistence.DAGNodePersistence.Size; + return WorkerConfig.Queue.Node.NodeMappingMinuteSave.Size; } } 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 292254153683d761ce6cc8453a44a374f371d79b..6779924b5600cec90250169e3e70a05986cc95c2 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 @@ -34,7 +34,7 @@ public class NodeMappingSearchWithTimeSlice extends AbstractLocalSyncWorker { if (request instanceof RequestEntity) { RequestEntity search = (RequestEntity) request; - SearchRequestBuilder searchRequestBuilder = EsClient.getClient().prepareSearch(NodeMappingIndex.Index); + SearchRequestBuilder searchRequestBuilder = EsClient.INSTANCE.getClient().prepareSearch(NodeMappingIndex.Index); searchRequestBuilder.setTypes(search.getSliceType()); searchRequestBuilder.setSearchType(SearchType.DFS_QUERY_THEN_FETCH); searchRequestBuilder.setQuery(QueryBuilders.rangeQuery(NodeMappingIndex.Time_Slice).gte(search.getStartTime()).lte(search.getEndTime())); diff --git a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/noderef/NodeRefGetWithTimeSlice.java b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/noderef/NodeRefGetWithTimeSlice.java deleted file mode 100644 index d02326b7a453b4d206939441df99bc94947d5da7..0000000000000000000000000000000000000000 --- a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/noderef/NodeRefGetWithTimeSlice.java +++ /dev/null @@ -1,94 +0,0 @@ -package com.a.eye.skywalking.collector.worker.noderef; - -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.Role; -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.httpserver.AbstractGet; -import com.a.eye.skywalking.collector.worker.httpserver.AbstractGetProvider; -import com.a.eye.skywalking.collector.worker.noderef.persistence.NodeRefSearchWithTimeSlice; -import com.a.eye.skywalking.collector.worker.tools.ParameterTools; -import com.google.gson.JsonObject; -import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; - -import java.util.Arrays; -import java.util.Map; - -/** - * @author pengys5 - */ -public class NodeRefGetWithTimeSlice extends AbstractGet { - - private Logger logger = LogManager.getFormatterLogger(NodeRefGetWithTimeSlice.class); - - private NodeRefGetWithTimeSlice(Role role, ClusterWorkerContext clusterContext, LocalWorkerContext selfContext) { - super(role, clusterContext, selfContext); - } - - @Override - public void preStart() throws ProviderNotFoundException { - getClusterContext().findProvider(NodeRefSearchWithTimeSlice.WorkerRole.INSTANCE).create(this); - } - - @Override - protected void onSearch(Map request, JsonObject response) throws Exception { - if (!request.containsKey("startTime") || !request.containsKey("endTime") || !request.containsKey("timeSliceType")) { - throw new IllegalArgumentException("the request parameter must contains startTime,endTime,timeSliceType"); - } - logger.debug("startTime: %s, endTime: %s, timeSliceType: %s", Arrays.toString(request.get("startTime")), - Arrays.toString(request.get("endTime")), Arrays.toString(request.get("timeSliceType"))); - - long startTime; - try { - startTime = Long.valueOf(ParameterTools.INSTANCE.toString(request, "startTime")); - } catch (NumberFormatException e) { - throw new IllegalArgumentException("the request parameter startTime must numeric with long type"); - } - - long endTime; - try { - endTime = Long.valueOf(ParameterTools.INSTANCE.toString(request, "endTime")); - } catch (NumberFormatException e) { - throw new IllegalArgumentException("the request parameter endTime must numeric with long type"); - } - - NodeRefSearchWithTimeSlice.RequestEntity requestEntity; - requestEntity = new NodeRefSearchWithTimeSlice.RequestEntity(ParameterTools.INSTANCE.toString(request, "timeSliceType"), startTime, endTime); - getSelfContext().lookup(NodeRefSearchWithTimeSlice.WorkerRole.INSTANCE).ask(requestEntity, response); - } - - public static class Factory extends AbstractGetProvider { - - @Override - public Role role() { - return WorkerRole.INSTANCE; - } - - @Override - public NodeRefGetWithTimeSlice workerInstance(ClusterWorkerContext clusterContext) { - return new NodeRefGetWithTimeSlice(role(), clusterContext, new LocalWorkerContext()); - } - - @Override - public String servletPath() { - return "/nodeRef/timeSlice"; - } - } - - public enum WorkerRole implements Role { - INSTANCE; - - @Override - public String roleName() { - return NodeRefGetWithTimeSlice.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/noderef/NodeRefResSumGetWithTimeSlice.java b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/noderef/NodeRefResSumGetWithTimeSlice.java deleted file mode 100644 index 758ddda5191767d371d0d0b4a625d695a50ce1d7..0000000000000000000000000000000000000000 --- a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/noderef/NodeRefResSumGetWithTimeSlice.java +++ /dev/null @@ -1,94 +0,0 @@ -package com.a.eye.skywalking.collector.worker.noderef; - -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.Role; -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.httpserver.AbstractGet; -import com.a.eye.skywalking.collector.worker.httpserver.AbstractGetProvider; -import com.a.eye.skywalking.collector.worker.noderef.persistence.NodeRefResSumSearchWithTimeSlice; -import com.a.eye.skywalking.collector.worker.tools.ParameterTools; -import com.google.gson.JsonObject; -import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; - -import java.util.Arrays; -import java.util.Map; - -/** - * @author pengys5 - */ -public class NodeRefResSumGetWithTimeSlice extends AbstractGet { - - private Logger logger = LogManager.getFormatterLogger(NodeRefResSumGetWithTimeSlice.class); - - private NodeRefResSumGetWithTimeSlice(Role role, ClusterWorkerContext clusterContext, LocalWorkerContext selfContext) { - super(role, clusterContext, selfContext); - } - - @Override - public void preStart() throws ProviderNotFoundException { - getClusterContext().findProvider(NodeRefResSumSearchWithTimeSlice.WorkerRole.INSTANCE).create(this); - } - - @Override - protected void onSearch(Map request, JsonObject response) throws Exception { - if (!request.containsKey("startTime") || !request.containsKey("endTime") || !request.containsKey("timeSliceType")) { - throw new IllegalArgumentException("the request parameter must contains startTime,endTime,timeSliceType"); - } - logger.debug("startTime: %s, endTime: %s, timeSliceType: %s", Arrays.toString(request.get("startTime")), - Arrays.toString(request.get("endTime")), Arrays.toString(request.get("timeSliceType"))); - - long startTime; - try { - startTime = Long.valueOf(ParameterTools.INSTANCE.toString(request, "startTime")); - } catch (NumberFormatException e) { - throw new IllegalArgumentException("the request parameter startTime must numeric with long type"); - } - - long endTime; - try { - endTime = Long.valueOf(ParameterTools.INSTANCE.toString(request, "endTime")); - } catch (NumberFormatException e) { - throw new IllegalArgumentException("the request parameter endTime must numeric with long type"); - } - - NodeRefResSumSearchWithTimeSlice.RequestEntity requestEntity; - requestEntity = new NodeRefResSumSearchWithTimeSlice.RequestEntity(ParameterTools.INSTANCE.toString(request, "timeSliceType"), startTime, endTime); - getSelfContext().lookup(NodeRefResSumSearchWithTimeSlice.WorkerRole.INSTANCE).ask(requestEntity, response); - } - - public static class Factory extends AbstractGetProvider { - - @Override - public Role role() { - return WorkerRole.INSTANCE; - } - - @Override - public NodeRefResSumGetWithTimeSlice workerInstance(ClusterWorkerContext clusterContext) { - return new NodeRefResSumGetWithTimeSlice(role(), clusterContext, new LocalWorkerContext()); - } - - @Override - public String servletPath() { - return "/nodeRef/resSum/timeSlice"; - } - } - - public enum WorkerRole implements Role { - INSTANCE; - - @Override - public String roleName() { - return NodeRefResSumGetWithTimeSlice.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/noderef/analysis/AbstractNodeRefAnalysis.java b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/noderef/analysis/AbstractNodeRefAnalysis.java index 3046c500633a42b514e869b25f3e02d74e745ff6..717070bf19f77eba8b1db07d541fefadcfd6366c 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 @@ -41,7 +41,7 @@ abstract class AbstractNodeRefAnalysis extends RecordAnalysisMember { String front = segment.getApplicationCode(); dataJsonObj.addProperty(NodeRefIndex.Front, front); - String behind = SpanPeersTools.getPeers(span); + String behind = SpanPeersTools.INSTANCE.getPeers(span); dataJsonObj.addProperty(NodeRefIndex.Behind, behind); dataJsonObj.addProperty(NodeRefIndex.BehindIsRealCode, false); 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 ce44bfcec2cf2bb03146340b6f0c8278d6b95416..e045565ace522a0a312c533a913d8ce0fd89a941 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 @@ -15,7 +15,7 @@ public class NodeRefDayAgg extends AbstractClusterWorker { private Logger logger = LogManager.getFormatterLogger(NodeRefDayAgg.class); - public NodeRefDayAgg(com.a.eye.skywalking.collector.actor.Role role, ClusterWorkerContext clusterContext, LocalWorkerContext selfContext) { + NodeRefDayAgg(com.a.eye.skywalking.collector.actor.Role role, ClusterWorkerContext clusterContext, LocalWorkerContext selfContext) { super(role, clusterContext, selfContext); } @@ -48,7 +48,7 @@ public class NodeRefDayAgg extends AbstractClusterWorker { @Override public int workerNum() { - return WorkerConfig.Worker.DAGNodeRefReceiver.Num; + return WorkerConfig.WorkerNum.NodeRef.NodeRefDayAgg.Value; } } 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 16a595d9df29f8827df63af367bcaf5b99b6f788..946eda3a1e284a4f000e17b19f866332c86bf071 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 @@ -14,7 +14,7 @@ import com.a.eye.skywalking.collector.worker.noderef.NodeRefIndex; */ public class NodeRefDaySave extends RecordPersistenceMember { - public NodeRefDaySave(com.a.eye.skywalking.collector.actor.Role role, ClusterWorkerContext clusterContext, LocalWorkerContext selfContext) { + NodeRefDaySave(com.a.eye.skywalking.collector.actor.Role role, ClusterWorkerContext clusterContext, LocalWorkerContext selfContext) { super(role, clusterContext, selfContext); } @@ -44,7 +44,7 @@ public class NodeRefDaySave extends RecordPersistenceMember { @Override public int queueSize() { - return WorkerConfig.Queue.Persistence.DAGNodeRefPersistence.Size; + return WorkerConfig.Queue.NodeRef.NodeRefDaySave.Size; } } 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 14c6890f7f1270a43b8b6845030de69dcc6e8593..78974e82b98b12401d1e2aa2cb211ed9ef789419 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 @@ -15,7 +15,7 @@ public class NodeRefHourAgg extends AbstractClusterWorker { private Logger logger = LogManager.getFormatterLogger(NodeRefHourAgg.class); - public NodeRefHourAgg(com.a.eye.skywalking.collector.actor.Role role, ClusterWorkerContext clusterContext, LocalWorkerContext selfContext) { + NodeRefHourAgg(com.a.eye.skywalking.collector.actor.Role role, ClusterWorkerContext clusterContext, LocalWorkerContext selfContext) { super(role, clusterContext, selfContext); } @@ -48,7 +48,7 @@ public class NodeRefHourAgg extends AbstractClusterWorker { @Override public int workerNum() { - return WorkerConfig.Worker.DAGNodeRefReceiver.Num; + return WorkerConfig.WorkerNum.NodeRef.NodeRefHourAgg.Value; } } 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 814ef87f42cb438d5eedca99f9ca8de260d79442..8ec5b14760d5c3c7fc481c95ffddb8ddf3ca4c09 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 @@ -14,7 +14,7 @@ import com.a.eye.skywalking.collector.worker.noderef.NodeRefIndex; */ public class NodeRefHourSave extends RecordPersistenceMember { - public NodeRefHourSave(com.a.eye.skywalking.collector.actor.Role role, ClusterWorkerContext clusterContext, LocalWorkerContext selfContext) { + NodeRefHourSave(com.a.eye.skywalking.collector.actor.Role role, ClusterWorkerContext clusterContext, LocalWorkerContext selfContext) { super(role, clusterContext, selfContext); } @@ -44,7 +44,7 @@ public class NodeRefHourSave extends RecordPersistenceMember { @Override public int queueSize() { - return WorkerConfig.Queue.Persistence.DAGNodeRefPersistence.Size; + return WorkerConfig.Queue.NodeRef.NodeRefHourSave.Size; } } 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 5d1b4f124b08d9d4cb2e43f90c45c5771ff98782..b961e2ce7e85c7acb3a18a50f0998053b148419b 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 @@ -15,7 +15,7 @@ public class NodeRefMinuteAgg extends AbstractClusterWorker { private Logger logger = LogManager.getFormatterLogger(NodeRefMinuteAgg.class); - public NodeRefMinuteAgg(com.a.eye.skywalking.collector.actor.Role role, ClusterWorkerContext clusterContext, LocalWorkerContext selfContext) { + NodeRefMinuteAgg(com.a.eye.skywalking.collector.actor.Role role, ClusterWorkerContext clusterContext, LocalWorkerContext selfContext) { super(role, clusterContext, selfContext); } @@ -48,7 +48,7 @@ public class NodeRefMinuteAgg extends AbstractClusterWorker { @Override public int workerNum() { - return WorkerConfig.Worker.DAGNodeRefReceiver.Num; + return WorkerConfig.WorkerNum.NodeRef.NodeRefMinuteAgg.Value; } } 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 b872da5ea17f37bf2c0c32f23a0eddac32d68690..d77cd3c37e441c781c11994d5d28df6c294b04cd 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 @@ -14,7 +14,7 @@ import com.a.eye.skywalking.collector.worker.noderef.NodeRefIndex; */ public class NodeRefMinuteSave extends RecordPersistenceMember { - public NodeRefMinuteSave(com.a.eye.skywalking.collector.actor.Role role, ClusterWorkerContext clusterContext, LocalWorkerContext selfContext) { + NodeRefMinuteSave(com.a.eye.skywalking.collector.actor.Role role, ClusterWorkerContext clusterContext, LocalWorkerContext selfContext) { super(role, clusterContext, selfContext); } @@ -44,7 +44,7 @@ public class NodeRefMinuteSave extends RecordPersistenceMember { @Override public int queueSize() { - return WorkerConfig.Queue.Persistence.DAGNodeRefPersistence.Size; + return WorkerConfig.Queue.NodeRef.NodeRefMinuteSave.Size; } } 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 a03ea1caf4ae25f0f627cab89a351acf80aa53b0..61fa1ad5c66a8f6e1b75bc9b12bb76b7f58a5169 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 @@ -15,7 +15,7 @@ public class NodeRefResSumDayAgg extends AbstractClusterWorker { private Logger logger = LogManager.getFormatterLogger(NodeRefResSumDayAgg.class); - private NodeRefResSumDayAgg(com.a.eye.skywalking.collector.actor.Role role, ClusterWorkerContext clusterContext, LocalWorkerContext selfContext) { + NodeRefResSumDayAgg(com.a.eye.skywalking.collector.actor.Role role, ClusterWorkerContext clusterContext, LocalWorkerContext selfContext) { super(role, clusterContext, selfContext); } @@ -48,7 +48,7 @@ public class NodeRefResSumDayAgg extends AbstractClusterWorker { @Override public int workerNum() { - return WorkerConfig.Worker.ResponseSummaryReceiver.Num; + return WorkerConfig.WorkerNum.NodeRef.NodeRefResSumDayAgg.Value; } } 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 566c51e336a554e63c6ee80138945080cf3f7931..b2afec7e7fc6e418426fc326853d8dc6ea05d713 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 @@ -14,7 +14,7 @@ import com.a.eye.skywalking.collector.worker.noderef.NodeRefResSumIndex; */ public class NodeRefResSumDaySave extends MetricPersistenceMember { - private NodeRefResSumDaySave(com.a.eye.skywalking.collector.actor.Role role, ClusterWorkerContext clusterContext, LocalWorkerContext selfContext) { + NodeRefResSumDaySave(com.a.eye.skywalking.collector.actor.Role role, ClusterWorkerContext clusterContext, LocalWorkerContext selfContext) { super(role, clusterContext, selfContext); } @@ -43,7 +43,7 @@ public class NodeRefResSumDaySave extends MetricPersistenceMember { @Override public int queueSize() { - return WorkerConfig.Queue.Persistence.ResponseSummaryPersistence.Size; + return WorkerConfig.Queue.NodeRef.NodeRefResSumDaySave.Size; } } 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 0a14de90afa6fa515d8ec08ddb12439c90844f92..2e3a61ee9572cf812141e7d63f08c09a7fcab97e 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 @@ -35,7 +35,7 @@ public class NodeRefResSumGroupWithTimeSlice extends AbstractLocalSyncWorker { if (request instanceof RequestEntity) { RequestEntity search = (RequestEntity) request; - SearchRequestBuilder searchRequestBuilder = EsClient.getClient().prepareSearch(NodeRefResSumIndex.Index); + SearchRequestBuilder searchRequestBuilder = EsClient.INSTANCE.getClient().prepareSearch(NodeRefResSumIndex.Index); searchRequestBuilder.setTypes(search.getSliceType()); searchRequestBuilder.setSearchType(SearchType.DFS_QUERY_THEN_FETCH); searchRequestBuilder.setQuery(QueryBuilders.rangeQuery(NodeRefResSumIndex.Time_Slice).gte(search.getStartTime()).lte(search.getEndTime())); 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 5e4ef0c3e9c01fdc2775011bd6b1563f75cbd8d6..39435bbd5ecf4f032b5eec062d52e452ecc10e12 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 @@ -15,7 +15,7 @@ public class NodeRefResSumHourAgg extends AbstractClusterWorker { private Logger logger = LogManager.getFormatterLogger(NodeRefResSumHourAgg.class); - private NodeRefResSumHourAgg(com.a.eye.skywalking.collector.actor.Role role, ClusterWorkerContext clusterContext, LocalWorkerContext selfContext) { + NodeRefResSumHourAgg(com.a.eye.skywalking.collector.actor.Role role, ClusterWorkerContext clusterContext, LocalWorkerContext selfContext) { super(role, clusterContext, selfContext); } @@ -48,7 +48,7 @@ public class NodeRefResSumHourAgg extends AbstractClusterWorker { @Override public int workerNum() { - return WorkerConfig.Worker.ResponseSummaryReceiver.Num; + return WorkerConfig.WorkerNum.NodeRef.NodeRefResSumHourAgg.Value; } } 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 0009ce518dcf127ca29c8dec2f9e6f99d2f80fe2..f4da5b5076ab3ca89243787eb0e4898d799de5c4 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 @@ -14,7 +14,7 @@ import com.a.eye.skywalking.collector.worker.noderef.NodeRefResSumIndex; */ public class NodeRefResSumHourSave extends MetricPersistenceMember { - private NodeRefResSumHourSave(com.a.eye.skywalking.collector.actor.Role role, ClusterWorkerContext clusterContext, LocalWorkerContext selfContext) { + NodeRefResSumHourSave(com.a.eye.skywalking.collector.actor.Role role, ClusterWorkerContext clusterContext, LocalWorkerContext selfContext) { super(role, clusterContext, selfContext); } @@ -43,7 +43,7 @@ public class NodeRefResSumHourSave extends MetricPersistenceMember { @Override public int queueSize() { - return WorkerConfig.Queue.Persistence.ResponseSummaryPersistence.Size; + return WorkerConfig.Queue.NodeRef.NodeRefResSumHourSave.Size; } } 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 1981f643ae65c3ebd33d059d79e87c1557230873..7afb59d8b6595e9a074c7da46f12c40cc621fdaf 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 @@ -15,7 +15,7 @@ public class NodeRefResSumMinuteAgg extends AbstractClusterWorker { private Logger logger = LogManager.getFormatterLogger(NodeRefResSumMinuteAgg.class); - private NodeRefResSumMinuteAgg(com.a.eye.skywalking.collector.actor.Role role, ClusterWorkerContext clusterContext, LocalWorkerContext selfContext) { + NodeRefResSumMinuteAgg(com.a.eye.skywalking.collector.actor.Role role, ClusterWorkerContext clusterContext, LocalWorkerContext selfContext) { super(role, clusterContext, selfContext); } @@ -48,7 +48,7 @@ public class NodeRefResSumMinuteAgg extends AbstractClusterWorker { @Override public int workerNum() { - return WorkerConfig.Worker.ResponseSummaryReceiver.Num; + return WorkerConfig.WorkerNum.NodeRef.NodeRefResSumMinuteAgg.Value; } } 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 3ffb4a0ffc133f05d90ca6c82fa22a3d1be689b6..d2ae9fae79a0d302bdf453b2e814bb335504a8cb 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 @@ -14,7 +14,7 @@ import com.a.eye.skywalking.collector.worker.noderef.NodeRefResSumIndex; */ public class NodeRefResSumMinuteSave extends MetricPersistenceMember { - private NodeRefResSumMinuteSave(com.a.eye.skywalking.collector.actor.Role role, ClusterWorkerContext clusterContext, LocalWorkerContext selfContext) { + NodeRefResSumMinuteSave(com.a.eye.skywalking.collector.actor.Role role, ClusterWorkerContext clusterContext, LocalWorkerContext selfContext) { super(role, clusterContext, selfContext); } @@ -43,7 +43,7 @@ public class NodeRefResSumMinuteSave extends MetricPersistenceMember { @Override public int queueSize() { - return WorkerConfig.Queue.Persistence.ResponseSummaryPersistence.Size; + return WorkerConfig.Queue.NodeRef.NodeRefResSumMinuteSave.Size; } } 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 a3a41f234fb20cf1640f4c5ba95174af00327dc9..8580abb441b18f8f7cc75ed913b3d6b699a88580 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 @@ -36,7 +36,7 @@ public class NodeRefResSumSearchWithTimeSlice extends AbstractLocalSyncWorker { if (request instanceof RequestEntity) { RequestEntity search = (RequestEntity) request; - SearchRequestBuilder searchRequestBuilder = EsClient.getClient().prepareSearch(NodeRefResSumIndex.Index); + SearchRequestBuilder searchRequestBuilder = EsClient.INSTANCE.getClient().prepareSearch(NodeRefResSumIndex.Index); searchRequestBuilder.setTypes(search.getSliceType()); searchRequestBuilder.setSearchType(SearchType.DFS_QUERY_THEN_FETCH); searchRequestBuilder.setQuery(QueryBuilders.rangeQuery(NodeRefResSumIndex.Time_Slice).gte(search.getStartTime()).lte(search.getEndTime())); 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 eeebdd49b41a74c47092d29fac5bdf5790c88014..5f24dd0fe99eb6630dff1f6956c5ca4ba808eb47 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 @@ -34,7 +34,7 @@ public class NodeRefSearchWithTimeSlice extends AbstractLocalSyncWorker { if (request instanceof RequestEntity) { RequestEntity search = (RequestEntity) request; - SearchRequestBuilder searchRequestBuilder = EsClient.getClient().prepareSearch(NodeRefIndex.Index); + SearchRequestBuilder searchRequestBuilder = EsClient.INSTANCE.getClient().prepareSearch(NodeRefIndex.Index); searchRequestBuilder.setTypes(search.getSliceType()); searchRequestBuilder.setSearchType(SearchType.DFS_QUERY_THEN_FETCH); searchRequestBuilder.setQuery(QueryBuilders.rangeQuery(NodeRefIndex.Time_Slice).gte(search.getStartTime()).lte(search.getEndTime())); 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 dd2a994d8838456b9830c03318382645b0acb3f5..8da59104f001027d6815d8f1f5560adeb2aac5fc 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 @@ -31,7 +31,7 @@ public class SegmentCostIndex extends AbstractIndex { @Override public XContentBuilder createMappingBuilder() throws IOException { - XContentBuilder mappingBuilder = XContentFactory.jsonBuilder() + return XContentFactory.jsonBuilder() .startObject() .startObject("properties") .startObject(SegId) @@ -50,12 +50,11 @@ public class SegmentCostIndex extends AbstractIndex { .field("type", "string") .field("index", "not_analyzed") .endObject() - .startObject(Cost) + .startObject(Cost) .field("type", "long") - .field("index", "not_analyzed") + .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/segment/SegmentIndex.java b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/segment/SegmentIndex.java index 741ac3e0d03054edbd04e2a6e6225c2ee58be63b..32def9cd84329f4bcac69f89f8ded8ab22f81472 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,8 +1,6 @@ package com.a.eye.skywalking.collector.worker.segment; import com.a.eye.skywalking.collector.worker.storage.AbstractIndex; -import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; import org.elasticsearch.common.xcontent.XContentBuilder; import org.elasticsearch.common.xcontent.XContentFactory; @@ -13,8 +11,6 @@ import java.io.IOException; */ public class SegmentIndex extends AbstractIndex { - private Logger logger = LogManager.getFormatterLogger(SegmentIndex.class); - public static final String Index = "segment_idx"; @Override @@ -29,7 +25,7 @@ public class SegmentIndex extends AbstractIndex { @Override public XContentBuilder createMappingBuilder() throws IOException { - XContentBuilder mappingBuilder = XContentFactory.jsonBuilder() + return XContentFactory.jsonBuilder() .startObject() .startObject("properties") .startObject("traceSegmentId") @@ -60,54 +56,7 @@ public class SegmentIndex extends AbstractIndex { .field("type", "long") .field("index", "not_analyzed") .endObject() - .startArray("refs") - .startObject("traceSegmentId") - .field("type", "String") - .field("index", "not_analyzed") - .endObject() - .startObject("spanId") - .field("type", "integer") - .field("index", "not_analyzed") - .endObject() - .startObject("applicationCode") - .field("type", "String") - .field("index", "not_analyzed") - .endObject() - .startObject("peerHost") - .field("type", "String") - .field("index", "not_analyzed") - .endObject() - .endArray() - .startArray("refs") - .startObject("spanId") - .field("type", "integer") - .field("index", "not_analyzed") - .endObject() - .startObject("parentSpanId") - .field("type", "integer") - .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("operationName") - .field("type", "String") - .field("index", "not_analyzed") - .endObject() - .endArray() - .startArray("relatedGlobalTraces") - .startObject("id") - .field("type", "String") - .field("index", "not_analyzed") - .endObject() - .endArray() .endObject() .endObject(); - return mappingBuilder; } } 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 da1317929e86a29bbff1df24192da88cea93d293..af96de4b2f4c3bae97c4c37c43a9eb0048141c35 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 @@ -7,6 +7,7 @@ import com.a.eye.skywalking.collector.actor.ProviderNotFoundException; import com.a.eye.skywalking.collector.actor.Role; 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.WorkerConfig; import com.a.eye.skywalking.collector.worker.globaltrace.analysis.GlobalTraceAnalysis; import com.a.eye.skywalking.collector.worker.httpserver.AbstractPost; import com.a.eye.skywalking.collector.worker.httpserver.AbstractPostProvider; @@ -134,7 +135,7 @@ public class SegmentPost extends AbstractPost { @Override public int queueSize() { - return 128; + return WorkerConfig.Queue.Segment.SegmentPost.Size; } @Override 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 4102a6698f653f61d9fc38c4b0945a438e036259..71443e4d919004e9cb227eeeca08ddc6da5f1a2f 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 @@ -22,7 +22,7 @@ public class SegmentExceptionWithSegId extends AbstractLocalSyncWorker { if (request instanceof RequestEntity) { RequestEntity search = (RequestEntity) request; - GetResponse getResponse = EsClient.getClient().prepareGet(SegmentExceptionIndex.Index, SegmentExceptionIndex.Type_Record, search.segId).get(); + GetResponse getResponse = EsClient.INSTANCE.getClient().prepareGet(SegmentExceptionIndex.Index, SegmentExceptionIndex.Type_Record, search.segId).get(); JsonObject dataJson = new JsonObject(); dataJson.addProperty(SegmentExceptionIndex.SegId, (String) getResponse.getSource().get(SegmentExceptionIndex.SegId)); 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 9ecf8c6bdda7d7e000573fe003795f7bc764ae0a..52e15d215ccb759c4016e2d6511f49bd89bfdf17 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 @@ -41,7 +41,7 @@ public class SegmentTopSearchWithGlobalTraceId extends AbstractLocalSyncWorker { protected void onWork(Object request, Object response) throws Exception { if (request instanceof RequestEntity) { RequestEntity search = (RequestEntity) request; - Client client = EsClient.getClient(); + Client client = EsClient.INSTANCE.getClient(); String globalTraceData = client.prepareGet(GlobalTraceIndex.Index, GlobalTraceIndex.Type_Record, search.globalTraceId).get().getSourceAsString(); JsonObject globalTraceObj = gson.fromJson(globalTraceData, JsonObject.class); 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 0b3095af83db657a4ab86c0a72c63f9a1d125fdc..fbedfd46b32198a214e8d1db214365f0154e1392 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 @@ -43,7 +43,7 @@ public class SegmentTopSearchWithTimeSlice extends AbstractLocalSyncWorker { if (request instanceof RequestEntity) { RequestEntity search = (RequestEntity) request; - SearchRequestBuilder searchRequestBuilder = EsClient.getClient().prepareSearch(SegmentCostIndex.Index); + SearchRequestBuilder searchRequestBuilder = EsClient.INSTANCE.getClient().prepareSearch(SegmentCostIndex.Index); searchRequestBuilder.setTypes(SegmentCostIndex.Type_Record); searchRequestBuilder.setSearchType(SearchType.DFS_QUERY_THEN_FETCH); BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery(); @@ -86,7 +86,7 @@ public class SegmentTopSearchWithTimeSlice extends AbstractLocalSyncWorker { topSegmentJson.addProperty(SegmentCostIndex.OperationName, (String) searchHit.getSource().get(SegmentCostIndex.OperationName)); topSegmentJson.addProperty(SegmentCostIndex.Cost, (Number) searchHit.getSource().get(SegmentCostIndex.Cost)); - String segmentSource = EsClient.getClient().prepareGet(SegmentIndex.Index, SegmentIndex.Type_Record, segId).get().getSourceAsString(); + String segmentSource = EsClient.INSTANCE.getClient().prepareGet(SegmentIndex.Index, SegmentIndex.Type_Record, segId).get().getSourceAsString(); Segment segment = SegmentDeserialize.INSTANCE.deserializeFromES(segmentSource); List distributedTraceIdList = segment.getRelatedGlobalTraces(); 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 e5ff6cf992e13125a6ce4e3c15fbb25034945568..944ccdb563bc248427c45961a91a891238612058 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 @@ -40,11 +40,6 @@ public class SpanGetWithId extends AbstractGet { } logger.debug("segId: %s, spanId: %s", Arrays.toString(request.get("segId")), Arrays.toString(request.get("spanId"))); - int maxCost = -1; - if (request.containsKey("maxCost")) { - maxCost = Integer.valueOf(ParameterTools.INSTANCE.toString(request, "maxCost")); - } - String segId = ParameterTools.INSTANCE.toString(request, "segId"); String spanId = ParameterTools.INSTANCE.toString(request, "spanId"); 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 5129b4f2c87f273a87c2b14fbad16b50ce8299b5..d3b013f5c142602bfd5be91669de035eeb4bfcdd 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 @@ -3,10 +3,11 @@ package com.a.eye.skywalking.collector.worker.span.persistence; 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.Const; import com.a.eye.skywalking.collector.worker.segment.SegmentIndex; import com.a.eye.skywalking.collector.worker.segment.logic.Segment; import com.a.eye.skywalking.collector.worker.segment.logic.SegmentDeserialize; -import com.a.eye.skywalking.collector.worker.storage.EsClient; +import com.a.eye.skywalking.collector.worker.storage.GetResponseFromEs; import com.a.eye.skywalking.trace.Span; import com.google.gson.Gson; import com.google.gson.JsonObject; @@ -21,7 +22,7 @@ public class SpanSearchWithId extends AbstractLocalSyncWorker { private Gson gson = new Gson(); - private SpanSearchWithId(Role role, ClusterWorkerContext clusterContext, LocalWorkerContext selfContext) { + SpanSearchWithId(Role role, ClusterWorkerContext clusterContext, LocalWorkerContext selfContext) { super(role, clusterContext, selfContext); } @@ -29,7 +30,7 @@ public class SpanSearchWithId extends AbstractLocalSyncWorker { protected void onWork(Object request, Object response) throws Exception { if (request instanceof RequestEntity) { RequestEntity search = (RequestEntity) request; - GetResponse getResponse = EsClient.getClient().prepareGet(SegmentIndex.Index, SegmentIndex.Type_Record, search.segId).get(); + GetResponse getResponse = GetResponseFromEs.INSTANCE.get(SegmentIndex.Index, SegmentIndex.Type_Record, search.segId); Segment segment = SegmentDeserialize.INSTANCE.deserializeFromES(getResponse.getSourceAsString()); List spanList = segment.getSpans(); @@ -44,7 +45,7 @@ public class SpanSearchWithId extends AbstractLocalSyncWorker { } JsonObject resJsonObj = (JsonObject) response; - resJsonObj.add("result", dataJson); + resJsonObj.add(Const.RESULT, dataJson); } } 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 8f4ade7daad9fb7bccca6fedae93b98c3c4866a7..bb27a34e9350d46858d0fe40503207db238c5775 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 @@ -29,20 +29,19 @@ public abstract class AbstractIndex { public static final String AGG_COLUMN = "aggId"; public static final String Time_Slice = "timeSlice"; - final public XContentBuilder createSettingBuilder() throws IOException { - XContentBuilder settingsBuilder = XContentFactory.jsonBuilder() + final XContentBuilder createSettingBuilder() throws IOException { + return XContentFactory.jsonBuilder() .startObject() .field("index.number_of_shards", 2) .field("index.number_of_replicas", 0) .endObject(); - return settingsBuilder; } public abstract boolean isRecord(); public abstract XContentBuilder createMappingBuilder() throws IOException; - final public void createIndex() { + final void createIndex() { // settings String settingSource = ""; @@ -59,7 +58,7 @@ public abstract class AbstractIndex { logger.error("create %s index mapping builder error", index()); } Settings settings = Settings.builder().loadFromSource(settingSource).build(); - IndicesAdminClient client = EsClient.getClient().admin().indices(); + IndicesAdminClient client = EsClient.INSTANCE.getClient().admin().indices(); if (isRecord()) { CreateIndexResponse response = client.prepareCreate(index()).setSettings(settings).addMapping(Type_Record, mappingBuilder).get(); @@ -74,8 +73,8 @@ public abstract class AbstractIndex { } } - final public boolean deleteIndex() { - IndicesAdminClient client = EsClient.getClient().admin().indices(); + final boolean deleteIndex() { + IndicesAdminClient client = EsClient.INSTANCE.getClient().admin().indices(); try { DeleteIndexResponse response = client.prepareDelete(index()).get(); logger.info("delete %s index finished, isAcknowledged: %s", index(), response.isAcknowledged()); 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 27a0a8e8000f198da0e1e0c15fd98d51d8f08c87..01355af82233600d77198ea59c73cc552cb3e9dd 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 @@ -15,11 +15,12 @@ import java.net.UnknownHostException; /** * @author pengys5 */ -public class EsClient { +public enum EsClient { + INSTANCE; - private static Client client; + private Client client; - public static void boot() throws UnknownHostException { + public void boot() throws UnknownHostException { Settings settings = Settings.builder() .put("cluster.name", "CollectorCluster") .put("client.transport.sniff", true) @@ -29,11 +30,11 @@ public class EsClient { .addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("localhost"), 9300)); } - public static Client getClient() { + public Client getClient() { return client; } - public static void indexRefresh(String... indexName) { + public void indexRefresh(String... indexName) { Logger logger = LogManager.getFormatterLogger(EsClient.class); RefreshResponse response = client.admin().indices().refresh(new RefreshRequest(indexName)).actionGet(); if (response.getShardFailures().length == response.getTotalShards()) { diff --git a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/storage/GetResponseFromEs.java b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/storage/GetResponseFromEs.java new file mode 100644 index 0000000000000000000000000000000000000000..dae1d509460ddf67c0d71b097d5a7ff628c9e756 --- /dev/null +++ b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/storage/GetResponseFromEs.java @@ -0,0 +1,14 @@ +package com.a.eye.skywalking.collector.worker.storage; + +import org.elasticsearch.action.get.GetResponse; + +/** + * @author pengys5 + */ +public enum GetResponseFromEs { + INSTANCE; + + public GetResponse get(String index, String type, String id) { + return EsClient.INSTANCE.getClient().prepareGet(index, type, id).get(); + } +} diff --git a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/storage/IndexCreator.java b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/storage/IndexCreator.java index b8312881fa41b5d6a79a0a09dad622d79acf8768..1c2073cdd3505d6d7c7d8ac807ac2c135422224b 100644 --- a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/storage/IndexCreator.java +++ b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/storage/IndexCreator.java @@ -1,13 +1,11 @@ package com.a.eye.skywalking.collector.worker.storage; -import com.a.eye.skywalking.collector.worker.globaltrace.GlobalTraceIndex; -import com.a.eye.skywalking.collector.worker.node.NodeCompIndex; -import com.a.eye.skywalking.collector.worker.node.NodeMappingIndex; -import com.a.eye.skywalking.collector.worker.noderef.NodeRefIndex; -import com.a.eye.skywalking.collector.worker.noderef.NodeRefResSumIndex; -import com.a.eye.skywalking.collector.worker.segment.SegmentCostIndex; -import com.a.eye.skywalking.collector.worker.segment.SegmentExceptionIndex; -import com.a.eye.skywalking.collector.worker.segment.SegmentIndex; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + +import java.util.HashSet; +import java.util.ServiceLoader; +import java.util.Set; /** * @author pengys5 @@ -15,36 +13,23 @@ import com.a.eye.skywalking.collector.worker.segment.SegmentIndex; public enum IndexCreator { INSTANCE; - public void create() { - SegmentIndex segmentIndex = new SegmentIndex(); - segmentIndex.deleteIndex(); - - GlobalTraceIndex globalTraceIndex = new GlobalTraceIndex(); - globalTraceIndex.deleteIndex(); - globalTraceIndex.createIndex(); - - SegmentCostIndex segmentCostIndex = new SegmentCostIndex(); - segmentCostIndex.deleteIndex(); - segmentCostIndex.createIndex(); - - SegmentExceptionIndex segmentExceptionIndex = new SegmentExceptionIndex(); - segmentExceptionIndex.deleteIndex(); - segmentExceptionIndex.createIndex(); + private Logger logger = LogManager.getFormatterLogger(IndexCreator.class); - NodeCompIndex nodeCompIndex = new NodeCompIndex(); - nodeCompIndex.deleteIndex(); - nodeCompIndex.createIndex(); - - NodeMappingIndex nodeMappingIndex = new NodeMappingIndex(); - nodeMappingIndex.deleteIndex(); - nodeMappingIndex.createIndex(); - - NodeRefIndex nodeRefIndex = new NodeRefIndex(); - nodeRefIndex.deleteIndex(); - nodeRefIndex.createIndex(); + public void create() { + Set indexSet = loadIndex(); + for (AbstractIndex index : indexSet) { + index.deleteIndex(); + index.createIndex(); + } + } - NodeRefResSumIndex nodeRefResSumIndex = new NodeRefResSumIndex(); - nodeRefResSumIndex.deleteIndex(); - nodeRefResSumIndex.createIndex(); + private Set loadIndex() { + Set indexSet = new HashSet<>(); + ServiceLoader indexServiceLoader = ServiceLoader.load(AbstractIndex.class); + for (AbstractIndex index : indexServiceLoader) { + logger.info("index name: %s", index.index()); + indexSet.add(index); + } + return indexSet; } } 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 index 9d9aa9ec7704e2f12fedd3d728bd4cf6f146e292..4a5ccec673bbb8c1bd5d66a689574383a9fb7832 100644 --- 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 @@ -11,7 +11,7 @@ import java.util.function.Consumer; */ public class MergePersistenceData implements Iterable { - private Map persistenceData = new HashMap(); + private Map persistenceData = new HashMap<>(); public MergeData getElseCreate(String id) { if (!persistenceData.containsKey(id)) { @@ -28,10 +28,6 @@ public class MergePersistenceData implements Iterable { persistenceData.clear(); } - public boolean hasNext() { - return persistenceData.entrySet().iterator().hasNext(); - } - public MergeData pushOne() { MergeData one = persistenceData.entrySet().iterator().next().getValue(); persistenceData.remove(one.getId()); 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 3f9cdedd529444ef8eb367f3386424fbc668f031..23aa8304421990e4aac93acc7b271d718491520f 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 @@ -10,7 +10,7 @@ import java.util.Spliterator; */ public class MetricPersistenceData implements Iterable { - private Map persistenceData = new HashMap(); + private Map persistenceData = new HashMap<>(); public MetricData getElseCreate(String id) { if (!persistenceData.containsKey(id)) { 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 0135977b5ef04aa87ad1d807e2e1653231a26da7..f4b8f22614c7b18593bf71280f20b71db222f83d 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 @@ -24,6 +24,7 @@ public class RecordData extends AbstractHashMessage { this.aggId = this.aggId + Const.ID_SPLIT + ids[i]; } } + record = new JsonObject(); } public String getId() { diff --git a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/tools/SpanPeersTools.java b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/tools/SpanPeersTools.java index 55afd7219e4dcd92f8b28358f550397d87a43ac2..439684ad30500f3a4d099469f97ae1ccfbdc1ee6 100644 --- a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/tools/SpanPeersTools.java +++ b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/tools/SpanPeersTools.java @@ -8,8 +8,10 @@ import com.a.eye.skywalking.trace.tag.Tags; /** * @author pengys5 */ -public class SpanPeersTools { - public static String getPeers(Span span) { +public enum SpanPeersTools { + INSTANCE; + + public String getPeers(Span span) { if (StringUtil.isEmpty(Tags.PEERS.get(span))) { String host = Tags.PEER_HOST.get(span); int port = Tags.PEER_PORT.get(span); diff --git a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/tools/UrlTools.java b/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/tools/UrlTools.java deleted file mode 100644 index 42d6592690ba4918c6b17d09d8e16d77264507ab..0000000000000000000000000000000000000000 --- a/skywalking-collector/skywalking-collector-worker/src/main/java/com/a/eye/skywalking/collector/worker/tools/UrlTools.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.a.eye.skywalking.collector.worker.tools; - -/** - * @author pengys5 - */ -public class UrlTools { - - private static final String HttpUrlHead = "http://"; - private static final String HttpsUrlHead = "https://"; - private static final String MotanUrlHead = "motan://"; - - public static String parse(String url, String component) { - if ("Tomcat".equals(component)) { - return parseTomcat(url); - } else if ("Motan".equals(component)) { - return parseMotan(url); - } - return null; - } - - private static String parseTomcat(String url) { - if (url.startsWith(HttpUrlHead)) { - String suffix = url.substring(7, url.length()); - String[] urlSplit = suffix.split("/"); - return HttpUrlHead + urlSplit[0]; - } else if (url.startsWith(HttpsUrlHead)) { - String suffix = url.substring(8, url.length()); - String[] urlSplit = suffix.split("/"); - return HttpsUrlHead + urlSplit[0]; - } else if (url.contains(":")) { - return url.split("/")[0]; - } else { - return url; - } - } - - private static String parseMotan(String url) { - if (url.startsWith(MotanUrlHead)) { - String suffix = url.substring(8, url.length()); - String[] urlSplit = suffix.split("/"); - return MotanUrlHead + urlSplit[0]; - } else { - return url; - } - } -} diff --git a/skywalking-collector/skywalking-collector-worker/src/main/resources/META-INF/services/com.a.eye.skywalking.collector.worker.storage.AbstractIndex b/skywalking-collector/skywalking-collector-worker/src/main/resources/META-INF/services/com.a.eye.skywalking.collector.worker.storage.AbstractIndex new file mode 100644 index 0000000000000000000000000000000000000000..9ceb1d2f123cb604a8715b4431e7c83321de974f --- /dev/null +++ b/skywalking-collector/skywalking-collector-worker/src/main/resources/META-INF/services/com.a.eye.skywalking.collector.worker.storage.AbstractIndex @@ -0,0 +1,11 @@ +com.a.eye.skywalking.collector.worker.segment.SegmentIndex +com.a.eye.skywalking.collector.worker.segment.SegmentCostIndex +com.a.eye.skywalking.collector.worker.segment.SegmentExceptionIndex + +com.a.eye.skywalking.collector.worker.globaltrace.GlobalTraceIndex + +com.a.eye.skywalking.collector.worker.node.NodeCompIndex +com.a.eye.skywalking.collector.worker.node.NodeMappingIndex + +com.a.eye.skywalking.collector.worker.noderef.NodeRefIndex +com.a.eye.skywalking.collector.worker.noderef.NodeRefResSumIndex \ No newline at end of file diff --git a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/AnalysisMemberTestCase.java b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/AnalysisMemberTestCase.java index 3e3583accad8ab5b1bea5eea69cc396b0a0d4180..3d13a4e104c951840e88cdb14197e27e37ae3c3e 100644 --- a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/AnalysisMemberTestCase.java +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/AnalysisMemberTestCase.java @@ -1,18 +1,35 @@ 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 org.junit.After; +import org.junit.Assert; import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.Mockito; +import org.mockito.invocation.InvocationOnMock; +import org.mockito.stubbing.Answer; +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.mockito.Mockito.*; /** * @author pengys5 */ +@RunWith(PowerMockRunner.class) +@PrepareForTest(TestAnalysisMember.class) +@PowerMockIgnore({"javax.management.*"}) public class AnalysisMemberTestCase { @Test public void testCommandOnWork() throws Exception { - AnalysisMember member = mock(AnalysisMember.class); + ClusterWorkerContext clusterWorkerContext = new ClusterWorkerContext(null); + LocalWorkerContext localWorkerContext = new LocalWorkerContext(); + TestAnalysisMember member = PowerMockito.spy(new TestAnalysisMember(TestAnalysisMember.Role.INSTANCE, clusterWorkerContext, localWorkerContext)); EndOfBatchCommand command = new EndOfBatchCommand(); member.onWork(command); @@ -22,11 +39,58 @@ public class AnalysisMemberTestCase { @Test public void testAnalyse() throws Exception { - AnalysisMember member = mock(AnalysisMember.class); + ClusterWorkerContext clusterWorkerContext = new ClusterWorkerContext(null); + LocalWorkerContext localWorkerContext = new LocalWorkerContext(); + TestAnalysisMember member = PowerMockito.spy(new TestAnalysisMember(TestAnalysisMember.Role.INSTANCE, clusterWorkerContext, localWorkerContext)); Object message = new Object(); member.onWork(message); verify(member, never()).aggregation(); verify(member, times(1)).analyse(anyObject()); } + + @Test + public void testPreStart() throws Exception { + ClusterWorkerContext clusterWorkerContext = new ClusterWorkerContext(null); + LocalWorkerContext localWorkerContext = new LocalWorkerContext(); + TestAnalysisMember member = PowerMockito.spy(new TestAnalysisMember(TestAnalysisMember.Role.INSTANCE, clusterWorkerContext, localWorkerContext)); + member.preStart(); + } + + @Test + public void testOnWorkException() throws Exception { + ClusterWorkerContext clusterWorkerContext = new ClusterWorkerContext(null); + LocalWorkerContext localWorkerContext = new LocalWorkerContext(); + TestAnalysisMember member = PowerMockito.spy(new TestAnalysisMember(TestAnalysisMember.Role.INSTANCE, clusterWorkerContext, localWorkerContext)); + + doThrow(new TestException()).when(member).analyse(anyObject()); + + ExceptionAnswer answer = new ExceptionAnswer(); + PowerMockito.when(member, "saveException", any(TestException.class)).thenAnswer(answer); + + member.onWork(new Object()); + + Assert.assertEquals(true, answer.isTestException); + } + + class TestException extends Exception { + + } + + + class ExceptionAnswer implements Answer { + + boolean isTestException = false; + + @Override + public Object answer(InvocationOnMock invocation) throws Throwable { + Object obj = invocation.getArguments()[0]; + if (obj instanceof TestException) { + isTestException = true; + } else { + isTestException = false; + } + return null; + } + } } 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 index bf667754fdf592097ff4ecec4b276008a2193b15..29a89eb2a3125027376ddf426be47396c1784bef 100644 --- 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 @@ -1,5 +1,7 @@ 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.storage.MergeData; import com.a.eye.skywalking.collector.worker.storage.MergePersistenceData; import org.junit.Assert; @@ -7,6 +9,8 @@ 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; @@ -16,38 +20,42 @@ import static org.powermock.api.mockito.PowerMockito.*; * @author pengys5 */ @RunWith(PowerMockRunner.class) -@PrepareForTest(MergeAnalysisMember.class) +@PrepareForTest(TestMergeAnalysisMember.class) +@PowerMockIgnore({"javax.management.*"}) public class MergeAnalysisMemberTestCase { - private MergeAnalysisMember member; + private TestMergeAnalysisMember mergeAnalysisMember; private MergePersistenceData persistenceData; @Before public void init() throws Exception { - member = mock(MergeAnalysisMember.class); + 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(member, "getPersistenceData").thenReturn(persistenceData); + when(mergeAnalysisMember, "getPersistenceData").thenReturn(persistenceData); when(persistenceData.getElseCreate(Mockito.anyString())).thenReturn(mergeData); - doCallRealMethod().when(member).setMergeData(Mockito.anyString(), Mockito.anyString(), Mockito.anyString()); + doCallRealMethod().when(mergeAnalysisMember).setMergeData(Mockito.anyString(), Mockito.anyString(), Mockito.anyString()); } @Test public void testSetMergeDataNotFull() throws Exception { when(persistenceData.size()).thenReturn(WorkerConfig.Persistence.Data.size - 1); - member.setMergeData("segment_1", "column", "value"); - Mockito.verify(member, Mockito.never()).aggregation(); + mergeAnalysisMember.setMergeData("segment_1", "column", "value"); + Mockito.verify(mergeAnalysisMember, Mockito.never()).aggregation(); } @Test public void testSetMergeDataFull() throws Exception { when(persistenceData.size()).thenReturn(WorkerConfig.Persistence.Data.size); - member.setMergeData("segment_1", "column", "value"); - Mockito.verify(member, Mockito.times(1)).aggregation(); + mergeAnalysisMember.setMergeData("segment_1", "column", "value"); + Mockito.verify(mergeAnalysisMember, Mockito.times(1)).aggregation(); } @Test @@ -55,9 +63,10 @@ public class MergeAnalysisMemberTestCase { MergePersistenceData persistenceData = new MergePersistenceData(); persistenceData.getElseCreate("segment_1").setMergeData("column", "value"); - when(member, "getPersistenceData").thenReturn(persistenceData); - doCallRealMethod().when(member).pushOne(); + when(mergeAnalysisMember, "getPersistenceData").thenReturn(persistenceData); + doCallRealMethod().when(mergeAnalysisMember).pushOne(); - Assert.assertEquals("segment_1", member.pushOne().getId()); + 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/MergePersistenceMemberTestCase.java b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/MergePersistenceMemberTestCase.java new file mode 100644 index 0000000000000000000000000000000000000000..1795100e5357ddbbdf97e0eb308f4158c3c24dc2 --- /dev/null +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/MergePersistenceMemberTestCase.java @@ -0,0 +1,59 @@ +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 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({TestMergePersistenceMember.class, EsClient.class}) +@PowerMockIgnore({"javax.management.*"}) +public class MergePersistenceMemberTestCase { + + private TestMergePersistenceMember mergePersistenceMember; + private MergePersistenceData persistenceData; + + @Before + public void init() throws Exception { + MockEsBulkClient mockEsBulkClient = new MockEsBulkClient(); + mockEsBulkClient.createMock(); + + ClusterWorkerContext clusterWorkerContext = new ClusterWorkerContext(null); + LocalWorkerContext localWorkerContext = new LocalWorkerContext(); + mergePersistenceMember = PowerMockito.spy(new TestMergePersistenceMember(TestMergePersistenceMember.Role.INSTANCE, clusterWorkerContext, localWorkerContext)); + + persistenceData = mock(MergePersistenceData.class); + MergeData mergeData = mock(MergeData.class); + + when(mergePersistenceMember, "getPersistenceData").thenReturn(persistenceData); + when(persistenceData.getElseCreate(Mockito.anyString())).thenReturn(mergeData); + + doCallRealMethod().when(mergePersistenceMember).analyse(Mockito.any(MergeData.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"); + +// mergePersistenceMember.analyse(mergeData); +// mergePersistenceMember.onWork(new EndOfBatchCommand()); + } +} diff --git a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/StartUpTestCase.java b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/StartUpTestCase.java index fabd68d2c8b1a5444158aacfd0986affccb4531b..0d66c9cd9944d3f2f4b1382c172087b972061cf8 100644 --- a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/StartUpTestCase.java +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/StartUpTestCase.java @@ -29,7 +29,7 @@ public class StartUpTestCase { withFallback(ConfigFactory.load("application.conf")); ActorSystem system = ActorSystem.create("CollectorSystem", config); - EsClient.boot(); + EsClient.INSTANCE.boot(); TraceSegment dubboClientData = TraceSegmentBuilderFactory.INSTANCE.traceOf_Tomcat_DubboClient(); diff --git a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/TestAnalysisMember.java b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/TestAnalysisMember.java new file mode 100644 index 0000000000000000000000000000000000000000..55ac94a6865662980d093625091739b0ec59bb37 --- /dev/null +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/TestAnalysisMember.java @@ -0,0 +1,44 @@ +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.selector.WorkerSelector; + +/** + * @author pengys5 + */ +public class TestAnalysisMember extends AnalysisMember { + TestAnalysisMember(Role role, ClusterWorkerContext clusterContext, LocalWorkerContext selfContext) { + super(role, clusterContext, selfContext); + } + + @Override + public void analyse(Object message) throws Exception { + + } + + @Override + public void preStart() throws ProviderNotFoundException { + super.preStart(); + } + + @Override + protected void aggregation() throws Exception { + + } + + public enum Role implements com.a.eye.skywalking.collector.actor.Role { + INSTANCE; + + @Override + public String roleName() { + return null; + } + + @Override + public WorkerSelector workerSelector() { + return null; + } + } +} 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/TestMergeAnalysisMember.java new file mode 100644 index 0000000000000000000000000000000000000000..9f9bdf94dc27cd79f1b6ee0a57e0df42c6b90022 --- /dev/null +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/TestMergeAnalysisMember.java @@ -0,0 +1,45 @@ +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.selector.WorkerSelector; + +/** + * @author pengys5 + */ +public class TestMergeAnalysisMember extends MergeAnalysisMember { + + TestMergeAnalysisMember(Role role, ClusterWorkerContext clusterContext, LocalWorkerContext selfContext) { + super(role, clusterContext, selfContext); + } + + @Override + public void analyse(Object message) throws Exception { + + } + + @Override + public void preStart() throws ProviderNotFoundException { + super.preStart(); + } + + @Override + protected void aggregation() throws Exception { + + } + + public enum Role implements com.a.eye.skywalking.collector.actor.Role { + INSTANCE; + + @Override + public String roleName() { + return null; + } + + @Override + public WorkerSelector workerSelector() { + return null; + } + } +} 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/TestMergePersistenceMember.java new file mode 100644 index 0000000000000000000000000000000000000000..0f81a9043e1973d74d169abb8fbb5937cd0178cd --- /dev/null +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/TestMergePersistenceMember.java @@ -0,0 +1,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.selector.WorkerSelector; + +/** + * @author pengys5 + */ +public class TestMergePersistenceMember extends MergePersistenceMember { + TestMergePersistenceMember(Role role, ClusterWorkerContext clusterContext, LocalWorkerContext selfContext) { + super(role, clusterContext, selfContext); + } + + @Override + public String esIndex() { + return null; + } + + @Override + public String esType() { + return null; + } + + public enum Role implements com.a.eye.skywalking.collector.actor.Role { + INSTANCE; + + @Override + public String roleName() { + return null; + } + + @Override + public WorkerSelector workerSelector() { + return null; + } + } +} diff --git a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/TimeSliceTestCase.java b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/TimeSliceTestCase.java new file mode 100644 index 0000000000000000000000000000000000000000..289040b9249f6adcfd92bcdf5d0d4b070a1c7969 --- /dev/null +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/TimeSliceTestCase.java @@ -0,0 +1,24 @@ +package com.a.eye.skywalking.collector.worker; + +import org.junit.Assert; +import org.junit.Test; + +/** + * @author pengys5 + */ +public class TimeSliceTestCase { + + @Test + public void test() { + TestTimeSlice timeSlice = new TestTimeSlice("A", 10L, 20L); + Assert.assertEquals("A", timeSlice.getSliceType()); + Assert.assertEquals(10L, timeSlice.getStartTime()); + Assert.assertEquals(20L, timeSlice.getEndTime()); + } + + class TestTimeSlice extends TimeSlice { + public TestTimeSlice(String sliceType, long startTime, long endTime) { + super(sliceType, startTime, endTime); + } + } +} 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 new file mode 100644 index 0000000000000000000000000000000000000000..ebd960295b2dbbacebfe4fa1bb5e7f8dede11018 --- /dev/null +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/globaltrace/GlobalTraceIndexTestCase.java @@ -0,0 +1,25 @@ +package com.a.eye.skywalking.collector.worker.globaltrace; + +import org.junit.Assert; +import org.junit.Test; + +import java.io.IOException; + +/** + * @author pengys5 + */ +public class GlobalTraceIndexTestCase { + + @Test + public void test() { + GlobalTraceIndex index = new GlobalTraceIndex(); + Assert.assertEquals("global_trace_idx", index.index()); + Assert.assertEquals(true, index.isRecord()); + } + + @Test + public void testBuilder() throws IOException { + GlobalTraceIndex index = new GlobalTraceIndex(); + Assert.assertEquals("{\"properties\":{\"subSegIds\":{\"type\":\"text\",\"index\":\"not_analyzed\"}}}", index.createMappingBuilder().string()); + } +} 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 57ead136feb7a1fb6a14e7faa0133b382f5732d7..84a25f8d822dbd521e88947b7fb5cc51daffb923 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 @@ -28,7 +28,7 @@ public class GlobalTraceSearchTestCase { public void testSearchWithGlobalId() throws Exception { Client client = mock(Client.class); mockStatic(EsClient.class); - when(EsClient.getClient()).thenReturn(client); +// when(EsClient.INSTANCE.getClient()).thenReturn(client); String globalTraceId = "Global.1"; String segment_1 = "SEGMENT.1"; 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 new file mode 100644 index 0000000000000000000000000000000000000000..b8f87262f9341963b665d69aa3cfa8138b3a35ec --- /dev/null +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/globaltrace/persistence/GlobalTraceAggTestCase.java @@ -0,0 +1,85 @@ +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.ProviderNotFoundException; +import com.a.eye.skywalking.collector.actor.WorkerRefs; +import com.a.eye.skywalking.collector.actor.selector.HashCodeSelector; +import com.a.eye.skywalking.collector.worker.WorkerConfig; +import com.a.eye.skywalking.collector.worker.mock.MergeDataAnswer; +import com.a.eye.skywalking.collector.worker.storage.RecordData; +import com.a.eye.skywalking.collector.worker.tools.MergeDataAggTools; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.ArgumentCaptor; +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.mockito.Mockito.*; + +/** + * @author pengys5 + */ +@RunWith(PowerMockRunner.class) +@PrepareForTest({LocalWorkerContext.class}) +@PowerMockIgnore({"javax.management.*"}) +public class GlobalTraceAggTestCase { + + private GlobalTraceAgg agg; + private MergeDataAnswer mergeDataAnswer; + private ClusterWorkerContext clusterWorkerContext; + + @Before + public void init() throws Exception { + clusterWorkerContext = PowerMockito.mock(ClusterWorkerContext.class); + + LocalWorkerContext localWorkerContext = PowerMockito.mock(LocalWorkerContext.class); + WorkerRefs workerRefs = mock(WorkerRefs.class); + + mergeDataAnswer = new MergeDataAnswer(); + doAnswer(mergeDataAnswer).when(workerRefs).tell(Mockito.any(RecordData.class)); + + when(localWorkerContext.lookup(GlobalTraceSave.Role.INSTANCE)).thenReturn(workerRefs); + agg = new GlobalTraceAgg(GlobalTraceAgg.Role.INSTANCE, clusterWorkerContext, localWorkerContext); + } + + @Test + public void testRole() { + Assert.assertEquals(GlobalTraceAgg.class.getSimpleName(), GlobalTraceAgg.Role.INSTANCE.roleName()); + Assert.assertEquals(HashCodeSelector.class.getSimpleName(), GlobalTraceAgg.Role.INSTANCE.workerSelector().getClass().getSimpleName()); + } + + @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()); + + int testSize = 10; + WorkerConfig.WorkerNum.GlobalTrace.GlobalTraceAgg.Value = testSize; + Assert.assertEquals(testSize, GlobalTraceAgg.Factory.INSTANCE.workerNum()); + } + + @Test + public void testPreStart() throws ProviderNotFoundException { + when(clusterWorkerContext.findProvider(GlobalTraceSave.Role.INSTANCE)).thenReturn(GlobalTraceSave.Factory.INSTANCE); + + ArgumentCaptor argumentCaptor = ArgumentCaptor.forClass(GlobalTraceSave.Role.class); + agg.preStart(); + verify(clusterWorkerContext).findProvider(argumentCaptor.capture()); + } + + @Test + public void testOnWork() throws Exception { + MergeDataAggTools.INSTANCE.testOnWork(agg, mergeDataAnswer); + } + + @Test + 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/globaltrace/persistence/GlobalTraceSaveTestCase.java b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/globaltrace/persistence/GlobalTraceSaveTestCase.java new file mode 100644 index 0000000000000000000000000000000000000000..2a56ae1fae939f2c048f658009183b57733d037d --- /dev/null +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/globaltrace/persistence/GlobalTraceSaveTestCase.java @@ -0,0 +1,51 @@ +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.WorkerConfig; +import com.a.eye.skywalking.collector.worker.globaltrace.GlobalTraceIndex; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; + +/** + * @author pengys5 + */ +public class GlobalTraceSaveTestCase { + + private GlobalTraceSave save; + + @Before + public void init() { + ClusterWorkerContext cluster = new ClusterWorkerContext(null); + LocalWorkerContext local = new LocalWorkerContext(); + save = new GlobalTraceSave(GlobalTraceSave.Role.INSTANCE, cluster, local); + } + + @Test + public void testEsIndex() { + Assert.assertEquals(GlobalTraceIndex.Index, save.esIndex()); + } + + @Test + public void testEsType() { + Assert.assertEquals(GlobalTraceIndex.Type_Record, save.esType()); + } + + @Test + public void testRole() { + Assert.assertEquals(GlobalTraceSave.class.getSimpleName(), GlobalTraceSave.Role.INSTANCE.roleName()); + Assert.assertEquals(HashCodeSelector.class.getSimpleName(), GlobalTraceSave.Role.INSTANCE.workerSelector().getClass().getSimpleName()); + } + + @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()); + } +} 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 new file mode 100644 index 0000000000000000000000000000000000000000..c597e3122cb052d2b4b966388ae204443bc60f4b --- /dev/null +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/globaltrace/persistence/GlobalTraceSearchWithGlobalIdTestCase.java @@ -0,0 +1,72 @@ +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.RollingSelector; +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.storage.GetResponseFromEs; +import com.google.gson.JsonObject; +import org.elasticsearch.action.get.GetResponse; +import org.junit.Assert; +import org.junit.Before; +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.mockito.Mockito.mock; +import static org.mockito.Mockito.when; + +/** + * @author pengys5 + */ +@RunWith(PowerMockRunner.class) +@PrepareForTest({GetResponseFromEs.class}) +@PowerMockIgnore({"javax.management.*"}) +public class GlobalTraceSearchWithGlobalIdTestCase { + + private GetResponseFromEs getResponseFromEs; + + private String global_Str = "{\"subSegIds\":\"Segment.1491277162066.18986177.70531.27.1\"}"; + private String seg_str = "{\"ts\":\"Segment.1491277162066.18986177.70531.27.1\",\"st\":1491277162066,\"et\":1491277165743,\"ss\":[{\"si\":0,\"ps\":-1,\"st\":1491277162141,\"et\":1491277162144,\"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\":[]}],\"ac\":\"cache-service\",\"gt\":[\"Trace.1491277147443.-1562443425.70539.65.2\"],\"sampled\":true,\"minute\":201704041139,\"hour\":201704041100,\"day\":201704040000,\"aggId\":null}"; + + @Before + public void init() { + getResponseFromEs = PowerMockito.mock(GetResponseFromEs.class); + Whitebox.setInternalState(GetResponseFromEs.class, "INSTANCE", getResponseFromEs); + } + + @Test + public void testRole() { + Assert.assertEquals(GlobalTraceSearchWithGlobalId.class.getSimpleName(), GlobalTraceSearchWithGlobalId.WorkerRole.INSTANCE.roleName()); + Assert.assertEquals(RollingSelector.class.getSimpleName(), GlobalTraceSearchWithGlobalId.WorkerRole.INSTANCE.workerSelector().getClass().getSimpleName()); + } + + @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()); + } + + @Test + public void testOnWork() throws Exception { + ClusterWorkerContext clusterWorkerContext = new ClusterWorkerContext(null); + LocalWorkerContext localWorkerContext = new LocalWorkerContext(); + GlobalTraceSearchWithGlobalId globalTraceSearchWithGlobalId = new GlobalTraceSearchWithGlobalId(GlobalTraceSearchWithGlobalId.WorkerRole.INSTANCE, clusterWorkerContext, localWorkerContext); + + GetResponse getResponse = mock(GetResponse.class); + when(getResponseFromEs.get(GlobalTraceIndex.Index, GlobalTraceIndex.Type_Record, "Trace.1491277147443.-1562443425.70539.65.2")).thenReturn(getResponse); + when(getResponse.getSourceAsString()).thenReturn(global_Str); + + GetResponse segResponse = mock(GetResponse.class); + when(getResponseFromEs.get(SegmentIndex.Index, SegmentIndex.Type_Record, "Segment.1491277162066.18986177.70531.27.1")).thenReturn(segResponse); + when(segResponse.getSourceAsString()).thenReturn(seg_str); + + JsonObject response = new JsonObject(); + globalTraceSearchWithGlobalId.onWork("Trace.1491277147443.-1562443425.70539.65.2", response); + } +} 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 new file mode 100644 index 0000000000000000000000000000000000000000..8db811aceaeeb64b552078064f6e34445346244d --- /dev/null +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/globaltrace/persistence/GlobalTraceSearchWithGlobalIdUseDB.java @@ -0,0 +1,35 @@ +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; + +/** + * @author pengys5 + */ +public class GlobalTraceSearchWithGlobalIdUseDB { + + public static void main(String[] args) throws Exception { + EsClient.INSTANCE.boot(); + + ClusterWorkerContext clusterWorkerContext = new ClusterWorkerContext(null); + LocalWorkerContext localWorkerContext = new LocalWorkerContext(); + GlobalTraceSearchWithGlobalId globalTraceSearchWithGlobalId = + new GlobalTraceSearchWithGlobalId(GlobalTraceSearchWithGlobalId.WorkerRole.INSTANCE, clusterWorkerContext, localWorkerContext); + + JsonObject response = new JsonObject(); + 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/mock/MergeDataAnswer.java b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/mock/MergeDataAnswer.java new file mode 100644 index 0000000000000000000000000000000000000000..20f72e6430483a4d971ba14463b04bab15884c08 --- /dev/null +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/mock/MergeDataAnswer.java @@ -0,0 +1,27 @@ +package com.a.eye.skywalking.collector.worker.mock; + +import com.a.eye.skywalking.collector.worker.storage.MergeData; +import org.mockito.invocation.InvocationOnMock; +import org.mockito.stubbing.Answer; + +import java.util.HashMap; +import java.util.Map; + +/** + * @author pengys5 + */ +public class MergeDataAnswer implements Answer { + + public Map mergeObj = new HashMap<>(); + + @Override + public Object answer(InvocationOnMock invocation) throws Throwable { + MergeData mergeData = (MergeData) invocation.getArguments()[0]; + + for (Map.Entry entry : mergeData.toMap().entrySet()) { + System.out.printf("key: %s, value: %s \n", entry.getKey(), entry.getValue()); + mergeObj.put(entry.getKey(), entry.getValue()); + } + return null; + } +} 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 new file mode 100644 index 0000000000000000000000000000000000000000..98450a25751965f2b7abff6d78995474e5f6b838 --- /dev/null +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/mock/MetricDataAnswer.java @@ -0,0 +1,25 @@ +package com.a.eye.skywalking.collector.worker.mock; + +import com.a.eye.skywalking.collector.worker.storage.MetricData; +import org.mockito.invocation.InvocationOnMock; +import org.mockito.stubbing.Answer; + +import java.util.HashMap; +import java.util.Map; + +/** + * @author pengys5 + */ +public class MetricDataAnswer implements Answer { + + public Map metricObj = new HashMap<>(); + + @Override + public Object answer(InvocationOnMock invocation) throws Throwable { + MetricData metricData = (MetricData) invocation.getArguments()[0]; + for (Map.Entry entry : metricData.toMap().entrySet()) { + metricObj.put(entry.getKey(), entry.getValue()); + } + return null; + } +} diff --git a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/mock/MockEsBulkClient.java b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/mock/MockEsBulkClient.java index 1221f6624f00b5f5e55fe6d32b118246e8758292..ba16af96c105e73d5414298b5a32fbf959428397 100644 --- a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/mock/MockEsBulkClient.java +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/mock/MockEsBulkClient.java @@ -7,6 +7,8 @@ import org.elasticsearch.action.bulk.BulkResponse; import org.elasticsearch.action.index.IndexRequestBuilder; import org.elasticsearch.client.Client; import org.mockito.Mockito; +import org.powermock.api.mockito.PowerMockito; +import org.powermock.reflect.Whitebox; import static org.powermock.api.mockito.PowerMockito.*; @@ -18,9 +20,10 @@ public class MockEsBulkClient { public IndexRequestBuilder indexRequestBuilder; public void createMock() { - Client client = mock(Client.class); - mockStatic(EsClient.class); - when(EsClient.getClient()).thenReturn(client); + Client client = PowerMockito.mock(Client.class); + EsClient esClient = PowerMockito.mock(EsClient.class); + Whitebox.setInternalState(EsClient.class, "INSTANCE", esClient); + when(esClient.getClient()).thenReturn(client); BulkRequestBuilder bulkRequestBuilder = mock(BulkRequestBuilder.class); when(client.prepareBulk()).thenReturn(bulkRequestBuilder); diff --git a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/mock/MockEsClient.java b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/mock/MockEsClient.java new file mode 100644 index 0000000000000000000000000000000000000000..d3bfd420c956be3c65e165518cb161fde0b8a502 --- /dev/null +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/mock/MockEsClient.java @@ -0,0 +1,22 @@ +package com.a.eye.skywalking.collector.worker.mock; + +import com.a.eye.skywalking.collector.worker.storage.EsClient; +import org.elasticsearch.client.Client; +import org.powermock.api.mockito.PowerMockito; +import org.powermock.reflect.Whitebox; + +import static org.powermock.api.mockito.PowerMockito.when; + +/** + * @author pengys5 + */ +public class MockEsClient { + + public Client mock() { + Client client = PowerMockito.mock(Client.class); + EsClient esClient = PowerMockito.mock(EsClient.class); + Whitebox.setInternalState(EsClient.class, "INSTANCE", esClient); + when(esClient.getClient()).thenReturn(client); + return client; + } +} 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 new file mode 100644 index 0000000000000000000000000000000000000000..38e6e0222386e8873c6b7e865d561788ce423cbf --- /dev/null +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/mock/MockGetResponse.java @@ -0,0 +1,27 @@ +package com.a.eye.skywalking.collector.worker.mock; + +import org.elasticsearch.action.get.GetRequestBuilder; +import org.elasticsearch.action.get.GetResponse; +import org.elasticsearch.client.Client; + +import static org.mockito.Mockito.*; + +/** + * @author pengys5 + */ +public class MockGetResponse { + + public GetResponse mockito() { + 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(anyString(), anyString(), anyString())).thenReturn(builder); + + + return getResponse; + } +} 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 new file mode 100644 index 0000000000000000000000000000000000000000..580f3479130b67034d665674cc4e3157adbce0ff --- /dev/null +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/node/NodeCompIndexTestCase.java @@ -0,0 +1,26 @@ +package com.a.eye.skywalking.collector.worker.node; + +import com.a.eye.skywalking.collector.worker.globaltrace.GlobalTraceIndex; +import org.junit.Assert; +import org.junit.Test; + +import java.io.IOException; + +/** + * @author pengys5 + */ +public class NodeCompIndexTestCase { + + @Test + public void test() { + NodeCompIndex index = new NodeCompIndex(); + Assert.assertEquals("node_comp_idx", index.index()); + Assert.assertEquals(false, index.isRecord()); + } + + @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()); + } +} 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 new file mode 100644 index 0000000000000000000000000000000000000000..b69d379a12d180c0aa2f958a39b6ecdc3f10df83 --- /dev/null +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/node/NodeMappingIndexTestCase.java @@ -0,0 +1,25 @@ +package com.a.eye.skywalking.collector.worker.node; + +import org.junit.Assert; +import org.junit.Test; + +import java.io.IOException; + +/** + * @author pengys5 + */ +public class NodeMappingIndexTestCase { + + @Test + public void test() { + NodeMappingIndex index = new NodeMappingIndex(); + Assert.assertEquals("node_mapping_idx", index.index()); + Assert.assertEquals(false, index.isRecord()); + } + + @Test + public void testBuilder() throws IOException { + 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()); + } +} 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 70d5bfe3c354eb64bbb7392b2b8d0f88e86c7e6b..2e2884aff5c6acb55f0efcc008b674094c085f70 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 @@ -2,12 +2,14 @@ package com.a.eye.skywalking.collector.worker.node.analysis; 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.RollingSelector; import com.a.eye.skywalking.collector.queue.EndOfBatchCommand; import com.a.eye.skywalking.collector.worker.WorkerConfig; import com.a.eye.skywalking.collector.worker.mock.RecordDataAnswer; import com.a.eye.skywalking.collector.worker.node.persistence.NodeMappingDayAgg; +import com.a.eye.skywalking.collector.worker.noderef.analysis.NodeRefResSumDayAnalysis; 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.RecordData; @@ -25,6 +27,7 @@ import org.powermock.modules.junit4.PowerMockRunner; import java.util.List; import static org.mockito.Mockito.doAnswer; +import static org.mockito.Mockito.doThrow; import static org.mockito.Mockito.mock; import static org.powermock.api.mockito.PowerMockito.when; @@ -39,10 +42,11 @@ public class NodeMappingDayAnalysisTestCase { private NodeMappingDayAnalysis nodeMappingDayAnalysis; private SegmentMock segmentMock = new SegmentMock(); private RecordDataAnswer recordDataAnswer; + private ClusterWorkerContext clusterWorkerContext; @Before public void init() throws Exception { - ClusterWorkerContext clusterWorkerContext = PowerMockito.mock(ClusterWorkerContext.class); + clusterWorkerContext = PowerMockito.mock(ClusterWorkerContext.class); WorkerRefs workerRefs = mock(WorkerRefs.class); recordDataAnswer = new RecordDataAnswer(); doAnswer(recordDataAnswer).when(workerRefs).tell(Mockito.any(RecordData.class)); @@ -69,6 +73,12 @@ public class NodeMappingDayAnalysisTestCase { Assert.assertEquals(testSize, NodeMappingDayAnalysis.Factory.INSTANCE.queueSize()); } + @Test(expected = Exception.class) + public void testPreStart() throws ProviderNotFoundException { + when(clusterWorkerContext.findProvider(NodeRefResSumDayAnalysis.Role.INSTANCE)).thenThrow(new Exception()); + nodeMappingDayAnalysis.preStart(); + } + @Test public void testAnalyse() throws Exception { List cacheServiceSegment = segmentMock.mockCacheServiceSegmentSegmentTimeSlice(); 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 new file mode 100644 index 0000000000000000000000000000000000000000..3302ffc01b72ec8b4529338284340c56ff8e7de3 --- /dev/null +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/node/persistence/NodeCompAggTestCase.java @@ -0,0 +1,88 @@ +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.ProviderNotFoundException; +import com.a.eye.skywalking.collector.actor.WorkerRefs; +import com.a.eye.skywalking.collector.actor.selector.HashCodeSelector; +import com.a.eye.skywalking.collector.worker.Const; +import com.a.eye.skywalking.collector.worker.WorkerConfig; +import com.a.eye.skywalking.collector.worker.mock.RecordDataAnswer; +import com.a.eye.skywalking.collector.worker.storage.RecordData; +import com.a.eye.skywalking.collector.worker.tools.RecordDataAggTools; +import com.a.eye.skywalking.collector.worker.tools.RecordDataTool; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.ArgumentCaptor; +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.mockito.Mockito.*; + +/** + * @author pengys5 + */ +@RunWith(PowerMockRunner.class) +@PrepareForTest({LocalWorkerContext.class}) +@PowerMockIgnore({"javax.management.*"}) +public class NodeCompAggTestCase { + + private NodeCompAgg agg; + private RecordDataAnswer recordDataAnswer; + private ClusterWorkerContext clusterWorkerContext; + private LocalWorkerContext localWorkerContext; + + @Before + public void init() throws Exception { + clusterWorkerContext = PowerMockito.mock(ClusterWorkerContext.class); + + localWorkerContext = PowerMockito.mock(LocalWorkerContext.class); + WorkerRefs workerRefs = mock(WorkerRefs.class); + + recordDataAnswer = new RecordDataAnswer(); + doAnswer(recordDataAnswer).when(workerRefs).tell(Mockito.any(RecordData.class)); + + when(localWorkerContext.lookup(NodeCompSave.Role.INSTANCE)).thenReturn(workerRefs); + agg = new NodeCompAgg(NodeCompAgg.Role.INSTANCE, clusterWorkerContext, localWorkerContext); + } + + @Test + public void testRole() { + Assert.assertEquals(NodeCompAgg.class.getSimpleName(), NodeCompAgg.Role.INSTANCE.roleName()); + Assert.assertEquals(HashCodeSelector.class.getSimpleName(), NodeCompAgg.Role.INSTANCE.workerSelector().getClass().getSimpleName()); + } + + @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()); + + int testSize = 10; + WorkerConfig.WorkerNum.Node.NodeCompAgg.Value = testSize; + Assert.assertEquals(testSize, NodeCompAgg.Factory.INSTANCE.workerNum()); + } + + @Test + public void testPreStart() throws ProviderNotFoundException { + when(clusterWorkerContext.findProvider(NodeCompSave.Role.INSTANCE)).thenReturn(NodeCompSave.Factory.INSTANCE); + + 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 new file mode 100644 index 0000000000000000000000000000000000000000..3319e25b492bb2d2a283f803815bd291078b52a1 --- /dev/null +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/node/persistence/NodeCompSaveTestCase.java @@ -0,0 +1,52 @@ +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.WorkerConfig; +import com.a.eye.skywalking.collector.worker.node.NodeCompIndex; +import com.a.eye.skywalking.collector.worker.node.NodeMappingIndex; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; + +/** + * @author pengys5 + */ +public class NodeCompSaveTestCase { + + private NodeCompSave save; + + @Before + public void init() { + ClusterWorkerContext cluster = new ClusterWorkerContext(null); + LocalWorkerContext local = new LocalWorkerContext(); + save = new NodeCompSave(NodeCompSave.Role.INSTANCE, cluster, local); + } + + @Test + public void testEsIndex() { + Assert.assertEquals(NodeCompIndex.Index, save.esIndex()); + } + + @Test + public void testEsType() { + Assert.assertEquals(NodeCompIndex.Type_Record, save.esType()); + } + + @Test + public void testRole() { + Assert.assertEquals(NodeCompSave.class.getSimpleName(), NodeCompSave.Role.INSTANCE.roleName()); + Assert.assertEquals(HashCodeSelector.class.getSimpleName(), NodeCompSave.Role.INSTANCE.workerSelector().getClass().getSimpleName()); + } + + @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()); + } +} 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 c34c841ee653cf78ddafc82c6db4bd1e6915a6ee..bdb68554488fec44c806cadc806eb7b82313f416 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 @@ -12,7 +12,7 @@ import com.google.gson.JsonObject; public class NodeCompWithTimeSliceUseDB { public static void main(String[] args) throws Exception { - EsClient.boot(); + EsClient.INSTANCE.boot(); ClusterWorkerContext clusterWorkerContext = new ClusterWorkerContext(null); LocalWorkerContext localWorkerContext = new LocalWorkerContext(); 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 092f437659311039b64cc03f5d4d285ae86c6193..47b3b26bbf8bd05c24b43f42fda208309da81e8e 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 @@ -2,26 +2,24 @@ 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.ProviderNotFoundException; import com.a.eye.skywalking.collector.actor.WorkerRefs; import com.a.eye.skywalking.collector.actor.selector.HashCodeSelector; -import com.a.eye.skywalking.collector.worker.Const; import com.a.eye.skywalking.collector.worker.WorkerConfig; import com.a.eye.skywalking.collector.worker.mock.RecordDataAnswer; import com.a.eye.skywalking.collector.worker.storage.RecordData; -import com.a.eye.skywalking.collector.worker.tools.RecordDataTool; -import com.google.gson.JsonObject; +import com.a.eye.skywalking.collector.worker.tools.RecordDataAggTools; import org.junit.Assert; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; +import org.mockito.ArgumentCaptor; 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 java.util.List; - import static org.mockito.Mockito.*; /** @@ -32,12 +30,13 @@ import static org.mockito.Mockito.*; @PowerMockIgnore({"javax.management.*"}) public class NodeMappingDayAggTestCase { - private NodeMappingDayAgg nodeMappingDayAgg; + private NodeMappingDayAgg agg; private RecordDataAnswer recordDataAnswer; + private ClusterWorkerContext clusterWorkerContext; @Before public void init() throws Exception { - ClusterWorkerContext clusterWorkerContext = PowerMockito.mock(ClusterWorkerContext.class); + clusterWorkerContext = PowerMockito.mock(ClusterWorkerContext.class); LocalWorkerContext localWorkerContext = PowerMockito.mock(LocalWorkerContext.class); WorkerRefs workerRefs = mock(WorkerRefs.class); @@ -46,7 +45,7 @@ public class NodeMappingDayAggTestCase { doAnswer(recordDataAnswer).when(workerRefs).tell(Mockito.any(RecordData.class)); when(localWorkerContext.lookup(NodeMappingDaySave.Role.INSTANCE)).thenReturn(workerRefs); - nodeMappingDayAgg = new NodeMappingDayAgg(NodeMappingDayAgg.Role.INSTANCE, clusterWorkerContext, localWorkerContext); + agg = new NodeMappingDayAgg(NodeMappingDayAgg.Role.INSTANCE, clusterWorkerContext, localWorkerContext); } @Test @@ -66,23 +65,21 @@ public class NodeMappingDayAggTestCase { } @Test - public void testOnWork() throws Exception { - String id = "2017" + Const.ID_SPLIT + "TestNodeMappingDayAgg"; - JsonObject record = new JsonObject(); - record.addProperty("Column", "TestData"); + public void testPreStart() throws ProviderNotFoundException { + when(clusterWorkerContext.findProvider(NodeMappingDaySave.Role.INSTANCE)).thenReturn(NodeMappingDaySave.Factory.INSTANCE); - RecordData recordData = new RecordData(id); - recordData.setRecord(record); - nodeMappingDayAgg.onWork(recordData); + ArgumentCaptor argumentCaptor = ArgumentCaptor.forClass(NodeMappingDaySave.Role.class); + agg.preStart(); + verify(clusterWorkerContext).findProvider(argumentCaptor.capture()); + } - List recordDataList = recordDataAnswer.recordObj.getRecordData(); - RecordData data = RecordDataTool.INSTANCE.getRecord(recordDataList, id); - Assert.assertEquals("TestNodeMappingDayAgg", data.getRecord().get("aggId").getAsString()); - Assert.assertEquals("TestData", data.getRecord().get("Column").getAsString()); + @Test + public void testOnWork() throws Exception { + RecordDataAggTools.INSTANCE.testOnWork(agg, recordDataAnswer); } @Test(expected = IllegalArgumentException.class) public void testOnWorkError() throws Exception { - nodeMappingDayAgg.onWork(new Object()); + 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 new file mode 100644 index 0000000000000000000000000000000000000000..84cd013b4a84de7825ff5206d343ee9fc82798a0 --- /dev/null +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/node/persistence/NodeMappingDaySaveTestCase.java @@ -0,0 +1,51 @@ +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.WorkerConfig; +import com.a.eye.skywalking.collector.worker.node.NodeMappingIndex; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; + +/** + * @author pengys5 + */ +public class NodeMappingDaySaveTestCase { + + private NodeMappingDaySave save; + + @Before + public void init() { + ClusterWorkerContext cluster = new ClusterWorkerContext(null); + LocalWorkerContext local = new LocalWorkerContext(); + save = new NodeMappingDaySave(NodeMappingDaySave.Role.INSTANCE, cluster, local); + } + + @Test + public void testEsIndex() { + Assert.assertEquals(NodeMappingIndex.Index, save.esIndex()); + } + + @Test + public void testEsType() { + Assert.assertEquals(NodeMappingIndex.Type_Day, save.esType()); + } + + @Test + public void testRole() { + Assert.assertEquals(NodeMappingDaySave.class.getSimpleName(), NodeMappingDaySave.Role.INSTANCE.roleName()); + Assert.assertEquals(HashCodeSelector.class.getSimpleName(), NodeMappingDaySave.Role.INSTANCE.workerSelector().getClass().getSimpleName()); + } + + @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()); + } +} 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 c12e17ca2f839b01c01fdc565db4b47bdbcbc859..8a89af8ecf2257598b7c9cfd1d3b02ff9e51fda2 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 @@ -2,26 +2,24 @@ 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.ProviderNotFoundException; import com.a.eye.skywalking.collector.actor.WorkerRefs; import com.a.eye.skywalking.collector.actor.selector.HashCodeSelector; -import com.a.eye.skywalking.collector.worker.Const; import com.a.eye.skywalking.collector.worker.WorkerConfig; import com.a.eye.skywalking.collector.worker.mock.RecordDataAnswer; import com.a.eye.skywalking.collector.worker.storage.RecordData; -import com.a.eye.skywalking.collector.worker.tools.RecordDataTool; -import com.google.gson.JsonObject; +import com.a.eye.skywalking.collector.worker.tools.RecordDataAggTools; import org.junit.Assert; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; +import org.mockito.ArgumentCaptor; 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 java.util.List; - import static org.mockito.Mockito.*; /** @@ -32,12 +30,13 @@ import static org.mockito.Mockito.*; @PowerMockIgnore({"javax.management.*"}) public class NodeMappingHourAggTestCase { - private NodeMappingHourAgg nodeMappingHourAgg; + private NodeMappingHourAgg agg; private RecordDataAnswer recordDataAnswer; + private ClusterWorkerContext clusterWorkerContext; @Before public void init() throws Exception { - ClusterWorkerContext clusterWorkerContext = PowerMockito.mock(ClusterWorkerContext.class); + clusterWorkerContext = PowerMockito.mock(ClusterWorkerContext.class); LocalWorkerContext localWorkerContext = PowerMockito.mock(LocalWorkerContext.class); WorkerRefs workerRefs = mock(WorkerRefs.class); @@ -46,7 +45,7 @@ public class NodeMappingHourAggTestCase { doAnswer(recordDataAnswer).when(workerRefs).tell(Mockito.any(RecordData.class)); when(localWorkerContext.lookup(NodeMappingHourSave.Role.INSTANCE)).thenReturn(workerRefs); - nodeMappingHourAgg = new NodeMappingHourAgg(NodeMappingHourAgg.Role.INSTANCE, clusterWorkerContext, localWorkerContext); + agg = new NodeMappingHourAgg(NodeMappingHourAgg.Role.INSTANCE, clusterWorkerContext, localWorkerContext); } @Test @@ -66,23 +65,21 @@ public class NodeMappingHourAggTestCase { } @Test - public void testOnWork() throws Exception { - String id = "2017" + Const.ID_SPLIT + "TestNodeMappingHourAgg"; - JsonObject record = new JsonObject(); - record.addProperty("Column", "TestData"); + public void testPreStart() throws ProviderNotFoundException { + when(clusterWorkerContext.findProvider(NodeMappingHourSave.Role.INSTANCE)).thenReturn(NodeMappingHourSave.Factory.INSTANCE); - RecordData recordData = new RecordData(id); - recordData.setRecord(record); - nodeMappingHourAgg.onWork(recordData); + ArgumentCaptor argumentCaptor = ArgumentCaptor.forClass(NodeMappingHourSave.Role.class); + agg.preStart(); + verify(clusterWorkerContext).findProvider(argumentCaptor.capture()); + } - List recordDataList = recordDataAnswer.recordObj.getRecordData(); - RecordData data = RecordDataTool.INSTANCE.getRecord(recordDataList, id); - Assert.assertEquals("TestNodeMappingHourAgg", data.getRecord().get("aggId").getAsString()); - Assert.assertEquals("TestData", data.getRecord().get("Column").getAsString()); + @Test + public void testOnWork() throws Exception { + RecordDataAggTools.INSTANCE.testOnWork(agg, recordDataAnswer); } @Test(expected = IllegalArgumentException.class) public void testOnWorkError() throws Exception { - nodeMappingHourAgg.onWork(new Object()); + 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 new file mode 100644 index 0000000000000000000000000000000000000000..bfb1307e016e35cb47d9ed0045507843c17eeec9 --- /dev/null +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/node/persistence/NodeMappingHourSaveTestCase.java @@ -0,0 +1,51 @@ +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.WorkerConfig; +import com.a.eye.skywalking.collector.worker.node.NodeMappingIndex; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; + +/** + * @author pengys5 + */ +public class NodeMappingHourSaveTestCase { + + private NodeMappingHourSave save; + + @Before + public void init() { + ClusterWorkerContext cluster = new ClusterWorkerContext(null); + LocalWorkerContext local = new LocalWorkerContext(); + save = new NodeMappingHourSave(NodeMappingHourSave.Role.INSTANCE, cluster, local); + } + + @Test + public void testEsIndex() { + Assert.assertEquals(NodeMappingIndex.Index, save.esIndex()); + } + + @Test + public void testEsType() { + Assert.assertEquals(NodeMappingIndex.Type_Hour, save.esType()); + } + + @Test + public void testRole() { + Assert.assertEquals(NodeMappingHourSave.class.getSimpleName(), NodeMappingHourSave.Role.INSTANCE.roleName()); + Assert.assertEquals(HashCodeSelector.class.getSimpleName(), NodeMappingHourSave.Role.INSTANCE.workerSelector().getClass().getSimpleName()); + } + + @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()); + } +} 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 f48a5f67a30d92c125ea0f9b59f0e303da381ee0..fefbc5c38d4276babeab7e3a7aa71510d309376f 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 @@ -2,26 +2,24 @@ 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.ProviderNotFoundException; import com.a.eye.skywalking.collector.actor.WorkerRefs; import com.a.eye.skywalking.collector.actor.selector.HashCodeSelector; -import com.a.eye.skywalking.collector.worker.Const; import com.a.eye.skywalking.collector.worker.WorkerConfig; import com.a.eye.skywalking.collector.worker.mock.RecordDataAnswer; import com.a.eye.skywalking.collector.worker.storage.RecordData; -import com.a.eye.skywalking.collector.worker.tools.RecordDataTool; -import com.google.gson.JsonObject; +import com.a.eye.skywalking.collector.worker.tools.RecordDataAggTools; import org.junit.Assert; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; +import org.mockito.ArgumentCaptor; 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 java.util.List; - import static org.mockito.Mockito.*; /** @@ -32,12 +30,13 @@ import static org.mockito.Mockito.*; @PowerMockIgnore({"javax.management.*"}) public class NodeMappingMinuteAggTestCase { - private NodeMappingMinuteAgg nodeMappingMinuteAgg; + private NodeMappingMinuteAgg agg; private RecordDataAnswer recordDataAnswer; + private ClusterWorkerContext clusterWorkerContext; @Before public void init() throws Exception { - ClusterWorkerContext clusterWorkerContext = PowerMockito.mock(ClusterWorkerContext.class); + clusterWorkerContext = PowerMockito.mock(ClusterWorkerContext.class); LocalWorkerContext localWorkerContext = PowerMockito.mock(LocalWorkerContext.class); WorkerRefs workerRefs = mock(WorkerRefs.class); @@ -46,7 +45,7 @@ public class NodeMappingMinuteAggTestCase { doAnswer(recordDataAnswer).when(workerRefs).tell(Mockito.any(RecordData.class)); when(localWorkerContext.lookup(NodeMappingMinuteSave.Role.INSTANCE)).thenReturn(workerRefs); - nodeMappingMinuteAgg = new NodeMappingMinuteAgg(NodeMappingMinuteAgg.Role.INSTANCE, clusterWorkerContext, localWorkerContext); + agg = new NodeMappingMinuteAgg(NodeMappingMinuteAgg.Role.INSTANCE, clusterWorkerContext, localWorkerContext); } @Test @@ -66,23 +65,21 @@ public class NodeMappingMinuteAggTestCase { } @Test - public void testOnWork() throws Exception { - String id = "2017" + Const.ID_SPLIT + "TestNodeMappingMinuteAgg"; - JsonObject record = new JsonObject(); - record.addProperty("Column", "TestData"); + public void testPreStart() throws ProviderNotFoundException { + when(clusterWorkerContext.findProvider(NodeMappingMinuteSave.Role.INSTANCE)).thenReturn(NodeMappingMinuteSave.Factory.INSTANCE); - RecordData recordData = new RecordData(id); - recordData.setRecord(record); - nodeMappingMinuteAgg.onWork(recordData); + ArgumentCaptor argumentCaptor = ArgumentCaptor.forClass(NodeMappingMinuteSave.Role.class); + agg.preStart(); + verify(clusterWorkerContext).findProvider(argumentCaptor.capture()); + } - List recordDataList = recordDataAnswer.recordObj.getRecordData(); - RecordData data = RecordDataTool.INSTANCE.getRecord(recordDataList, id); - Assert.assertEquals("TestNodeMappingMinuteAgg", data.getRecord().get("aggId").getAsString()); - Assert.assertEquals("TestData", data.getRecord().get("Column").getAsString()); + @Test + public void testOnWork() throws Exception { + RecordDataAggTools.INSTANCE.testOnWork(agg, recordDataAnswer); } @Test(expected = IllegalArgumentException.class) public void testOnWorkError() throws Exception { - nodeMappingMinuteAgg.onWork(new Object()); + 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 new file mode 100644 index 0000000000000000000000000000000000000000..2be7106bacffce4bc87e252c19b87673c21f0ce4 --- /dev/null +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/node/persistence/NodeMappingMinuteSaveTestCase.java @@ -0,0 +1,51 @@ +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.WorkerConfig; +import com.a.eye.skywalking.collector.worker.node.NodeMappingIndex; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; + +/** + * @author pengys5 + */ +public class NodeMappingMinuteSaveTestCase { + + private NodeMappingMinuteSave save; + + @Before + public void init() { + ClusterWorkerContext cluster = new ClusterWorkerContext(null); + LocalWorkerContext local = new LocalWorkerContext(); + save = new NodeMappingMinuteSave(NodeMappingMinuteSave.Role.INSTANCE, cluster, local); + } + + @Test + public void testEsIndex() { + Assert.assertEquals(NodeMappingIndex.Index, save.esIndex()); + } + + @Test + public void testEsType() { + Assert.assertEquals(NodeMappingIndex.Type_Minute, save.esType()); + } + + @Test + public void testRole() { + Assert.assertEquals(NodeMappingMinuteSave.class.getSimpleName(), NodeMappingMinuteSave.Role.INSTANCE.roleName()); + Assert.assertEquals(HashCodeSelector.class.getSimpleName(), NodeMappingMinuteSave.Role.INSTANCE.workerSelector().getClass().getSimpleName()); + } + + @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()); + } +} 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 974bfac7d742e90dbc9fd21c524804634bfb80c5..4afd97e046636966efebb3f3e57f07a45c0f2e86 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 @@ -13,7 +13,7 @@ import com.google.gson.JsonObject; public class NodeMappingSearchWithTimeSliceUseDB { public static void main(String[] args) throws Exception { - EsClient.boot(); + EsClient.INSTANCE.boot(); ClusterWorkerContext clusterWorkerContext = new ClusterWorkerContext(null); LocalWorkerContext localWorkerContext = new LocalWorkerContext(); 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 new file mode 100644 index 0000000000000000000000000000000000000000..3e7c2f710072cd1e92d04a549bd31f89593d5839 --- /dev/null +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/noderef/NodeRefIndexTestCase.java @@ -0,0 +1,26 @@ +package com.a.eye.skywalking.collector.worker.noderef; + +import com.a.eye.skywalking.collector.worker.globaltrace.GlobalTraceIndex; +import org.junit.Assert; +import org.junit.Test; + +import java.io.IOException; + +/** + * @author pengys5 + */ +public class NodeRefIndexTestCase { + + @Test + public void test() { + NodeRefIndex index = new NodeRefIndex(); + Assert.assertEquals("node_ref_idx", index.index()); + Assert.assertEquals(false, index.isRecord()); + } + + @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()); + } +} 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 new file mode 100644 index 0000000000000000000000000000000000000000..5042572ca52b2fdfec6982b5b94510f3a45c2e75 --- /dev/null +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/noderef/NodeRefResSumIndexTestCase.java @@ -0,0 +1,25 @@ +package com.a.eye.skywalking.collector.worker.noderef; + +import org.junit.Assert; +import org.junit.Test; + +import java.io.IOException; + +/** + * @author pengys5 + */ +public class NodeRefResSumIndexTestCase { + + @Test + public void test() { + NodeRefResSumIndex index = new NodeRefResSumIndex(); + Assert.assertEquals("node_ref_res_sum_idx", index.index()); + Assert.assertEquals(false, index.isRecord()); + } + + @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()); + } +} 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 new file mode 100644 index 0000000000000000000000000000000000000000..0e8fb2859894ca0731e778df234c56c05ed72031 --- /dev/null +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/noderef/persistence/NodeRefDayAggTestCase.java @@ -0,0 +1,86 @@ +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.ProviderNotFoundException; +import com.a.eye.skywalking.collector.actor.WorkerRefs; +import com.a.eye.skywalking.collector.actor.selector.HashCodeSelector; +import com.a.eye.skywalking.collector.worker.WorkerConfig; +import com.a.eye.skywalking.collector.worker.mock.RecordDataAnswer; +import com.a.eye.skywalking.collector.worker.storage.RecordData; +import com.a.eye.skywalking.collector.worker.tools.RecordDataAggTools; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.ArgumentCaptor; +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.mockito.Mockito.*; + +/** + * @author pengys5 + */ +@RunWith(PowerMockRunner.class) +@PrepareForTest({LocalWorkerContext.class}) +@PowerMockIgnore({"javax.management.*"}) +public class NodeRefDayAggTestCase { + + private NodeRefDayAgg agg; + private RecordDataAnswer recordDataAnswer; + private ClusterWorkerContext clusterWorkerContext; + private LocalWorkerContext localWorkerContext; + + @Before + public void init() throws Exception { + clusterWorkerContext = PowerMockito.mock(ClusterWorkerContext.class); + + localWorkerContext = PowerMockito.mock(LocalWorkerContext.class); + WorkerRefs workerRefs = mock(WorkerRefs.class); + + recordDataAnswer = new RecordDataAnswer(); + doAnswer(recordDataAnswer).when(workerRefs).tell(Mockito.any(RecordData.class)); + + when(localWorkerContext.lookup(NodeRefDaySave.Role.INSTANCE)).thenReturn(workerRefs); + agg = new NodeRefDayAgg(NodeRefDayAgg.Role.INSTANCE, clusterWorkerContext, localWorkerContext); + } + + @Test + public void testRole() { + Assert.assertEquals(NodeRefDayAgg.class.getSimpleName(), NodeRefDayAgg.Role.INSTANCE.roleName()); + Assert.assertEquals(HashCodeSelector.class.getSimpleName(), NodeRefDayAgg.Role.INSTANCE.workerSelector().getClass().getSimpleName()); + } + + @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()); + + int testSize = 10; + WorkerConfig.WorkerNum.NodeRef.NodeRefDayAgg.Value = testSize; + Assert.assertEquals(testSize, NodeRefDayAgg.Factory.INSTANCE.workerNum()); + } + + @Test + public void testPreStart() throws ProviderNotFoundException { + when(clusterWorkerContext.findProvider(NodeRefDaySave.Role.INSTANCE)).thenReturn(NodeRefDaySave.Factory.INSTANCE); + + 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 new file mode 100644 index 0000000000000000000000000000000000000000..df08b55012322801b6ae577ab739708515efa43b --- /dev/null +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/noderef/persistence/NodeRefDaySaveTestCase.java @@ -0,0 +1,51 @@ +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.WorkerConfig; +import com.a.eye.skywalking.collector.worker.noderef.NodeRefIndex; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; + +/** + * @author pengys5 + */ +public class NodeRefDaySaveTestCase { + + private NodeRefDaySave save; + + @Before + public void init() { + ClusterWorkerContext cluster = new ClusterWorkerContext(null); + LocalWorkerContext local = new LocalWorkerContext(); + save = new NodeRefDaySave(NodeRefDaySave.Role.INSTANCE, cluster, local); + } + + @Test + public void testEsIndex() { + Assert.assertEquals(NodeRefIndex.Index, save.esIndex()); + } + + @Test + public void testEsType() { + Assert.assertEquals(NodeRefIndex.Type_Day, save.esType()); + } + + @Test + public void testRole() { + Assert.assertEquals(NodeRefDaySave.class.getSimpleName(), NodeRefDaySave.Role.INSTANCE.roleName()); + Assert.assertEquals(HashCodeSelector.class.getSimpleName(), NodeRefDaySave.Role.INSTANCE.workerSelector().getClass().getSimpleName()); + } + + @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()); + } +} 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 new file mode 100644 index 0000000000000000000000000000000000000000..f012d2f8379b7c271e27c4293beab7ba956abf4e --- /dev/null +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/noderef/persistence/NodeRefHourAggTestCase.java @@ -0,0 +1,86 @@ +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.ProviderNotFoundException; +import com.a.eye.skywalking.collector.actor.WorkerRefs; +import com.a.eye.skywalking.collector.actor.selector.HashCodeSelector; +import com.a.eye.skywalking.collector.worker.WorkerConfig; +import com.a.eye.skywalking.collector.worker.mock.RecordDataAnswer; +import com.a.eye.skywalking.collector.worker.storage.RecordData; +import com.a.eye.skywalking.collector.worker.tools.RecordDataAggTools; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.ArgumentCaptor; +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.mockito.Mockito.*; + +/** + * @author pengys5 + */ +@RunWith(PowerMockRunner.class) +@PrepareForTest({LocalWorkerContext.class}) +@PowerMockIgnore({"javax.management.*"}) +public class NodeRefHourAggTestCase { + + private NodeRefHourAgg agg; + private RecordDataAnswer recordDataAnswer; + private ClusterWorkerContext clusterWorkerContext; + private LocalWorkerContext localWorkerContext; + + @Before + public void init() throws Exception { + clusterWorkerContext = PowerMockito.mock(ClusterWorkerContext.class); + + localWorkerContext = PowerMockito.mock(LocalWorkerContext.class); + WorkerRefs workerRefs = mock(WorkerRefs.class); + + recordDataAnswer = new RecordDataAnswer(); + doAnswer(recordDataAnswer).when(workerRefs).tell(Mockito.any(RecordData.class)); + + when(localWorkerContext.lookup(NodeRefHourSave.Role.INSTANCE)).thenReturn(workerRefs); + agg = new NodeRefHourAgg(NodeRefHourAgg.Role.INSTANCE, clusterWorkerContext, localWorkerContext); + } + + @Test + public void testRole() { + Assert.assertEquals(NodeRefHourAgg.class.getSimpleName(), NodeRefHourAgg.Role.INSTANCE.roleName()); + Assert.assertEquals(HashCodeSelector.class.getSimpleName(), NodeRefHourAgg.Role.INSTANCE.workerSelector().getClass().getSimpleName()); + } + + @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()); + + int testSize = 10; + WorkerConfig.WorkerNum.NodeRef.NodeRefHourAgg.Value = testSize; + Assert.assertEquals(testSize, NodeRefHourAgg.Factory.INSTANCE.workerNum()); + } + + @Test + public void testPreStart() throws ProviderNotFoundException { + when(clusterWorkerContext.findProvider(NodeRefHourSave.Role.INSTANCE)).thenReturn(NodeRefHourSave.Factory.INSTANCE); + + 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 new file mode 100644 index 0000000000000000000000000000000000000000..7d166c58c3c666550f637fd4f11e4ea0544c2f21 --- /dev/null +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/noderef/persistence/NodeRefHourSaveTestCase.java @@ -0,0 +1,51 @@ +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.WorkerConfig; +import com.a.eye.skywalking.collector.worker.noderef.NodeRefIndex; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; + +/** + * @author pengys5 + */ +public class NodeRefHourSaveTestCase { + + private NodeRefHourSave save; + + @Before + public void init() { + ClusterWorkerContext cluster = new ClusterWorkerContext(null); + LocalWorkerContext local = new LocalWorkerContext(); + save = new NodeRefHourSave(NodeRefHourSave.Role.INSTANCE, cluster, local); + } + + @Test + public void testEsIndex() { + Assert.assertEquals(NodeRefIndex.Index, save.esIndex()); + } + + @Test + public void testEsType() { + Assert.assertEquals(NodeRefIndex.Type_Hour, save.esType()); + } + + @Test + public void testRole() { + Assert.assertEquals(NodeRefHourSave.class.getSimpleName(), NodeRefHourSave.Role.INSTANCE.roleName()); + Assert.assertEquals(HashCodeSelector.class.getSimpleName(), NodeRefHourSave.Role.INSTANCE.workerSelector().getClass().getSimpleName()); + } + + @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()); + } +} 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 new file mode 100644 index 0000000000000000000000000000000000000000..b5f95309e83f26000bd19559bd20ee3d184635d5 --- /dev/null +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/noderef/persistence/NodeRefMinuteAggTestCase.java @@ -0,0 +1,86 @@ +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.ProviderNotFoundException; +import com.a.eye.skywalking.collector.actor.WorkerRefs; +import com.a.eye.skywalking.collector.actor.selector.HashCodeSelector; +import com.a.eye.skywalking.collector.worker.WorkerConfig; +import com.a.eye.skywalking.collector.worker.mock.RecordDataAnswer; +import com.a.eye.skywalking.collector.worker.storage.RecordData; +import com.a.eye.skywalking.collector.worker.tools.RecordDataAggTools; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.ArgumentCaptor; +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.mockito.Mockito.*; + +/** + * @author pengys5 + */ +@RunWith(PowerMockRunner.class) +@PrepareForTest({LocalWorkerContext.class}) +@PowerMockIgnore({"javax.management.*"}) +public class NodeRefMinuteAggTestCase { + + private NodeRefMinuteAgg agg; + private RecordDataAnswer recordDataAnswer; + private ClusterWorkerContext clusterWorkerContext; + private LocalWorkerContext localWorkerContext; + + @Before + public void init() throws Exception { + clusterWorkerContext = PowerMockito.mock(ClusterWorkerContext.class); + + localWorkerContext = PowerMockito.mock(LocalWorkerContext.class); + WorkerRefs workerRefs = mock(WorkerRefs.class); + + recordDataAnswer = new RecordDataAnswer(); + doAnswer(recordDataAnswer).when(workerRefs).tell(Mockito.any(RecordData.class)); + + when(localWorkerContext.lookup(NodeRefMinuteSave.Role.INSTANCE)).thenReturn(workerRefs); + agg = new NodeRefMinuteAgg(NodeRefMinuteAgg.Role.INSTANCE, clusterWorkerContext, localWorkerContext); + } + + @Test + public void testRole() { + Assert.assertEquals(NodeRefMinuteAgg.class.getSimpleName(), NodeRefMinuteAgg.Role.INSTANCE.roleName()); + Assert.assertEquals(HashCodeSelector.class.getSimpleName(), NodeRefMinuteAgg.Role.INSTANCE.workerSelector().getClass().getSimpleName()); + } + + @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()); + + int testSize = 10; + WorkerConfig.WorkerNum.NodeRef.NodeRefMinuteAgg.Value = testSize; + Assert.assertEquals(testSize, NodeRefMinuteAgg.Factory.INSTANCE.workerNum()); + } + + @Test + public void testPreStart() throws ProviderNotFoundException { + when(clusterWorkerContext.findProvider(NodeRefMinuteSave.Role.INSTANCE)).thenReturn(NodeRefMinuteSave.Factory.INSTANCE); + + 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 new file mode 100644 index 0000000000000000000000000000000000000000..417997add3043975432f50fef644fe71e6781820 --- /dev/null +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/noderef/persistence/NodeRefMinuteSaveTestCase.java @@ -0,0 +1,51 @@ +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.WorkerConfig; +import com.a.eye.skywalking.collector.worker.noderef.NodeRefIndex; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; + +/** + * @author pengys5 + */ +public class NodeRefMinuteSaveTestCase { + + private NodeRefMinuteSave save; + + @Before + public void init() { + ClusterWorkerContext cluster = new ClusterWorkerContext(null); + LocalWorkerContext local = new LocalWorkerContext(); + save = new NodeRefMinuteSave(NodeRefMinuteSave.Role.INSTANCE, cluster, local); + } + + @Test + public void testEsIndex() { + Assert.assertEquals(NodeRefIndex.Index, save.esIndex()); + } + + @Test + public void testEsType() { + Assert.assertEquals(NodeRefIndex.Type_Minute, save.esType()); + } + + @Test + public void testRole() { + Assert.assertEquals(NodeRefMinuteSave.class.getSimpleName(), NodeRefMinuteSave.Role.INSTANCE.roleName()); + Assert.assertEquals(HashCodeSelector.class.getSimpleName(), NodeRefMinuteSave.Role.INSTANCE.workerSelector().getClass().getSimpleName()); + } + + @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()); + } +} 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 new file mode 100644 index 0000000000000000000000000000000000000000..a6d91c5e1ffe0a5b074ac01d87d57f88c06725ca --- /dev/null +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/noderef/persistence/NodeRefResSumDayAggTestCase.java @@ -0,0 +1,86 @@ +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.ProviderNotFoundException; +import com.a.eye.skywalking.collector.actor.WorkerRefs; +import com.a.eye.skywalking.collector.actor.selector.HashCodeSelector; +import com.a.eye.skywalking.collector.worker.WorkerConfig; +import com.a.eye.skywalking.collector.worker.mock.MetricDataAnswer; +import com.a.eye.skywalking.collector.worker.storage.MetricData; +import com.a.eye.skywalking.collector.worker.tools.MetricDataAggTools; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.ArgumentCaptor; +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.mockito.Mockito.*; + +/** + * @author pengys5 + */ +@RunWith(PowerMockRunner.class) +@PrepareForTest({LocalWorkerContext.class}) +@PowerMockIgnore({"javax.management.*"}) +public class NodeRefResSumDayAggTestCase { + + private NodeRefResSumDayAgg agg; + private MetricDataAnswer metricDataAnswer; + private ClusterWorkerContext clusterWorkerContext; + private LocalWorkerContext localWorkerContext; + + @Before + public void init() throws Exception { + clusterWorkerContext = PowerMockito.mock(ClusterWorkerContext.class); + + localWorkerContext = PowerMockito.mock(LocalWorkerContext.class); + WorkerRefs workerRefs = mock(WorkerRefs.class); + + metricDataAnswer = new MetricDataAnswer(); + doAnswer(metricDataAnswer).when(workerRefs).tell(Mockito.any(MetricData.class)); + + when(localWorkerContext.lookup(NodeRefResSumDaySave.Role.INSTANCE)).thenReturn(workerRefs); + agg = new NodeRefResSumDayAgg(NodeRefResSumDayAgg.Role.INSTANCE, clusterWorkerContext, localWorkerContext); + } + + @Test + public void testRole() { + Assert.assertEquals(NodeRefResSumDayAgg.class.getSimpleName(), NodeRefResSumDayAgg.Role.INSTANCE.roleName()); + Assert.assertEquals(HashCodeSelector.class.getSimpleName(), NodeRefResSumDayAgg.Role.INSTANCE.workerSelector().getClass().getSimpleName()); + } + + @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()); + + int testSize = 10; + WorkerConfig.WorkerNum.NodeRef.NodeRefResSumDayAgg.Value = testSize; + Assert.assertEquals(testSize, NodeRefResSumDayAgg.Factory.INSTANCE.workerNum()); + } + + @Test + public void testPreStart() throws ProviderNotFoundException { + when(clusterWorkerContext.findProvider(NodeRefResSumDaySave.Role.INSTANCE)).thenReturn(NodeRefResSumDaySave.Factory.INSTANCE); + + 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 new file mode 100644 index 0000000000000000000000000000000000000000..2ec229fba6b8fb09f24a2237f5574f975c5827f5 --- /dev/null +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/noderef/persistence/NodeRefResSumDaySaveTestCase.java @@ -0,0 +1,50 @@ +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.WorkerConfig; +import com.a.eye.skywalking.collector.worker.noderef.NodeRefResSumIndex; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; + +/** + * @author pengys5 + */ +public class NodeRefResSumDaySaveTestCase { + private NodeRefResSumDaySave save; + + @Before + public void init() { + ClusterWorkerContext cluster = new ClusterWorkerContext(null); + LocalWorkerContext local = new LocalWorkerContext(); + save = new NodeRefResSumDaySave(NodeRefResSumDaySave.Role.INSTANCE, cluster, local); + } + + @Test + public void testEsIndex() { + Assert.assertEquals(NodeRefResSumIndex.Index, save.esIndex()); + } + + @Test + public void testEsType() { + Assert.assertEquals(NodeRefResSumIndex.Type_Day, save.esType()); + } + + @Test + public void testRole() { + Assert.assertEquals(NodeRefResSumDaySave.class.getSimpleName(), NodeRefResSumDaySave.Role.INSTANCE.roleName()); + Assert.assertEquals(HashCodeSelector.class.getSimpleName(), NodeRefResSumDaySave.Role.INSTANCE.workerSelector().getClass().getSimpleName()); + } + + @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()); + } +} 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 b8e9b2008952d27cfb629fe46ee4fb95eebea6e3..7ba2fbaa4f9aa93a9dd29bf6f825948bc8e57c64 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 @@ -13,7 +13,7 @@ import com.google.gson.JsonObject; public class NodeRefResSumGroupWithTimeSliceUseDB { public static void main(String[] args) throws Exception { - EsClient.boot(); + EsClient.INSTANCE.boot(); ClusterWorkerContext clusterWorkerContext = new ClusterWorkerContext(null); LocalWorkerContext localWorkerContext = new LocalWorkerContext(); 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 new file mode 100644 index 0000000000000000000000000000000000000000..95b7ceda104439ea72d08d2c41f1f8f8920b20df --- /dev/null +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/noderef/persistence/NodeRefResSumHourAggTestCase.java @@ -0,0 +1,86 @@ +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.ProviderNotFoundException; +import com.a.eye.skywalking.collector.actor.WorkerRefs; +import com.a.eye.skywalking.collector.actor.selector.HashCodeSelector; +import com.a.eye.skywalking.collector.worker.WorkerConfig; +import com.a.eye.skywalking.collector.worker.mock.MetricDataAnswer; +import com.a.eye.skywalking.collector.worker.storage.MetricData; +import com.a.eye.skywalking.collector.worker.tools.MetricDataAggTools; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.ArgumentCaptor; +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.mockito.Mockito.*; + +/** + * @author pengys5 + */ +@RunWith(PowerMockRunner.class) +@PrepareForTest({LocalWorkerContext.class}) +@PowerMockIgnore({"javax.management.*"}) +public class NodeRefResSumHourAggTestCase { + + private NodeRefResSumHourAgg agg; + private MetricDataAnswer metricDataAnswer; + private ClusterWorkerContext clusterWorkerContext; + private LocalWorkerContext localWorkerContext; + + @Before + public void init() throws Exception { + clusterWorkerContext = PowerMockito.mock(ClusterWorkerContext.class); + + localWorkerContext = PowerMockito.mock(LocalWorkerContext.class); + WorkerRefs workerRefs = mock(WorkerRefs.class); + + metricDataAnswer = new MetricDataAnswer(); + doAnswer(metricDataAnswer).when(workerRefs).tell(Mockito.any(MetricData.class)); + + when(localWorkerContext.lookup(NodeRefResSumHourSave.Role.INSTANCE)).thenReturn(workerRefs); + agg = new NodeRefResSumHourAgg(NodeRefResSumHourAgg.Role.INSTANCE, clusterWorkerContext, localWorkerContext); + } + + @Test + public void testRole() { + Assert.assertEquals(NodeRefResSumHourAgg.class.getSimpleName(), NodeRefResSumHourAgg.Role.INSTANCE.roleName()); + Assert.assertEquals(HashCodeSelector.class.getSimpleName(), NodeRefResSumHourAgg.Role.INSTANCE.workerSelector().getClass().getSimpleName()); + } + + @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()); + + int testSize = 10; + WorkerConfig.WorkerNum.NodeRef.NodeRefResSumHourAgg.Value = testSize; + Assert.assertEquals(testSize, NodeRefResSumHourAgg.Factory.INSTANCE.workerNum()); + } + + @Test + public void testPreStart() throws ProviderNotFoundException { + when(clusterWorkerContext.findProvider(NodeRefResSumHourSave.Role.INSTANCE)).thenReturn(NodeRefResSumHourSave.Factory.INSTANCE); + + 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 new file mode 100644 index 0000000000000000000000000000000000000000..74f853043a9199d618a3f132927b8db298b52fdb --- /dev/null +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/noderef/persistence/NodeRefResSumHourSaveTestCase.java @@ -0,0 +1,51 @@ +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.WorkerConfig; +import com.a.eye.skywalking.collector.worker.noderef.NodeRefResSumIndex; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; + +/** + * @author pengys5 + */ +public class NodeRefResSumHourSaveTestCase { + + private NodeRefResSumHourSave save; + + @Before + public void init() { + ClusterWorkerContext cluster = new ClusterWorkerContext(null); + LocalWorkerContext local = new LocalWorkerContext(); + save = new NodeRefResSumHourSave(NodeRefResSumHourSave.Role.INSTANCE, cluster, local); + } + + @Test + public void testEsIndex() { + Assert.assertEquals(NodeRefResSumIndex.Index, save.esIndex()); + } + + @Test + public void testEsType() { + Assert.assertEquals(NodeRefResSumIndex.Type_Hour, save.esType()); + } + + @Test + public void testRole() { + Assert.assertEquals(NodeRefResSumHourSave.class.getSimpleName(), NodeRefResSumHourSave.Role.INSTANCE.roleName()); + Assert.assertEquals(HashCodeSelector.class.getSimpleName(), NodeRefResSumHourSave.Role.INSTANCE.workerSelector().getClass().getSimpleName()); + } + + @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()); + } +} 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 new file mode 100644 index 0000000000000000000000000000000000000000..ddf3184fed080169e8ef2a2ac31dbfa3ed46d0a2 --- /dev/null +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/noderef/persistence/NodeRefResSumMinuteAggTestCase.java @@ -0,0 +1,86 @@ +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.ProviderNotFoundException; +import com.a.eye.skywalking.collector.actor.WorkerRefs; +import com.a.eye.skywalking.collector.actor.selector.HashCodeSelector; +import com.a.eye.skywalking.collector.worker.WorkerConfig; +import com.a.eye.skywalking.collector.worker.mock.MetricDataAnswer; +import com.a.eye.skywalking.collector.worker.storage.MetricData; +import com.a.eye.skywalking.collector.worker.tools.MetricDataAggTools; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.ArgumentCaptor; +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.mockito.Mockito.*; + +/** + * @author pengys5 + */ +@RunWith(PowerMockRunner.class) +@PrepareForTest({LocalWorkerContext.class}) +@PowerMockIgnore({"javax.management.*"}) +public class NodeRefResSumMinuteAggTestCase { + + private NodeRefResSumMinuteAgg agg; + private MetricDataAnswer metricDataAnswer; + private ClusterWorkerContext clusterWorkerContext; + private LocalWorkerContext localWorkerContext; + + @Before + public void init() throws Exception { + clusterWorkerContext = PowerMockito.mock(ClusterWorkerContext.class); + + localWorkerContext = PowerMockito.mock(LocalWorkerContext.class); + WorkerRefs workerRefs = mock(WorkerRefs.class); + + metricDataAnswer = new MetricDataAnswer(); + doAnswer(metricDataAnswer).when(workerRefs).tell(Mockito.any(MetricData.class)); + + when(localWorkerContext.lookup(NodeRefResSumMinuteSave.Role.INSTANCE)).thenReturn(workerRefs); + agg = new NodeRefResSumMinuteAgg(NodeRefResSumMinuteAgg.Role.INSTANCE, clusterWorkerContext, localWorkerContext); + } + + @Test + public void testRole() { + Assert.assertEquals(NodeRefResSumMinuteAgg.class.getSimpleName(), NodeRefResSumMinuteAgg.Role.INSTANCE.roleName()); + Assert.assertEquals(HashCodeSelector.class.getSimpleName(), NodeRefResSumMinuteAgg.Role.INSTANCE.workerSelector().getClass().getSimpleName()); + } + + @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()); + + int testSize = 10; + WorkerConfig.WorkerNum.NodeRef.NodeRefResSumMinuteAgg.Value = testSize; + Assert.assertEquals(testSize, NodeRefResSumMinuteAgg.Factory.INSTANCE.workerNum()); + } + + @Test + public void testPreStart() throws ProviderNotFoundException { + when(clusterWorkerContext.findProvider(NodeRefResSumMinuteSave.Role.INSTANCE)).thenReturn(NodeRefResSumMinuteSave.Factory.INSTANCE); + + 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 new file mode 100644 index 0000000000000000000000000000000000000000..db56a16f209fc1678d5a237a86c6b03e47095e3b --- /dev/null +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/noderef/persistence/NodeRefResSumMinuteSaveTestCase.java @@ -0,0 +1,52 @@ +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.WorkerConfig; +import com.a.eye.skywalking.collector.worker.noderef.NodeRefIndex; +import com.a.eye.skywalking.collector.worker.noderef.NodeRefResSumIndex; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; + +/** + * @author pengys5 + */ +public class NodeRefResSumMinuteSaveTestCase { + + private NodeRefResSumMinuteSave save; + + @Before + public void init() { + ClusterWorkerContext cluster = new ClusterWorkerContext(null); + LocalWorkerContext local = new LocalWorkerContext(); + save = new NodeRefResSumMinuteSave(NodeRefResSumMinuteSave.Role.INSTANCE, cluster, local); + } + + @Test + public void testEsIndex() { + Assert.assertEquals(NodeRefResSumIndex.Index, save.esIndex()); + } + + @Test + public void testEsType() { + Assert.assertEquals(NodeRefResSumIndex.Type_Minute, save.esType()); + } + + @Test + public void testRole() { + Assert.assertEquals(NodeRefResSumMinuteSave.class.getSimpleName(), NodeRefResSumMinuteSave.Role.INSTANCE.roleName()); + Assert.assertEquals(HashCodeSelector.class.getSimpleName(), NodeRefResSumMinuteSave.Role.INSTANCE.workerSelector().getClass().getSimpleName()); + } + + @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()); + } +} 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 140c9ff03701ac93bd1329033e2b42c2c17ec6f1..5a216150f7b2d1ce40775015e47bde2887dfeabb 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 @@ -13,7 +13,7 @@ import com.google.gson.JsonObject; public class NodeRefResSumSearchWithTimeSliceUseDB { public static void main(String[] args) throws Exception { - EsClient.boot(); + EsClient.INSTANCE.boot(); ClusterWorkerContext clusterWorkerContext = new ClusterWorkerContext(null); LocalWorkerContext localWorkerContext = new LocalWorkerContext(); 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 5b85da58eedaf924174b4be65e3ee1e2a24881ae..ab6efda264fcdae84632f1bcc24cf0110c5f369e 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 @@ -13,7 +13,7 @@ import com.google.gson.JsonObject; public class NodeRefSearchWithTimeSliceUseDB { public static void main(String[] args) throws Exception { - EsClient.boot(); + EsClient.INSTANCE.boot(); ClusterWorkerContext clusterWorkerContext = new ClusterWorkerContext(null); LocalWorkerContext localWorkerContext = new LocalWorkerContext(); 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 new file mode 100644 index 0000000000000000000000000000000000000000..b1738ab8d46f702694c950e033795a110f50ad5a --- /dev/null +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/segment/SegmentCostIndexTestCase.java @@ -0,0 +1,26 @@ +package com.a.eye.skywalking.collector.worker.segment; + +import com.a.eye.skywalking.collector.worker.globaltrace.GlobalTraceIndex; +import org.junit.Assert; +import org.junit.Test; + +import java.io.IOException; + +/** + * @author pengys5 + */ +public class SegmentCostIndexTestCase { + + @Test + public void test() { + SegmentCostIndex index = new SegmentCostIndex(); + Assert.assertEquals("segment_cost_idx", index.index()); + Assert.assertEquals(true, index.isRecord()); + } + + @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\"},\"EndTime\":{\"type\":\"long\",\"index\":\"not_analyzed\"},\"operationName\":{\"type\":\"string\",\"index\":\"not_analyzed\"},\"cost\":{\"type\":\"long\",\"index\":\"not_analyzed\"}}}", index.createMappingBuilder().string()); + } +} 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 new file mode 100644 index 0000000000000000000000000000000000000000..0f818cace633178549a30f9b044ce47c3bfeacad --- /dev/null +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/segment/SegmentExceptionIndexTestCase.java @@ -0,0 +1,26 @@ +package com.a.eye.skywalking.collector.worker.segment; + +import com.a.eye.skywalking.collector.worker.globaltrace.GlobalTraceIndex; +import org.junit.Assert; +import org.junit.Test; + +import java.io.IOException; + +/** + * @author pengys5 + */ +public class SegmentExceptionIndexTestCase { + + @Test + public void test() { + SegmentExceptionIndex index = new SegmentExceptionIndex(); + Assert.assertEquals("segment_exp_idx", index.index()); + Assert.assertEquals(true, index.isRecord()); + } + + @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()); + } +} 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 new file mode 100644 index 0000000000000000000000000000000000000000..930351b7bb95c1f016b1efeb8b235af3e9312cd1 --- /dev/null +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/segment/SegmentIndexTestCase.java @@ -0,0 +1,25 @@ +package com.a.eye.skywalking.collector.worker.segment; + +import org.junit.Assert; +import org.junit.Test; + +import java.io.IOException; + +/** + * @author pengys5 + */ +public class SegmentIndexTestCase { + + @Test + public void test() { + SegmentIndex index = new SegmentIndex(); + Assert.assertEquals("segment_idx", index.index()); + Assert.assertEquals(true, index.isRecord()); + } + + @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()); + } +} 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 11bf29106b73d559e10490dec903dd86294f3d08..8bcedbbd190fbd892372c96a50f7977cc1d3ac8b 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 @@ -1,21 +1,20 @@ package com.a.eye.skywalking.collector.worker.segment; -import com.a.eye.skywalking.collector.actor.ClusterWorkerContext; -import com.a.eye.skywalking.collector.actor.LocalWorkerContext; -import com.a.eye.skywalking.collector.actor.WorkerRef; +import com.a.eye.skywalking.collector.actor.*; +import com.a.eye.skywalking.collector.actor.selector.RollingSelector; +import com.a.eye.skywalking.collector.worker.WorkerConfig; import com.a.eye.skywalking.collector.worker.globaltrace.analysis.GlobalTraceAnalysis; import com.a.eye.skywalking.collector.worker.node.analysis.NodeCompAnalysis; import com.a.eye.skywalking.collector.worker.node.analysis.NodeMappingDayAnalysis; 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.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.noderef.analysis.*; 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; import com.a.eye.skywalking.collector.worker.segment.persistence.SegmentSave; 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.apache.logging.log4j.Logger; @@ -23,15 +22,21 @@ import org.junit.Assert; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; +import org.mockito.ArgumentCaptor; import org.mockito.ArgumentMatcher; import org.mockito.Mockito; import org.mockito.invocation.InvocationOnMock; import org.mockito.stubbing.Answer; +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.*; +import static org.mockito.Mockito.*; +import static org.mockito.Mockito.when; +import static org.powermock.api.mockito.PowerMockito.doAnswer; +import static org.powermock.api.mockito.PowerMockito.doReturn; +import static org.powermock.api.mockito.PowerMockito.mock; /** * @author pengys5 @@ -46,23 +51,95 @@ public class SegmentPostTestCase { private SegmentMock segmentMock; private SegmentPost segmentPost; private LocalWorkerContext localWorkerContext; + private ClusterWorkerContext clusterWorkerContext; @Before public void init() throws Exception { segmentMock = new SegmentMock(); - - ClusterWorkerContext clusterWorkerContext = new ClusterWorkerContext(null); + clusterWorkerContext = PowerMockito.mock(ClusterWorkerContext.class); localWorkerContext = new LocalWorkerContext(); + segmentPost = new SegmentPost(SegmentPost.WorkerRole.INSTANCE, clusterWorkerContext, localWorkerContext); + + initNodeNodeMappingAnalysis(); + initNodeCompAnalysis(); + initNodeRefAnalysis(); + initSegmentExceptionSave(); initSegmentSave(); initSegmentCostSave(); initGlobalTraceAnalysis(); - initSegmentExceptionSave(); - initNodeRefAnalysis(); - initNodeCompAnalysis(); - initNodeNodeMappingAnalysis(); + } + + @Test + public void testRole() { + Assert.assertEquals(SegmentPost.class.getSimpleName(), SegmentPost.WorkerRole.INSTANCE.roleName()); + Assert.assertEquals(RollingSelector.class.getSimpleName(), SegmentPost.WorkerRole.INSTANCE.workerSelector().getClass().getSimpleName()); + } + + @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()); + + int testSize = 10; + WorkerConfig.Queue.Segment.SegmentPost.Size = testSize; + Assert.assertEquals(testSize, SegmentPost.Factory.INSTANCE.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); + + 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); + + 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); + + 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); + + 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); + + ArgumentCaptor argumentCaptor = ArgumentCaptor.forClass(Role.class); + + segmentPost.preStart(); + + verify(clusterWorkerContext, times(14)).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(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()); + } + + @Test + public void testValidateData() throws Exception { + JsonArray segmentArray = new JsonArray(); + JsonObject segmentJsonObj = new JsonObject(); + segmentJsonObj.addProperty("et", 1491277162066L); + segmentArray.add(segmentJsonObj); - segmentPost = spy(new SegmentPost(SegmentPost.WorkerRole.INSTANCE, clusterWorkerContext, localWorkerContext)); + segmentPost.onReceive(segmentArray.toString()); } private SegmentSaveAnswer segmentSaveAnswer_1; diff --git a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/segment/SegmentRealPost.java b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/segment/SegmentRealPost.java index f0c6cfdeb63a98f654cb3faf15e2cadedd8b068e..6595383b641c5c3dea4ab233396fb4536bff23cc 100644 --- a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/segment/SegmentRealPost.java +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/segment/SegmentRealPost.java @@ -23,5 +23,9 @@ public class SegmentRealPost { String portalServiceSegmentAsString = mock.mockPortalServiceSegmentAsString(); HttpClientTools.INSTANCE.post("http://localhost:7001/segments", portalServiceSegmentAsString); + +// String specialSegmentAsString = mock.mockSpecialSegmentAsString(); +// HttpClientTools.INSTANCE.post("http://localhost:7001/segments", specialSegmentAsString); + } } 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 71b31908baf66d820a2f7cb85f206e423f9da742..d4957db8ffa1cdbf1f2f03a166ab25fa41247c88 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 @@ -14,6 +14,7 @@ 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; import org.junit.Before; import org.junit.Test; @@ -31,7 +32,7 @@ import static org.powermock.api.mockito.PowerMockito.when; * @author pengys5 */ @RunWith(PowerMockRunner.class) -@PrepareForTest({EsClient.class, LogManager.class}) +@PrepareForTest({EsClient.class, Client.class, LogManager.class}) @PowerMockIgnore({"javax.management.*"}) public class SegmentCostSaveTestCase { 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 new file mode 100644 index 0000000000000000000000000000000000000000..6916056655ab9a96e10f07468d67fdf3c6158cc4 --- /dev/null +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/span/SpanGetWithIdTestCase.java @@ -0,0 +1,17 @@ +package com.a.eye.skywalking.collector.worker.span; + +import com.a.eye.skywalking.collector.actor.selector.RollingSelector; +import org.junit.Assert; +import org.junit.Test; + +/** + * @author pengys5 + */ +public class SpanGetWithIdTestCase { + + @Test + public void testRole() { + Assert.assertEquals(SpanGetWithId.class.getSimpleName(), SpanGetWithId.WorkerRole.INSTANCE.roleName()); + Assert.assertEquals(RollingSelector.class.getSimpleName(), SpanGetWithId.WorkerRole.INSTANCE.workerSelector().getClass().getSimpleName()); + } +} 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 new file mode 100644 index 0000000000000000000000000000000000000000..57a55a0fdcf112a85bea8e8d63219cb4c3964779 --- /dev/null +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/span/persistence/SpanSearchWithIdTestCase.java @@ -0,0 +1,88 @@ +package com.a.eye.skywalking.collector.worker.span.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.Const; +import com.a.eye.skywalking.collector.worker.segment.SegmentIndex; +import com.a.eye.skywalking.collector.worker.storage.GetResponseFromEs; +import com.a.eye.skywalking.trace.Span; +import com.a.eye.skywalking.trace.TraceSegment; +import com.google.gson.Gson; +import com.google.gson.JsonObject; +import org.elasticsearch.action.get.GetResponse; +import org.junit.Assert; +import org.junit.Before; +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.mockito.Mockito.mock; +import static org.mockito.Mockito.when; + +/** + * @author pengys5 + */ +@RunWith(PowerMockRunner.class) +@PrepareForTest({GetResponseFromEs.class}) +@PowerMockIgnore({"javax.management.*"}) +public class SpanSearchWithIdTestCase { + + private GetResponseFromEs getResponseFromEs; + + @Before + public void init() { + getResponseFromEs = PowerMockito.mock(GetResponseFromEs.class); + Whitebox.setInternalState(GetResponseFromEs.class, "INSTANCE", getResponseFromEs); + } + + @Test + public void testRole() { + Assert.assertEquals(SpanSearchWithId.class.getSimpleName(), SpanSearchWithId.WorkerRole.INSTANCE.roleName()); + Assert.assertEquals(RollingSelector.class.getSimpleName(), SpanSearchWithId.WorkerRole.INSTANCE.workerSelector().getClass().getSimpleName()); + } + + @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()); + } + + @Test + public void testOnWork() throws Exception { + ClusterWorkerContext clusterWorkerContext = new ClusterWorkerContext(null); + LocalWorkerContext localWorkerContext = new LocalWorkerContext(); + SpanSearchWithId spanSearchWithId = new SpanSearchWithId(SpanSearchWithId.WorkerRole.INSTANCE, clusterWorkerContext, localWorkerContext); + + TraceSegment segment = create(); + Gson gson = new Gson(); + String sourceString = gson.toJson(segment); + + GetResponse getResponse = mock(GetResponse.class); + when(getResponseFromEs.get(SegmentIndex.Index, SegmentIndex.Type_Record, "1")).thenReturn(getResponse); + when(getResponse.getSourceAsString()).thenReturn(sourceString); + + SpanSearchWithId.RequestEntity request = new SpanSearchWithId.RequestEntity("1", "0"); + JsonObject response = new JsonObject(); + spanSearchWithId.onWork(request, response); + + JsonObject segJsonObj = response.get(Const.RESULT).getAsJsonObject(); + String value = segJsonObj.get("ts").getAsJsonObject().get("Tag").getAsString(); + Assert.assertEquals("Value", value); + } + + private TraceSegment create() { + TraceSegment segment = new TraceSegment(); + + Span span = new Span(); + span.setTag("Tag", "Value"); + span.finish(segment); + segment.finish(); + + return segment; + } +} 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 new file mode 100644 index 0000000000000000000000000000000000000000..28aef0e60c919f9abc39e3abbbfb9bc474d66bb6 --- /dev/null +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/storage/AbstractIndexTestCase.java @@ -0,0 +1,53 @@ +package com.a.eye.skywalking.collector.worker.storage; + +import org.elasticsearch.common.xcontent.XContentBuilder; +import org.elasticsearch.common.xcontent.XContentFactory; +import org.junit.Assert; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.powermock.core.classloader.annotations.PowerMockIgnore; +import org.powermock.core.classloader.annotations.PrepareForTest; +import org.powermock.modules.junit4.PowerMockRunner; + +import java.io.IOException; + +/** + * @author pengys5 + */ +@RunWith(PowerMockRunner.class) +@PrepareForTest({AbstractIndexTestCase.IndexTest.class, EsClient.class}) +@PowerMockIgnore({"javax.management.*"}) +public class AbstractIndexTestCase { + + @Test + public void testCreateSettingBuilder() throws IOException { + IndexTest indexTest = new IndexTest(); + Assert.assertEquals("{\"index.number_of_shards\":2,\"index.number_of_replicas\":0}", indexTest.createSettingBuilder().string()); + } + + class IndexTest extends AbstractIndex { + @Override + public boolean isRecord() { + return false; + } + + @Override + public XContentBuilder createMappingBuilder() throws IOException { + XContentBuilder mappingBuilder = XContentFactory.jsonBuilder() + .startObject() + .startObject("properties") + .startObject(Time_Slice) + .field("type", "long") + .field("index", "not_analyzed") + .endObject() + .endObject() + .endObject(); + return mappingBuilder; + } + + @Override + public String index() { + return "Index_Test"; + } + } +} diff --git a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/storage/AbstractTimeSliceTestCase.java b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/storage/AbstractTimeSliceTestCase.java new file mode 100644 index 0000000000000000000000000000000000000000..2edc4fa52b217db1a7b2d9beb3e00bea0a57baf3 --- /dev/null +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/storage/AbstractTimeSliceTestCase.java @@ -0,0 +1,25 @@ +package com.a.eye.skywalking.collector.worker.storage; + +import org.junit.Assert; +import org.junit.Test; + +/** + * @author pengys5 + */ +public class AbstractTimeSliceTestCase { + + @Test + public void test() { + TimeSlice timeSlice = new TimeSlice(1L, 2L, 3L, 4); + Assert.assertEquals(1L, timeSlice.getMinute()); + Assert.assertEquals(2L, timeSlice.getHour()); + Assert.assertEquals(3L, timeSlice.getDay()); + Assert.assertEquals(4, timeSlice.getSecond()); + } + + class TimeSlice extends AbstractTimeSlice { + public TimeSlice(long minute, long hour, long day, int second) { + super(minute, hour, day, second); + } + } +} diff --git a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/storage/GetResponseFromEsTestCase.java b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/storage/GetResponseFromEsTestCase.java new file mode 100644 index 0000000000000000000000000000000000000000..6abbf3e53f786106ee160f20e603083fab5a277a --- /dev/null +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/storage/GetResponseFromEsTestCase.java @@ -0,0 +1,34 @@ +package com.a.eye.skywalking.collector.worker.storage; + +import com.a.eye.skywalking.collector.worker.mock.MockGetResponse; +import org.elasticsearch.action.get.GetResponse; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.powermock.core.classloader.annotations.PowerMockIgnore; +import org.powermock.core.classloader.annotations.PrepareForTest; +import org.powermock.modules.junit4.PowerMockRunner; + +/** + * @author pengys5 + */ +@RunWith(PowerMockRunner.class) +@PrepareForTest({EsClient.class}) +@PowerMockIgnore({"javax.management.*"}) +public class GetResponseFromEsTestCase { + + private GetResponse getResponse; + + @Before + public void init() { + MockGetResponse mockGetResponse = new MockGetResponse(); + getResponse = mockGetResponse.mockito(); + } + + @Test + public void testGet() { + GetResponse response = GetResponseFromEs.INSTANCE.get("INDEX", "TYPE", "1"); + Assert.assertEquals(getResponse, response); + } +} 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 new file mode 100644 index 0000000000000000000000000000000000000000..f4c64e100e55ce95ffdb3406fcf231b01d6afe7f --- /dev/null +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/storage/IndexCreatorTestCase.java @@ -0,0 +1,83 @@ +package com.a.eye.skywalking.collector.worker.storage; + +import org.elasticsearch.common.xcontent.XContentBuilder; +import org.elasticsearch.common.xcontent.XContentFactory; +import org.junit.Assert; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.Mockito; +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.io.IOException; +import java.util.HashSet; +import java.util.Set; + +import static org.powermock.api.mockito.PowerMockito.*; + +/** + * @author pengys5 + */ +@RunWith(PowerMockRunner.class) +@PrepareForTest({IndexCreator.class, IndexCreatorTestCase.TestIndex.class}) +@PowerMockIgnore({"javax.management.*"}) +public class IndexCreatorTestCase { + + @Test + public void testLoadIndex() throws Exception { + IndexCreator indexCreator = spy(IndexCreator.INSTANCE); + Set indexSet = Whitebox.invokeMethod(indexCreator, "loadIndex"); + Assert.assertEquals(8, indexSet.size()); + + Set indexName = new HashSet<>(); + for (AbstractIndex index : indexSet) { + indexName.add(index.index()); + } + + Assert.assertEquals(true, indexName.contains("node_ref_idx")); + Assert.assertEquals(true, indexName.contains("node_ref_res_sum_idx")); + Assert.assertEquals(true, indexName.contains("global_trace_idx")); + Assert.assertEquals(true, indexName.contains("segment_cost_idx")); + Assert.assertEquals(true, indexName.contains("node_mapping_idx")); + Assert.assertEquals(true, indexName.contains("segment_idx")); + Assert.assertEquals(true, indexName.contains("segment_exp_idx")); + Assert.assertEquals(true, indexName.contains("node_comp_idx")); + } + + @Test + public void testCreate() throws Exception { + TestIndex testIndex = mock(TestIndex.class); + + IndexCreator indexCreator = mock(IndexCreator.class); + doCallRealMethod().when(indexCreator).create(); + + Set indexSet = new HashSet<>(); + indexSet.add(testIndex); + + when(indexCreator, "loadIndex").thenReturn(indexSet); + + indexCreator.create(); + Mockito.verify(testIndex).createIndex(); + Mockito.verify(testIndex).deleteIndex(); + } + + class TestIndex extends AbstractIndex { + + @Override + public String index() { + return "TestIndex"; + } + + @Override + public boolean isRecord() { + return false; + } + + @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/MergeDataTestCase.java b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/storage/MergeDataTestCase.java new file mode 100644 index 0000000000000000000000000000000000000000..bb3db23af6ef7761d68b7c431c8ab95483408e18 --- /dev/null +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/storage/MergeDataTestCase.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 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 new file mode 100644 index 0000000000000000000000000000000000000000..d8c0c48f608afea216ed12169e1a254af79edd56 --- /dev/null +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/storage/MergePersistenceDataTestCase.java @@ -0,0 +1,86 @@ +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/MetricDataTestCase.java b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/storage/MetricDataTestCase.java new file mode 100644 index 0000000000000000000000000000000000000000..1294a956a0d0c35d2c4fd8067d8942639aa98e5e --- /dev/null +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/storage/MetricDataTestCase.java @@ -0,0 +1,69 @@ +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.HashMap; +import java.util.Map; + +/** + * @author pengys5 + */ +public class MetricDataTestCase { + + @Test + public void testConstruction() { + String id_1 = "2016" + Const.ID_SPLIT + "B"; + 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)); + + 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)); + } + + @Test + public void testSetMetric() { + 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.setMetric("Column", 10L); + Assert.assertEquals(20L, metricData.toMap().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 metricData_2 = new MetricData(id_1); + metricData_2.setMetric("Column", 10L); + + metricData_1.merge(metricData_2); + Assert.assertEquals(20L, metricData_1.toMap().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); + + Map dbData = new HashMap<>(); + dbData.put("Column", 10L); + + metricData_1.merge(dbData); + Assert.assertEquals(20L, metricData_1.toMap().get("Column")); + } +} 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 new file mode 100644 index 0000000000000000000000000000000000000000..717780fede242a8f298a011df2736cefc1f32b0f --- /dev/null +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/storage/MetricPersistenceDataTestCase.java @@ -0,0 +1,79 @@ +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/RecordDataTestCase.java b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/storage/RecordDataTestCase.java new file mode 100644 index 0000000000000000000000000000000000000000..e6157a1e06e4686aa541f67af5ba92f115f8b7d7 --- /dev/null +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/storage/RecordDataTestCase.java @@ -0,0 +1,35 @@ +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; + +/** + * @author pengys5 + */ +public class RecordDataTestCase { + + @Test + public void testConstruction() { + String id_1 = "2017" + Const.ID_SPLIT + "B" + Const.ID_SPLIT + "C"; + RecordData recordData = new RecordData(id_1); + + Assert.assertEquals(id_1, recordData.getId()); + Assert.assertEquals("B" + Const.ID_SPLIT + "C", recordData.getRecord().get("aggId").getAsString()); + } + + @Test + public void testSetRecord() { + String id_1 = "2017" + Const.ID_SPLIT + "B" + Const.ID_SPLIT + "C"; + RecordData recordData = new RecordData(id_1); + + JsonObject record = new JsonObject(); + record.addProperty("Column", "Value"); + recordData.setRecord(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()); + } +} 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 new file mode 100644 index 0000000000000000000000000000000000000000..7834361639940486b23a488cf2e4fbc612c7f7ed --- /dev/null +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/storage/RecordPersistenceDataTestCase.java @@ -0,0 +1,99 @@ +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/tools/DateToolsTestCase.java b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/tools/DateToolsTestCase.java index 06f4b723dfa192958e1c357b98a8760ead824bda..aa610252ff23cc647d2a60467c9c69cbf4af124e 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 @@ -1,10 +1,13 @@ package com.a.eye.skywalking.collector.worker.tools; +import com.a.eye.skywalking.collector.worker.storage.IndexCreator; import org.junit.Assert; import org.junit.Test; import java.util.TimeZone; +import static org.powermock.api.mockito.PowerMockito.spy; + /** * @author pengys5 */ 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 new file mode 100644 index 0000000000000000000000000000000000000000..2a3033786a6cec768f8c62bafc2eaee133d845b4 --- /dev/null +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/tools/MergeDataAggTools.java @@ -0,0 +1,22 @@ +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 org.junit.Assert; + +/** + * @author pengys5 + */ +public enum MergeDataAggTools { + INSTANCE; + + 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.mergeObj.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 new file mode 100644 index 0000000000000000000000000000000000000000..cf8cea6a8780af4ead2eacaed83526b74b3990b2 --- /dev/null +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/tools/MetricDataAggTools.java @@ -0,0 +1,23 @@ +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.MetricDataAnswer; +import com.a.eye.skywalking.collector.worker.mock.RecordDataAnswer; +import com.a.eye.skywalking.collector.worker.storage.MetricData; +import com.a.eye.skywalking.collector.worker.storage.RecordData; +import org.junit.Assert; + +/** + * @author pengys5 + */ +public enum MetricDataAggTools { + INSTANCE; + + public void testOnWork(AbstractClusterWorker agg, MetricDataAnswer metricDataAnswer) throws Exception { + 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.metricObj.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 new file mode 100644 index 0000000000000000000000000000000000000000..13aec96f2f993036db1512c85ec47e35eec759b5 --- /dev/null +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/tools/RecordDataAggTools.java @@ -0,0 +1,22 @@ +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.RecordDataAnswer; +import com.a.eye.skywalking.collector.worker.storage.RecordData; +import org.junit.Assert; + +/** + * @author pengys5 + */ +public enum RecordDataAggTools { + INSTANCE; + + public void testOnWork(AbstractClusterWorker agg, RecordDataAnswer recordDataAnswer) throws Exception { + String id = "2016" + Const.ID_SPLIT + "A" + Const.ID_SPLIT + "B"; + RecordData recordData = new RecordData(id); + agg.allocateJob(recordData); + RecordData result = RecordDataTool.INSTANCE.getRecord(recordDataAnswer.recordObj.getRecordData(), id); + Assert.assertEquals("A" + Const.ID_SPLIT + "B", result.getRecord().get("aggId").getAsString()); + } +} diff --git a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/tools/SpanPeersToolsTestCase.java b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/tools/SpanPeersToolsTestCase.java new file mode 100644 index 0000000000000000000000000000000000000000..5449feca7e8239363e13882e573f730e7c8120f0 --- /dev/null +++ b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/tools/SpanPeersToolsTestCase.java @@ -0,0 +1,33 @@ +package com.a.eye.skywalking.collector.worker.tools; + +import com.a.eye.skywalking.trace.Span; +import org.junit.Assert; +import org.junit.Test; + +import static org.mockito.Mockito.*; + +/** + * @author pengys5 + */ +public class SpanPeersToolsTestCase { + + @Test + public void testNotEmptyPeers() { + Span span = mock(Span.class); + when(span.getStrTag("peers")).thenReturn("Test"); + + String peers = SpanPeersTools.INSTANCE.getPeers(span); + Assert.assertEquals("[Test]", peers); + } + + @Test + public void testEmptyPeers() { + Span span = mock(Span.class); + when(span.getStrTag("peers")).thenReturn(null); + when(span.getStrTag("peer.host")).thenReturn("localhost"); + when(span.getStrTag("peer.port")).thenReturn("8080"); + + String peers = SpanPeersTools.INSTANCE.getPeers(span); + Assert.assertEquals("[localhost:0]", peers); + } +} diff --git a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/tools/UrlToolsTestCase.java b/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/tools/UrlToolsTestCase.java deleted file mode 100644 index 62697a711f1d72d98c08bd60fa170e45082103a9..0000000000000000000000000000000000000000 --- a/skywalking-collector/skywalking-collector-worker/src/test/java/com/a/eye/skywalking/collector/worker/tools/UrlToolsTestCase.java +++ /dev/null @@ -1,34 +0,0 @@ -package com.a.eye.skywalking.collector.worker.tools; - -import org.junit.Assert; -import org.junit.Test; - -/** - * @author pengys5 - */ -public class UrlToolsTestCase { - -// @Test - public void testParseTomcat() { - String peers = - UrlTools.parse("http://172.0.0.1:8080/Web/GetUser", "Tomcat"); - Assert.assertEquals(peers, "http://172.0.0.1:8080"); - - peers = UrlTools.parse("https://172.0.0.1:8080/Web/GetUser", "Tomcat"); - Assert.assertEquals(peers, "https://172.0.0.1:8080"); - - peers = UrlTools.parse("172.0.0.1:8080/Web/GetUser", "Tomcat"); - Assert.assertEquals(peers, "172.0.0.1:8080"); - - peers = UrlTools.parse("http172.0.0.18080/Web/GetUser", "Tomcat"); - Assert.assertEquals(peers, "http172.0.0.18080/Web/GetUser"); - } - -// @Test - public void testParseMotan() { - String peers = - UrlTools.parse("motan://10.20.3.15:3000/com.a.eye.skywalking.demo.services.GetUserService.findUser(String, String)", "Motan"); - Assert.assertEquals(peers, "motan://10.20.3.15:3000"); - } - -} diff --git a/skywalking-collector/skywalking-collector-worker/src/test/resources/json/segment/post/special/special.json b/skywalking-collector/skywalking-collector-worker/src/test/resources/json/segment/post/special/special.json index b1e00ef64c11ffc436e089d17bd62ce86424acff..dc7db051656381966bcf7f40b0235129bcddba29 100644 --- a/skywalking-collector/skywalking-collector-worker/src/test/resources/json/segment/post/special/special.json +++ b/skywalking-collector/skywalking-collector-worker/src/test/resources/json/segment/post/special/special.json @@ -3,18 +3,10 @@ "ts": "Segment.1491277162066.18986177.70531.27.1", "st": 1491277162066, "et": 1491277165743, - "rs": [ - { - "ts": "Segment.1491277147441.-1562443425.70539.65.1", - "si": 6, - "ac": "portal-service", - "ph": "127.0.0.1:8002" - } - ], "ss": [ { - "si": 2, - "ps": 1, + "si": 0, + "ps": -1, "st": 1491277162141, "et": 1491277162144, "on": "Jedis/getClient", @@ -30,153 +22,6 @@ "peer.port": 6379 }, "lo": [] - }, - { - "si": 3, - "ps": 1, - "st": 1491277162144, - "et": 1491277162147, - "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": 1491277162147, - "et": 1491277162147, - "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": 1491277162147, - "et": 1491277164410, - "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": 1491277164420, - "et": 1491277165738, - "on": "Jedis/set", - "ts": { - "span.layer": "db", - "component": "Redis", - "db.type": "Redis", - "peer.host": "127.0.0.1", - "span.kind": "client", - "db.statement": "set test_NEW" - }, - "tb": {}, - "ti": { - "peer.port": 6379 - }, - "lo": [] - }, - { - "si": 7, - "ps": 1, - "st": 1491277165741, - "et": 1491277165743, - "on": "H2/JDBI/PreparedStatement/executeUpdate", - "ts": { - "db.instance": "dataSource", - "span.layer": "db", - "db.type": "sql", - "component": "H2", - "span.kind": "client", - "db.statement": "INSERT INTO CACHE_TABLE(CACHE_VALUE, CACHE_KEY) VALUES(?, ?)", - "peer.host": "localhost" - }, - "tb": {}, - "ti": { - "peer.port": -1 - }, - "lo": [] - }, - { - "si": 8, - "ps": 1, - "st": 1491277165743, - "et": 1491277165743, - "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": 1491277162066, - "et": 1491277165743, - "on": "Motan_default_rpc_com.a.eye.skywalking.test.cache.CacheService.updateCache(java.lang.String,java.lang.String)", - "ts": { - "requestId": "1563717428890828802" - }, - "tb": {}, - "ti": {}, - "lo": [] - }, - { - "si": 0, - "ps": -1, - "st": 1491277162066, - "et": 1491277165743, - "on": "com.a.eye.skywalking.test.cache.CacheService.updateCache(java.lang.String,java.lang.String)", - "ts": { - "span.layer": "rpc", - "component": "Motan", - "span.kind": "server" - }, - "tb": {}, - "ti": {}, - "lo": [] } ], "ac": "cache-service",