fixed testcase error
This commit is contained in:
parent
7e17692d14
commit
bec40b6e8b
|
|
@ -2,12 +2,15 @@ package org.skywalking.apm.collector.worker.segment.analysis;
|
|||
|
||||
import org.apache.logging.log4j.LogManager;
|
||||
import org.apache.logging.log4j.Logger;
|
||||
import org.skywalking.apm.collector.actor.*;
|
||||
import org.skywalking.apm.collector.actor.AbstractLocalAsyncWorkerProvider;
|
||||
import org.skywalking.apm.collector.actor.ClusterWorkerContext;
|
||||
import org.skywalking.apm.collector.actor.LocalWorkerContext;
|
||||
import org.skywalking.apm.collector.actor.ProviderNotFoundException;
|
||||
import org.skywalking.apm.collector.actor.WorkerRefs;
|
||||
import org.skywalking.apm.collector.actor.selector.RollingSelector;
|
||||
import org.skywalking.apm.collector.actor.selector.WorkerSelector;
|
||||
import org.skywalking.apm.collector.worker.RecordAnalysisMember;
|
||||
import org.skywalking.apm.collector.worker.config.WorkerConfig;
|
||||
import org.skywalking.apm.collector.worker.segment.entity.Segment;
|
||||
import org.skywalking.apm.collector.worker.segment.entity.SegmentAndJson;
|
||||
import org.skywalking.apm.collector.worker.segment.persistence.SegmentSave;
|
||||
|
||||
|
|
@ -30,7 +33,7 @@ public class SegmentAnalysis extends RecordAnalysisMember {
|
|||
@Override
|
||||
public void analyse(Object message) throws Exception {
|
||||
if (message instanceof SegmentAndJson) {
|
||||
SegmentAndJson segmentAndJson = (SegmentAndJson) message;
|
||||
SegmentAndJson segmentAndJson = (SegmentAndJson)message;
|
||||
getSelfContext().lookup(SegmentSave.Role.INSTANCE).tell(segmentAndJson);
|
||||
} else {
|
||||
logger.error("unhandled message, message instance must Segment, but is %s", message.getClass().toString());
|
||||
|
|
|
|||
|
|
@ -1,70 +0,0 @@
|
|||
package org.skywalking.apm.collector.worker.segment.entity;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @author pengys5
|
||||
*/
|
||||
public enum JsonBuilder {
|
||||
INSTANCE;
|
||||
|
||||
public void append(StringBuilder builder, String name, String value, boolean first) {
|
||||
if (!first) {
|
||||
builder.append(",");
|
||||
}
|
||||
builder.append("\"").append(name).append("\":\"").append(value).append("\"");
|
||||
}
|
||||
|
||||
public void append(StringBuilder builder, String name, Number value, boolean first) {
|
||||
if (!first) {
|
||||
builder.append(",");
|
||||
}
|
||||
builder.append("\"").append(name).append("\":").append(value);
|
||||
}
|
||||
|
||||
public void append(StringBuilder builder, String name, List<?> value, boolean first) {
|
||||
if (!first) {
|
||||
builder.append(",");
|
||||
}
|
||||
builder.append("\"").append(name).append("\":");
|
||||
builder.append("[");
|
||||
|
||||
boolean isFirst = true;
|
||||
for (int i = 0; i < value.size(); i++) {
|
||||
DeserializeObject deserializeObject = (DeserializeObject) value.get(i);
|
||||
if (!isFirst) {
|
||||
builder.append(",");
|
||||
}
|
||||
builder.append(deserializeObject.getJsonStr());
|
||||
isFirst = false;
|
||||
}
|
||||
|
||||
builder.append("]");
|
||||
}
|
||||
|
||||
public void append(StringBuilder builder, String name, Map<String, ?> tagsWithStr, boolean first) {
|
||||
if (!first) {
|
||||
builder.append(",");
|
||||
}
|
||||
builder.append("\"").append(name).append("\":");
|
||||
builder.append("{");
|
||||
|
||||
boolean isFirst = true;
|
||||
for (Map.Entry<String, ?> entry : tagsWithStr.entrySet()) {
|
||||
String key = entry.getKey();
|
||||
Object value = entry.getValue();
|
||||
if (!isFirst) {
|
||||
builder.append(",");
|
||||
}
|
||||
if (value instanceof String) {
|
||||
builder.append("\"").append(key).append("\":\"").append(value).append("\"");
|
||||
} else {
|
||||
builder.append("\"").append(key).append("\":").append(value);
|
||||
}
|
||||
isFirst = false;
|
||||
}
|
||||
|
||||
builder.append("}");
|
||||
}
|
||||
}
|
||||
|
|
@ -2,6 +2,7 @@ package org.skywalking.apm.collector.worker.segment.persistence;
|
|||
|
||||
import com.google.gson.JsonArray;
|
||||
import com.google.gson.JsonObject;
|
||||
import java.util.List;
|
||||
import org.elasticsearch.action.search.SearchRequestBuilder;
|
||||
import org.elasticsearch.action.search.SearchResponse;
|
||||
import org.elasticsearch.action.search.SearchType;
|
||||
|
|
@ -10,27 +11,29 @@ import org.elasticsearch.index.query.QueryBuilders;
|
|||
import org.elasticsearch.index.query.RangeQueryBuilder;
|
||||
import org.elasticsearch.search.SearchHit;
|
||||
import org.elasticsearch.search.sort.SortOrder;
|
||||
import org.skywalking.apm.collector.actor.*;
|
||||
import org.skywalking.apm.collector.actor.AbstractLocalSyncWorker;
|
||||
import org.skywalking.apm.collector.actor.AbstractLocalSyncWorkerProvider;
|
||||
import org.skywalking.apm.collector.actor.ClusterWorkerContext;
|
||||
import org.skywalking.apm.collector.actor.LocalWorkerContext;
|
||||
import org.skywalking.apm.collector.actor.ProviderNotFoundException;
|
||||
import org.skywalking.apm.collector.actor.Role;
|
||||
import org.skywalking.apm.collector.actor.selector.RollingSelector;
|
||||
import org.skywalking.apm.collector.actor.selector.WorkerSelector;
|
||||
import org.skywalking.apm.collector.worker.segment.SegmentCostIndex;
|
||||
import org.skywalking.apm.collector.worker.segment.SegmentExceptionIndex;
|
||||
import org.skywalking.apm.collector.worker.segment.SegmentIndex;
|
||||
import org.skywalking.apm.collector.worker.segment.entity.GlobalTraceId;
|
||||
import org.skywalking.apm.collector.worker.segment.entity.Segment;
|
||||
import org.skywalking.apm.collector.worker.segment.entity.SegmentDeserialize;
|
||||
import org.skywalking.apm.collector.worker.storage.EsClient;
|
||||
import org.skywalking.apm.collector.worker.tools.CollectionTools;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author pengys5
|
||||
*/
|
||||
public class SegmentTopSearchWithTimeSlice extends AbstractLocalSyncWorker {
|
||||
|
||||
private SegmentTopSearchWithTimeSlice(Role role, ClusterWorkerContext clusterContext,
|
||||
LocalWorkerContext selfContext) {
|
||||
LocalWorkerContext selfContext) {
|
||||
super(role, clusterContext, selfContext);
|
||||
}
|
||||
|
||||
|
|
@ -42,7 +45,7 @@ public class SegmentTopSearchWithTimeSlice extends AbstractLocalSyncWorker {
|
|||
@Override
|
||||
protected void onWork(Object request, Object response) throws Exception {
|
||||
if (request instanceof RequestEntity) {
|
||||
RequestEntity search = (RequestEntity) request;
|
||||
RequestEntity search = (RequestEntity)request;
|
||||
|
||||
SearchRequestBuilder searchRequestBuilder = EsClient.INSTANCE.getClient().prepareSearch(SegmentCostIndex.INDEX);
|
||||
searchRequestBuilder.setTypes(SegmentCostIndex.TYPE_RECORD);
|
||||
|
|
@ -77,15 +80,15 @@ public class SegmentTopSearchWithTimeSlice extends AbstractLocalSyncWorker {
|
|||
for (SearchHit searchHit : searchResponse.getHits().getHits()) {
|
||||
JsonObject topSegmentJson = new JsonObject();
|
||||
topSegmentJson.addProperty("num", num);
|
||||
String segId = (String) searchHit.getSource().get(SegmentCostIndex.SEG_ID);
|
||||
String segId = (String)searchHit.getSource().get(SegmentCostIndex.SEG_ID);
|
||||
topSegmentJson.addProperty(SegmentCostIndex.SEG_ID, segId);
|
||||
topSegmentJson.addProperty(SegmentCostIndex.START_TIME, (Number) searchHit.getSource().get(SegmentCostIndex.START_TIME));
|
||||
topSegmentJson.addProperty(SegmentCostIndex.START_TIME, (Number)searchHit.getSource().get(SegmentCostIndex.START_TIME));
|
||||
if (searchHit.getSource().containsKey(SegmentCostIndex.END_TIME)) {
|
||||
topSegmentJson.addProperty(SegmentCostIndex.END_TIME, (Number) searchHit.getSource().get(SegmentCostIndex.END_TIME));
|
||||
topSegmentJson.addProperty(SegmentCostIndex.END_TIME, (Number)searchHit.getSource().get(SegmentCostIndex.END_TIME));
|
||||
}
|
||||
|
||||
topSegmentJson.addProperty(SegmentCostIndex.OPERATION_NAME, (String) searchHit.getSource().get(SegmentCostIndex.OPERATION_NAME));
|
||||
topSegmentJson.addProperty(SegmentCostIndex.COST, (Number) searchHit.getSource().get(SegmentCostIndex.COST));
|
||||
topSegmentJson.addProperty(SegmentCostIndex.OPERATION_NAME, (String)searchHit.getSource().get(SegmentCostIndex.OPERATION_NAME));
|
||||
topSegmentJson.addProperty(SegmentCostIndex.COST, (Number)searchHit.getSource().get(SegmentCostIndex.COST));
|
||||
|
||||
String segmentSource = EsClient.INSTANCE.getClient().prepareGet(SegmentIndex.INDEX, SegmentIndex.TYPE_RECORD, segId).get().getSourceAsString();
|
||||
logger().debug("segmentSource:" + segmentSource);
|
||||
|
|
@ -115,7 +118,7 @@ public class SegmentTopSearchWithTimeSlice extends AbstractLocalSyncWorker {
|
|||
topSegArray.add(topSegmentJson);
|
||||
}
|
||||
|
||||
JsonObject resJsonObj = (JsonObject) response;
|
||||
JsonObject resJsonObj = (JsonObject)response;
|
||||
resJsonObj.add("result", topSegPaging);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -15,6 +15,12 @@ public enum JsonFileReader {
|
|||
public String read(String path) throws FileNotFoundException {
|
||||
JsonParser jsonParser = new JsonParser();
|
||||
JsonElement jsonElement = jsonParser.parse(new FileReader(path));
|
||||
return jsonElement.toString();
|
||||
}
|
||||
|
||||
public String readSegment(String path) throws FileNotFoundException {
|
||||
JsonParser jsonParser = new JsonParser();
|
||||
JsonElement jsonElement = jsonParser.parse(new FileReader(path));
|
||||
|
||||
StringBuilder segmentBuilder = new StringBuilder();
|
||||
JsonArray segments = jsonElement.getAsJsonArray();
|
||||
|
|
|
|||
|
|
@ -1,26 +1,22 @@
|
|||
package org.skywalking.apm.collector.worker.httpserver;
|
||||
|
||||
import com.google.gson.JsonObject;
|
||||
import org.junit.Assert;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import org.junit.Assert;
|
||||
import org.junit.Test;
|
||||
|
||||
import static org.mockito.Mockito.*;
|
||||
import static org.mockito.Mockito.any;
|
||||
import static org.mockito.Mockito.doThrow;
|
||||
import static org.mockito.Mockito.spy;
|
||||
import static org.mockito.Mockito.verify;
|
||||
|
||||
/**
|
||||
* @author pengys5
|
||||
*/
|
||||
public class AbstractGetTestCase {
|
||||
|
||||
private TestAbstractGet get;
|
||||
|
||||
@Before
|
||||
public void init() {
|
||||
get = mock(TestAbstractGet.class);
|
||||
}
|
||||
private TestAbstractGet get = spy(new TestAbstractGet(TestAbstractGet.WorkerRole.INSTANCE, null, null));
|
||||
|
||||
@Test
|
||||
public void testOnWork() throws Exception {
|
||||
|
|
|
|||
|
|
@ -75,7 +75,7 @@ public class SpanSearchWithIdTestCase {
|
|||
spanSearchWithId.onWork(request, response);
|
||||
|
||||
JsonObject spanJsonObj = response.get(Const.RESULT).getAsJsonObject();
|
||||
String value = spanJsonObj.get("operationName").getAsString();
|
||||
String value = spanJsonObj.get("on").getAsString();
|
||||
Assert.assertEquals("/portal/", value);
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue