You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@skywalking.apache.org by li...@apache.org on 2020/05/07 05:05:00 UTC
[skywalking-agent-test-tool] branch
multiple-segment-analyzer-in-rest created (now 7dc9acf)
This is an automated email from the ASF dual-hosted git repository.
liuhan pushed a change to branch multiple-segment-analyzer-in-rest
in repository https://gitbox.apache.org/repos/asf/skywalking-agent-test-tool.git.
at 7dc9acf support multiple segment analyzer in rest
This branch includes the following new commits:
new 7dc9acf support multiple segment analyzer in rest
The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
[skywalking-agent-test-tool] 01/01: support multiple segment
analyzer in rest
Posted by li...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
liuhan pushed a commit to branch multiple-segment-analyzer-in-rest
in repository https://gitbox.apache.org/repos/asf/skywalking-agent-test-tool.git
commit 7dc9acf90908e97805045dc98458e235957439f8
Author: Mrproliu <mr...@lagou.com>
AuthorDate: Thu May 7 13:04:43 2020 +0800
support multiple segment analyzer in rest
---
.../skywalking/plugin/test/mockcollector/Main.java | 11 ++++++++---
...MockTraceSegmentListCollectServletHandler.java} | 23 ++++++++++++++++++----
...ckTraceSegmentSingleCollectServletHandler.java} | 15 +++++++-------
3 files changed, 35 insertions(+), 14 deletions(-)
diff --git a/mock-collector/src/main/java/org/apache/skywalking/plugin/test/mockcollector/Main.java b/mock-collector/src/main/java/org/apache/skywalking/plugin/test/mockcollector/Main.java
index d42f3ae..0660196 100644
--- a/mock-collector/src/main/java/org/apache/skywalking/plugin/test/mockcollector/Main.java
+++ b/mock-collector/src/main/java/org/apache/skywalking/plugin/test/mockcollector/Main.java
@@ -26,7 +26,8 @@ import org.apache.skywalking.plugin.test.mockcollector.mock.MockManagementServic
import org.apache.skywalking.plugin.test.mockcollector.mock.MockTraceSegmentService;
import org.apache.skywalking.plugin.test.mockcollector.mock.rest.MockManagementServiceKeepAliveHandler;
import org.apache.skywalking.plugin.test.mockcollector.mock.rest.MockManagementServiceReportPropertiesHandler;
-import org.apache.skywalking.plugin.test.mockcollector.mock.rest.MockTraceSegmentCollectServletHandler;
+import org.apache.skywalking.plugin.test.mockcollector.mock.rest.MockTraceSegmentListCollectServletHandler;
+import org.apache.skywalking.plugin.test.mockcollector.mock.rest.MockTraceSegmentSingleCollectServletHandler;
import org.apache.skywalking.plugin.test.mockcollector.service.ClearReceiveDataService;
import org.apache.skywalking.plugin.test.mockcollector.service.DataValidateService;
import org.apache.skywalking.plugin.test.mockcollector.service.GrpcAddressHttpService;
@@ -70,8 +71,12 @@ public class Main {
MockManagementServiceReportPropertiesHandler.SERVLET_PATH
);
servletContextHandler.addServlet(
- MockTraceSegmentCollectServletHandler.class,
- MockTraceSegmentCollectServletHandler.SERVLET_PATH
+ MockTraceSegmentListCollectServletHandler.class,
+ MockTraceSegmentListCollectServletHandler.SERVLET_PATH
+ );
+ servletContextHandler.addServlet(
+ MockTraceSegmentSingleCollectServletHandler.class,
+ MockTraceSegmentSingleCollectServletHandler.SERVLET_PATH
);
jettyServer.setHandler(servletContextHandler);
diff --git a/mock-collector/src/main/java/org/apache/skywalking/plugin/test/mockcollector/mock/rest/MockTraceSegmentCollectServletHandler.java b/mock-collector/src/main/java/org/apache/skywalking/plugin/test/mockcollector/mock/rest/MockTraceSegmentListCollectServletHandler.java
similarity index 66%
copy from mock-collector/src/main/java/org/apache/skywalking/plugin/test/mockcollector/mock/rest/MockTraceSegmentCollectServletHandler.java
copy to mock-collector/src/main/java/org/apache/skywalking/plugin/test/mockcollector/mock/rest/MockTraceSegmentListCollectServletHandler.java
index 876b586..f3c7420 100644
--- a/mock-collector/src/main/java/org/apache/skywalking/plugin/test/mockcollector/mock/rest/MockTraceSegmentCollectServletHandler.java
+++ b/mock-collector/src/main/java/org/apache/skywalking/plugin/test/mockcollector/mock/rest/MockTraceSegmentListCollectServletHandler.java
@@ -19,15 +19,19 @@
package org.apache.skywalking.plugin.test.mockcollector.mock.rest;
import com.google.common.io.CharStreams;
+import com.google.gson.Gson;
+import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
import java.io.IOException;
+import java.util.ArrayList;
import javax.servlet.http.HttpServletRequest;
import org.apache.skywalking.apm.network.language.agent.v3.SegmentObject;
import org.apache.skywalking.plugin.test.mockcollector.util.ProtoBufJsonUtils;
import org.apache.skywalking.plugin.test.mockcollector.util.TraceSegmentHandler;
-public class MockTraceSegmentCollectServletHandler extends JettyJsonHandler {
+public class MockTraceSegmentListCollectServletHandler extends JettyJsonHandler {
public static final String SERVLET_PATH = "/v3/segments";
+ private final Gson gson = new Gson();
@Override
protected JsonElement doGet(final HttpServletRequest req) {
@@ -38,10 +42,21 @@ public class MockTraceSegmentCollectServletHandler extends JettyJsonHandler {
protected JsonElement doPost(final HttpServletRequest req) throws IOException {
String json = CharStreams.toString(req.getReader());
- SegmentObject.Builder upstreamSegmentBuilder = SegmentObject.newBuilder();
- ProtoBufJsonUtils.fromJSON(json, upstreamSegmentBuilder);
+ final JsonArray array = gson.fromJson(json, JsonArray.class);
+ if (array.size() == 0) {
+ return null;
+ }
- TraceSegmentHandler.parseSegment(upstreamSegmentBuilder.build());
+ final ArrayList<SegmentObject> segments = new ArrayList<>(array.size());
+ for (JsonElement element : array) {
+ SegmentObject.Builder upstreamSegmentBuilder = SegmentObject.newBuilder();
+ ProtoBufJsonUtils.fromJSON(element.toString(), upstreamSegmentBuilder);
+ segments.add(upstreamSegmentBuilder.build());
+ }
+
+ for (SegmentObject segment : segments) {
+ TraceSegmentHandler.parseSegment(segment);
+ }
return null;
}
}
diff --git a/mock-collector/src/main/java/org/apache/skywalking/plugin/test/mockcollector/mock/rest/MockTraceSegmentCollectServletHandler.java b/mock-collector/src/main/java/org/apache/skywalking/plugin/test/mockcollector/mock/rest/MockTraceSegmentSingleCollectServletHandler.java
similarity index 81%
rename from mock-collector/src/main/java/org/apache/skywalking/plugin/test/mockcollector/mock/rest/MockTraceSegmentCollectServletHandler.java
rename to mock-collector/src/main/java/org/apache/skywalking/plugin/test/mockcollector/mock/rest/MockTraceSegmentSingleCollectServletHandler.java
index 876b586..1396389 100644
--- a/mock-collector/src/main/java/org/apache/skywalking/plugin/test/mockcollector/mock/rest/MockTraceSegmentCollectServletHandler.java
+++ b/mock-collector/src/main/java/org/apache/skywalking/plugin/test/mockcollector/mock/rest/MockTraceSegmentSingleCollectServletHandler.java
@@ -20,14 +20,15 @@ package org.apache.skywalking.plugin.test.mockcollector.mock.rest;
import com.google.common.io.CharStreams;
import com.google.gson.JsonElement;
-import java.io.IOException;
-import javax.servlet.http.HttpServletRequest;
import org.apache.skywalking.apm.network.language.agent.v3.SegmentObject;
import org.apache.skywalking.plugin.test.mockcollector.util.ProtoBufJsonUtils;
import org.apache.skywalking.plugin.test.mockcollector.util.TraceSegmentHandler;
-public class MockTraceSegmentCollectServletHandler extends JettyJsonHandler {
- public static final String SERVLET_PATH = "/v3/segments";
+import javax.servlet.http.HttpServletRequest;
+import java.io.IOException;
+
+public class MockTraceSegmentSingleCollectServletHandler extends JettyJsonHandler {
+ public static final String SERVLET_PATH = "/v3/segment";
@Override
protected JsonElement doGet(final HttpServletRequest req) {
@@ -38,10 +39,10 @@ public class MockTraceSegmentCollectServletHandler extends JettyJsonHandler {
protected JsonElement doPost(final HttpServletRequest req) throws IOException {
String json = CharStreams.toString(req.getReader());
- SegmentObject.Builder upstreamSegmentBuilder = SegmentObject.newBuilder();
- ProtoBufJsonUtils.fromJSON(json, upstreamSegmentBuilder);
+ SegmentObject.Builder segmentBuilder = SegmentObject.newBuilder();
+ ProtoBufJsonUtils.fromJSON(json, segmentBuilder);
- TraceSegmentHandler.parseSegment(upstreamSegmentBuilder.build());
+ TraceSegmentHandler.parseSegment(segmentBuilder.build());
return null;
}
}