提交 bec40b6e 编写于 作者: P pengys5

fixed testcase error

上级 7e17692d
......@@ -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());
......
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();
......
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);
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册