You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@skywalking.apache.org by ke...@apache.org on 2020/01/17 12:34:07 UTC
[skywalking] branch master updated: Drop support of protocol v1
(sw3) (#4244)
This is an automated email from the ASF dual-hosted git repository.
kezhenxu94 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/skywalking.git
The following commit(s) were added to refs/heads/master by this push:
new 019af3e Drop support of protocol v1 (sw3) (#4244)
019af3e is described below
commit 019af3e3456fff49500eb6440b94eb95aa3a4ed9
Author: kezhenxu94 <ke...@apache.org>
AuthorDate: Fri Jan 17 20:33:52 2020 +0800
Drop support of protocol v1 (sw3) (#4244)
* Drop support of protocol v1 (sw3)
* Remove versioning logic further
* Remove more version5-only classes
* Commit missing files
* Update submodule and address review comment
* Fix failed tests
---
.../skywalking/apm/network/ProtocolVersion.java | 23 +-
apm-protocol/apm-network/src/main/proto | 2 +-
.../apm/network/trace/proto/GRPCNoServerTest.java | 10 +-
.../skywalking/apm/agent/core/conf/Config.java | 24 +-
.../apm/agent/core/context/ContextCarrier.java | 58 +----
.../apm/agent/core/context/SW3CarrierItem.java | 38 ---
.../core/context/ContextCarrierV2HeaderTest.java | 109 ++------
.../apm/agent/core/context/ContextManagerTest.java | 25 +-
.../activemq/ActiveMQConsumerInterceptorTest.java | 8 -
.../apm/plugin/dubbo/DubboInterceptorTest.java | 11 +-
.../apm/plugin/dubbo/DubboInterceptorTest.java | 11 +-
.../jetty/v9/server/HandleInterceptorTest.java | 12 +-
.../plugin/kafka/KafkaConsumerInterceptorTest.java | 11 +-
.../plugin/motan/MotanProviderInterceptorTest.java | 12 +-
.../pulsar/PulsarConsumerInterceptorTest.java | 13 +-
.../rabbitmq/RabbitMQConsumerInterceptorTest.java | 3 +-
.../SynchronousDispatcherInterceptorTest.java | 24 --
.../sofarpc/SofaRpcProviderInterceptorTest.java | 13 +-
.../apm/plugin/struts2/Struts2InterceptorTest.java | 12 +-
.../tomcat78x/TomcatInvokeInterceptorTest.java | 13 +-
.../undertow/v2x/RootHandlerInterceptorTest.java | 8 -
.../plugin/undertow/v2x/TracingHandlerTest.java | 7 +-
.../opentracing/SkywalkingSpanActivationTest.java | 24 +-
docs/en/protocols/README.md | 14 +-
...ross-Process-Propagation-Headers-Protocol-v1.md | 62 -----
...ross-Process-Propagation-Headers-Protocol-v2.md | 7 +-
docs/en/protocols/Trace-Data-Protocol-v1.md | 213 ----------------
.../en/setup/service-agent/java-agent/Namespace.md | 4 +-
docs/en/setup/service-agent/java-agent/README.md | 2 -
.../oap/server/core/query/TraceQueryService.java | 138 +---------
.../oap/server/library/buffer/BufferData.java | 5 +-
.../library/buffer/BufferStreamTestCase.java | 69 -----
.../receiver/jvm/provider/JVMModuleProvider.java | 1 -
.../provider/handler/JVMMetricsServiceHandler.java | 57 -----
.../handler/JVMMetricsServiceHandlerMainTest.java | 143 -----------
.../register/provider/RegisterModuleProvider.java | 24 +-
.../v5/grpc/ApplicationRegisterHandler.java | 59 -----
.../v5/grpc/InstanceDiscoveryServiceHandler.java | 98 -------
.../grpc/NetworkAddressRegisterServiceHandler.java | 63 -----
.../v5/grpc/ServiceNameDiscoveryHandler.java | 65 -----
.../v5/rest/ApplicationRegisterServletHandler.java | 71 ------
.../v5/rest/InstanceDiscoveryServletHandler.java | 102 --------
.../v5/rest/InstanceHeartBeatServletHandler.java | 82 ------
.../rest/NetworkAddressRegisterServletHandler.java | 76 ------
.../rest/ServiceNameDiscoveryServiceHandler.java | 86 -------
.../v5/ApplicationRegisterHandlerTestCase.java | 48 ----
.../InstanceDiscoveryServiceHandlerTestCase.java | 53 ----
.../handler/v5/InstanceHeartBeatTestCase.java | 42 ---
...tworkAddressRegisterServiceHandlerTestCase.java | 46 ----
.../v5/ServiceNameDiscoveryHandlerTestCase.java | 49 ----
.../trace/provider/TraceModuleProvider.java | 14 +-
.../provider/handler/v5/grpc/SegmentCounter.java | 34 ---
.../v5/grpc/TraceSegmentServiceHandler.java | 70 -----
.../v5/rest/TraceSegmentServletHandler.java | 78 ------
.../rest/reader/KeyWithStringValueJsonReader.java | 54 ----
.../handler/v5/rest/reader/LogJsonReader.java | 60 -----
.../v5/rest/reader/ReferenceJsonReader.java | 92 -------
.../handler/v5/rest/reader/SegmentJsonReader.java | 77 ------
.../handler/v5/rest/reader/SpanJsonReader.java | 126 ---------
.../handler/v5/rest/reader/TraceSegment.java | 45 ----
.../v5/rest/reader/TraceSegmentJsonReader.java | 64 -----
.../handler/v5/rest/reader/UniqueIdJsonReader.java | 40 ---
.../trace/provider/parser/SegmentParse.java | 284 ---------------------
.../trace/provider/parser/SegmentParseV2.java | 55 ++--
.../parser/SegmentParserListenerManager.java | 2 +-
.../parser/decorator/ReferenceDecorator.java | 129 ++--------
.../provider/parser/decorator/SegmentCoreInfo.java | 3 +-
.../parser/decorator/SegmentDecorator.java | 45 +---
.../provider/parser/decorator/SpanDecorator.java | 168 ++++--------
.../listener/endpoint/MultiScopesSpanListener.java | 21 +-
.../listener/segment/SegmentSpanListener.java | 23 +-
.../SegmentStandardizationWorker.java | 4 +-
.../server/receiver/trace/mock/AgentDataMock.java | 102 --------
.../server/receiver/trace/mock/RegisterMock.java | 80 ------
.../server/receiver/trace/mock/ServiceAMock.java | 116 ---------
.../server/receiver/trace/mock/ServiceBMock.java | 150 -----------
.../server/receiver/trace/mock/ServiceCMock.java | 103 --------
.../receiver/trace/mock/UniqueIdBuilder.java | 39 ---
.../skywalking/plugin/test/mockcollector/Main.java | 5 -
.../service/MockApplicationRegisterService.java | 60 -----
.../service/MockJVMMetricsService.java | 33 ---
.../service/MockJVMMetricsV1Service.java | 34 ---
.../service/MockServiceNameDiscoveryService.java | 39 ---
.../service/MockTraceSegmentV1Service.java | 81 ------
84 files changed, 253 insertions(+), 4227 deletions(-)
diff --git a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/handler/v5/rest/reader/StreamJsonReader.java b/apm-protocol/apm-network/src/main/java/org/apache/skywalking/apm/network/ProtocolVersion.java
similarity index 71%
rename from oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/handler/v5/rest/reader/StreamJsonReader.java
rename to apm-protocol/apm-network/src/main/java/org/apache/skywalking/apm/network/ProtocolVersion.java
index cc144c6..899c281 100644
--- a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/handler/v5/rest/reader/StreamJsonReader.java
+++ b/apm-protocol/apm-network/src/main/java/org/apache/skywalking/apm/network/ProtocolVersion.java
@@ -16,14 +16,23 @@
*
*/
-package org.apache.skywalking.oap.server.receiver.trace.provider.handler.v5.rest.reader;
-
-import com.google.gson.stream.JsonReader;
-import java.io.IOException;
+package org.apache.skywalking.apm.network;
/**
- * @author peng-yongsheng
+ * The version of the protocol between agent and backend.
+ *
+ * @author kezhenxu94
*/
-public interface StreamJsonReader<T> {
- T read(JsonReader reader) throws IOException;
+public enum ProtocolVersion {
+ V2(2);
+
+ private final int number;
+
+ ProtocolVersion(final int number) {
+ this.number = number;
+ }
+
+ public int number() {
+ return number;
+ }
}
diff --git a/apm-protocol/apm-network/src/main/proto b/apm-protocol/apm-network/src/main/proto
index 7ccf1cf..eebd016 160000
--- a/apm-protocol/apm-network/src/main/proto
+++ b/apm-protocol/apm-network/src/main/proto
@@ -1 +1 @@
-Subproject commit 7ccf1cf6eb8001f61a76e2c8d200629a4807fc53
+Subproject commit eebd016e32b0808416923acf04dcd31d9eb86c09
diff --git a/apm-protocol/apm-network/src/test/java/org/apache/skywalking/apm/network/trace/proto/GRPCNoServerTest.java b/apm-protocol/apm-network/src/test/java/org/apache/skywalking/apm/network/trace/proto/GRPCNoServerTest.java
index 45e32ee..d27914b 100644
--- a/apm-protocol/apm-network/src/test/java/org/apache/skywalking/apm/network/trace/proto/GRPCNoServerTest.java
+++ b/apm-protocol/apm-network/src/test/java/org/apache/skywalking/apm/network/trace/proto/GRPCNoServerTest.java
@@ -26,9 +26,9 @@ import io.grpc.StatusRuntimeException;
import io.grpc.internal.DnsNameResolverProvider;
import io.grpc.netty.NettyChannelBuilder;
import io.grpc.stub.StreamObserver;
+import org.apache.skywalking.apm.network.common.Commands;
+import org.apache.skywalking.apm.network.language.agent.v2.TraceSegmentReportServiceGrpc;
import org.junit.Assert;
-import org.apache.skywalking.apm.network.language.agent.Downstream;
-import org.apache.skywalking.apm.network.language.agent.TraceSegmentServiceGrpc;
import org.apache.skywalking.apm.network.language.agent.UpstreamSegment;
/**
@@ -42,10 +42,10 @@ public class GRPCNoServerTest {
.maxInboundMessageSize(1024 * 1024 * 50)
.usePlaintext();
ManagedChannel channel = channelBuilder.build();
- TraceSegmentServiceGrpc.TraceSegmentServiceStub serviceStub = TraceSegmentServiceGrpc.newStub(channel);
+ TraceSegmentReportServiceGrpc.TraceSegmentReportServiceStub serviceStub = TraceSegmentReportServiceGrpc.newStub(channel);
final Status[] status = {null};
- StreamObserver<UpstreamSegment> streamObserver = serviceStub.collect(new StreamObserver<Downstream>() {
- @Override public void onNext(Downstream value) {
+ StreamObserver<UpstreamSegment> streamObserver = serviceStub.collect(new StreamObserver<Commands>() {
+ @Override public void onNext(Commands value) {
}
diff --git a/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/conf/Config.java b/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/conf/Config.java
index ff12bdb..084e819 100755
--- a/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/conf/Config.java
+++ b/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/conf/Config.java
@@ -53,7 +53,7 @@ public class Config {
public static String AUTHENTICATION = "";
/**
- * Negative or zero means off, by default. {@link #SAMPLE_N_PER_3_SECS} means sampling N {@link TraceSegment} in
+ * Negative or zero means off, by default. {@code #SAMPLE_N_PER_3_SECS} means sampling N {@link TraceSegment} in
* 3 seconds tops.
*/
public static int SAMPLE_N_PER_3_SECS = -1;
@@ -64,29 +64,19 @@ public class Config {
public static String IGNORE_SUFFIX = ".jpg,.jpeg,.js,.css,.png,.bmp,.gif,.ico,.mp3,.mp4,.html,.svg";
/**
- * The max number of spans in a single segment. Through this config item, skywalking keep your application
+ * The max number of spans in a single segment. Through this config item, SkyWalking keep your application
* memory cost estimated.
*/
public static int SPAN_LIMIT_PER_SEGMENT = 300;
/**
- * If true, skywalking agent will save all instrumented classes files in `/debugging` folder. Skywalking team
+ * If true, SkyWalking agent will save all instrumented classes files in `/debugging` folder. SkyWalking team
* may ask for these files in order to resolve compatible problem.
*/
public static boolean IS_OPEN_DEBUGGING_CLASS = false;
/**
- * Active V2 header in default
- */
- public static boolean ACTIVE_V2_HEADER = true;
-
- /**
- * Deactive V1 header in default
- */
- public static boolean ACTIVE_V1_HEADER = false;
-
- /**
- * The identify of the instance
+ * The identifier of the instance
*/
public static String INSTANCE_UUID = "";
@@ -95,7 +85,7 @@ public class Config {
* e.g.
* agent.instance_properties[org]=apache
*/
- public static Map<String, String> INSTANCE_PROPERTIES = new HashMap<String, String>();
+ public static Map<String, String> INSTANCE_PROPERTIES = new HashMap<>();
/**
* How depth the agent goes, when log cause exceptions.
@@ -260,7 +250,7 @@ public class Config {
* Some information after custom enhancements, this configuration is used by the custom enhancement plugin.
* And using Map CONTEXT for avoiding classloader isolation issue.
*/
- public static Map<String, Object> CONTEXT = new HashMap<String, Object>();
+ public static Map<String, Object> CONTEXT = new HashMap<>();
}
public static class Tomcat {
@@ -341,7 +331,7 @@ public class Config {
* Operation name group rules
*/
public static class OPGroup {
- /**
+ /*
* Since 6.6.0, exit span is not requesting endpoint register,
* this group rule is not required.
*
diff --git a/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/context/ContextCarrier.java b/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/context/ContextCarrier.java
index 91d728e..33d4aed 100644
--- a/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/context/ContextCarrier.java
+++ b/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/context/ContextCarrier.java
@@ -21,7 +21,6 @@ package org.apache.skywalking.apm.agent.core.context;
import java.io.Serializable;
import java.util.List;
import org.apache.skywalking.apm.agent.core.base64.Base64;
-import org.apache.skywalking.apm.agent.core.conf.Config;
import org.apache.skywalking.apm.agent.core.context.ids.DistributedTraceId;
import org.apache.skywalking.apm.agent.core.context.ids.ID;
import org.apache.skywalking.apm.agent.core.context.ids.PropagatedTraceId;
@@ -77,21 +76,8 @@ public class ContextCarrier implements Serializable {
private DistributedTraceId primaryDistributedTraceId;
public CarrierItem items() {
- CarrierItemHead head;
- if (Config.Agent.ACTIVE_V2_HEADER && Config.Agent.ACTIVE_V1_HEADER) {
- SW3CarrierItem carrierItem = new SW3CarrierItem(this, null);
- SW6CarrierItem sw6CarrierItem = new SW6CarrierItem(this, carrierItem);
- head = new CarrierItemHead(sw6CarrierItem);
- } else if (Config.Agent.ACTIVE_V2_HEADER) {
- SW6CarrierItem sw6CarrierItem = new SW6CarrierItem(this, null);
- head = new CarrierItemHead(sw6CarrierItem);
- } else if (Config.Agent.ACTIVE_V1_HEADER) {
- SW3CarrierItem carrierItem = new SW3CarrierItem(this, null);
- head = new CarrierItemHead(carrierItem);
- } else {
- throw new IllegalArgumentException("At least active v1 or v2 header.");
- }
- return head;
+ SW6CarrierItem sw6CarrierItem = new SW6CarrierItem(this, null);
+ return new CarrierItemHead(sw6CarrierItem);
}
/**
@@ -101,36 +87,16 @@ public class ContextCarrier implements Serializable {
*/
String serialize(HeaderVersion version) {
if (this.isValid(version)) {
- if (HeaderVersion.v1.equals(version)) {
- if (Config.Agent.ACTIVE_V1_HEADER) {
- return StringUtil.join('|',
- this.getTraceSegmentId().encode(),
- this.getSpanId() + "",
- this.getParentServiceInstanceId() + "",
- this.getEntryServiceInstanceId() + "",
- this.getPeerHost(),
- this.getEntryEndpointName(),
- this.getParentEndpointName(),
- this.getPrimaryDistributedTraceId().encode());
- } else {
- return "";
- }
- } else {
- if (Config.Agent.ACTIVE_V2_HEADER) {
- return StringUtil.join('-',
- "1",
- Base64.encode(this.getPrimaryDistributedTraceId().encode()),
- Base64.encode(this.getTraceSegmentId().encode()),
- this.getSpanId() + "",
- this.getParentServiceInstanceId() + "",
- this.getEntryServiceInstanceId() + "",
- Base64.encode(this.getPeerHost()),
- Base64.encode(this.getEntryEndpointName()),
- Base64.encode(this.getParentEndpointName()));
- } else {
- return "";
- }
- }
+ return StringUtil.join('-',
+ "1",
+ Base64.encode(this.getPrimaryDistributedTraceId().encode()),
+ Base64.encode(this.getTraceSegmentId().encode()),
+ this.getSpanId() + "",
+ this.getParentServiceInstanceId() + "",
+ this.getEntryServiceInstanceId() + "",
+ Base64.encode(this.getPeerHost()),
+ Base64.encode(this.getEntryEndpointName()),
+ Base64.encode(this.getParentEndpointName()));
} else {
return "";
}
diff --git a/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/context/SW3CarrierItem.java b/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/context/SW3CarrierItem.java
deleted file mode 100644
index 5d05778..0000000
--- a/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/context/SW3CarrierItem.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-
-package org.apache.skywalking.apm.agent.core.context;
-
-/**
- * @author wusheng
- */
-public class SW3CarrierItem extends CarrierItem {
- public static final String HEADER_NAME = "sw3";
- private ContextCarrier carrier;
-
- public SW3CarrierItem(ContextCarrier carrier, CarrierItem next) {
- super(HEADER_NAME, carrier.serialize(ContextCarrier.HeaderVersion.v1), next);
- this.carrier = carrier;
- }
-
- @Override
- public void setHeadValue(String headValue) {
- carrier.deserialize(headValue, ContextCarrier.HeaderVersion.v1);
- }
-}
diff --git a/apm-sniffer/apm-agent-core/src/test/java/org/apache/skywalking/apm/agent/core/context/ContextCarrierV2HeaderTest.java b/apm-sniffer/apm-agent-core/src/test/java/org/apache/skywalking/apm/agent/core/context/ContextCarrierV2HeaderTest.java
index a2821d7..9ad3b77 100644
--- a/apm-sniffer/apm-agent-core/src/test/java/org/apache/skywalking/apm/agent/core/context/ContextCarrierV2HeaderTest.java
+++ b/apm-sniffer/apm-agent-core/src/test/java/org/apache/skywalking/apm/agent/core/context/ContextCarrierV2HeaderTest.java
@@ -20,7 +20,6 @@ package org.apache.skywalking.apm.agent.core.context;
import java.util.ArrayList;
import java.util.List;
-import org.apache.skywalking.apm.agent.core.conf.Config;
import org.apache.skywalking.apm.agent.core.context.ids.DistributedTraceId;
import org.apache.skywalking.apm.agent.core.context.ids.ID;
import org.apache.skywalking.apm.agent.core.context.ids.PropagatedTraceId;
@@ -28,30 +27,6 @@ import org.junit.Assert;
import org.junit.Test;
public class ContextCarrierV2HeaderTest {
- @Test
- public void testCompatibleHeaderKeys() {
- Config.Agent.ACTIVE_V1_HEADER = true;
- ContextCarrier contextCarrier = new ContextCarrier();
- CarrierItem next = contextCarrier.items();
- boolean hasSW3 = false;
- boolean hasSW6 = false;
- try {
- while (next.hasNext()) {
- next = next.next();
- if (next.getHeadKey().equals("sw3")) {
- hasSW3 = true;
- } else if (next.getHeadKey().equals("sw6")) {
- hasSW6 = true;
- } else {
- Assert.fail("unexpected key");
- }
- }
- } finally {
- Config.Agent.ACTIVE_V1_HEADER = false;
- }
- Assert.assertTrue(hasSW3);
- Assert.assertTrue(hasSW6);
- }
@Test
public void testDeserializeV2Header() {
@@ -59,31 +34,7 @@ public class ContextCarrierV2HeaderTest {
CarrierItem next = contextCarrier.items();
while (next.hasNext()) {
next = next.next();
- if (next.getHeadKey().equals("sw3")) {
- } else if (next.getHeadKey().equals("sw6")) {
- next.setHeadValue("1-My40LjU=-MS4yLjM=-4-1-1-IzEyNy4wLjAuMTo4MDgw--");
- } else {
- Assert.fail("unexpected key");
- }
- }
-
- Assert.assertTrue(contextCarrier.isValid());
-
- Config.Agent.ACTIVE_V1_HEADER = true;
- try {
- contextCarrier = new ContextCarrier();
- next = contextCarrier.items();
- while (next.hasNext()) {
- next = next.next();
- if (next.getHeadKey().equals("sw3")) {
- next.setHeadValue("1.2343.234234234|1|1|1|#127.0.0.1:8080|#/portal/|#/testEntrySpan|1.2343.234234234");
- } else if (next.getHeadKey().equals("sw6")) {
- } else {
- Assert.fail("unexpected key");
- }
- }
- } finally {
- Config.Agent.ACTIVE_V1_HEADER = false;
+ next.setHeadValue("1-My40LjU=-MS4yLjM=-4-1-1-IzEyNy4wLjAuMTo4MDgw--");
}
Assert.assertTrue(contextCarrier.isValid());
@@ -91,7 +42,7 @@ public class ContextCarrierV2HeaderTest {
@Test
public void testSerializeV2Header() {
- List<DistributedTraceId> distributedTraceIds = new ArrayList<DistributedTraceId>();
+ List<DistributedTraceId> distributedTraceIds = new ArrayList<>();
distributedTraceIds.add(new PropagatedTraceId("3.4.5"));
ContextCarrier contextCarrier = new ContextCarrier();
@@ -107,37 +58,18 @@ public class ContextCarrierV2HeaderTest {
CarrierItem next = contextCarrier.items();
while (next.hasNext()) {
next = next.next();
- if (next.getHeadKey().equals("sw3")) {
- Assert.assertEquals("", next.getHeadValue());
- } else if (next.getHeadKey().equals("sw6")) {
- /**
- * sampleFlag-traceId-segmentId-spanId-parentAppInstId-entryAppInstId-peerHost-entryEndpoint-parentEndpoint
- *
- * "1-3.4.5-1.2.3-4-1-1-#127.0.0.1:8080-#/portal-123"
- */
- Assert.assertEquals("1-My40LjU=-MS4yLjM=-4-1-1-IzEyNy4wLjAuMTo4MDgw-Iy9wb3J0YWw=-MTIz", next.getHeadValue());
- } else {
- Assert.fail("unexpected key");
- }
+ /*
+ * sampleFlag-traceId-segmentId-spanId-parentAppInstId-entryAppInstId-peerHost-entryEndpoint-parentEndpoint
+ *
+ * "1-3.4.5-1.2.3-4-1-1-#127.0.0.1:8080-#/portal-123"
+ */
+ Assert.assertEquals("1-My40LjU=-MS4yLjM=-4-1-1-IzEyNy4wLjAuMTo4MDgw-Iy9wb3J0YWw=-MTIz", next.getHeadValue());
}
- Config.Agent.ACTIVE_V1_HEADER = true;
- try {
- next = contextCarrier.items();
- while (next.hasNext()) {
- next = next.next();
- if (next.getHeadKey().equals("sw3")) {
- Assert.assertEquals("1.2.3|4|1|1|#127.0.0.1:8080|#/portal|123|3.4.5", next.getHeadValue());
- } else if (next.getHeadKey().equals("sw6")) {
- //TODO, no BASE64
- Assert.assertEquals("1-My40LjU=-MS4yLjM=-4-1-1-IzEyNy4wLjAuMTo4MDgw-Iy9wb3J0YWw=-MTIz", next.getHeadValue());
- } else {
- Assert.fail("unexpected key");
- }
- }
-
- } finally {
- Config.Agent.ACTIVE_V1_HEADER = false;
+ next = contextCarrier.items();
+ while (next.hasNext()) {
+ next = next.next();
+ Assert.assertEquals("1-My40LjU=-MS4yLjM=-4-1-1-IzEyNy4wLjAuMTo4MDgw-Iy9wb3J0YWw=-MTIz", next.getHeadValue());
}
Assert.assertTrue(contextCarrier.isValid());
@@ -145,7 +77,7 @@ public class ContextCarrierV2HeaderTest {
@Test
public void testV2HeaderAccurate() {
- List<DistributedTraceId> distributedTraceIds = new ArrayList<DistributedTraceId>();
+ List<DistributedTraceId> distributedTraceIds = new ArrayList<>();
distributedTraceIds.add(new PropagatedTraceId("3.4.5"));
ContextCarrier contextCarrier = new ContextCarrier();
@@ -162,25 +94,14 @@ public class ContextCarrierV2HeaderTest {
String headerValue = null;
while (next.hasNext()) {
next = next.next();
- if (next.getHeadKey().equals("sw3")) {
- Assert.assertEquals("", next.getHeadValue());
- } else if (next.getHeadKey().equals("sw6")) {
- headerValue = next.getHeadValue();
- } else {
- Assert.fail("unexpected key");
- }
+ headerValue = next.getHeadValue();
}
ContextCarrier contextCarrier2 = new ContextCarrier();
next = contextCarrier2.items();
while (next.hasNext()) {
next = next.next();
- if (next.getHeadKey().equals("sw3")) {
- } else if (next.getHeadKey().equals("sw6")) {
- next.setHeadValue(headerValue);
- } else {
- Assert.fail("unexpected key");
- }
+ next.setHeadValue(headerValue);
}
Assert.assertTrue(contextCarrier2.isValid());
diff --git a/apm-sniffer/apm-agent-core/src/test/java/org/apache/skywalking/apm/agent/core/context/ContextManagerTest.java b/apm-sniffer/apm-agent-core/src/test/java/org/apache/skywalking/apm/agent/core/context/ContextManagerTest.java
index 4c56c7c..66b435e 100644
--- a/apm-sniffer/apm-agent-core/src/test/java/org/apache/skywalking/apm/agent/core/context/ContextManagerTest.java
+++ b/apm-sniffer/apm-agent-core/src/test/java/org/apache/skywalking/apm/agent/core/context/ContextManagerTest.java
@@ -30,6 +30,11 @@ import org.apache.skywalking.apm.agent.core.context.util.SegmentHelper;
import org.apache.skywalking.apm.agent.core.context.util.TraceSegmentRefHelper;
import org.apache.skywalking.apm.agent.core.test.tools.AgentServiceRule;
import org.apache.skywalking.apm.agent.core.test.tools.TracingSegmentRunner;
+import org.apache.skywalking.apm.network.common.KeyStringValuePair;
+import org.apache.skywalking.apm.network.language.agent.v2.Log;
+import org.apache.skywalking.apm.network.language.agent.v2.SegmentObject;
+import org.apache.skywalking.apm.network.language.agent.v2.SegmentReference;
+import org.apache.skywalking.apm.network.language.agent.v2.SpanObjectV2;
import org.hamcrest.MatcherAssert;
import org.junit.*;
import org.junit.runner.RunWith;
@@ -43,12 +48,7 @@ import org.apache.skywalking.apm.agent.core.context.util.SpanHelper;
import org.apache.skywalking.apm.agent.core.dictionary.DictionaryUtil;
import org.apache.skywalking.apm.agent.core.test.tools.SegmentStorage;
import org.apache.skywalking.apm.agent.core.test.tools.SegmentStoragePoint;
-import org.apache.skywalking.apm.network.language.agent.KeyWithStringValue;
-import org.apache.skywalking.apm.network.language.agent.LogMessage;
-import org.apache.skywalking.apm.network.language.agent.SpanObject;
import org.apache.skywalking.apm.network.language.agent.SpanType;
-import org.apache.skywalking.apm.network.language.agent.TraceSegmentObject;
-import org.apache.skywalking.apm.network.language.agent.TraceSegmentReference;
import org.apache.skywalking.apm.network.language.agent.UpstreamSegment;
import org.apache.skywalking.apm.network.trace.component.ComponentsDefine;
@@ -256,19 +256,18 @@ public class ContextManagerTest {
UpstreamSegment upstreamSegment = actualSegment.transform();
assertThat(upstreamSegment.getGlobalTraceIdsCount(), is(1));
- TraceSegmentObject traceSegmentObject = TraceSegmentObject.parseFrom(upstreamSegment.getSegment());
- TraceSegmentReference reference = traceSegmentObject.getSpans(1).getRefs(0);
+ SegmentObject traceSegmentObject = SegmentObject.parseFrom(upstreamSegment.getSegment());
+ SegmentReference reference = traceSegmentObject.getSpans(1).getRefs(0);
- assertThat(reference.getEntryServiceName(), is("/portal/"));
assertThat(reference.getNetworkAddress(), is("127.0.0.1:8080"));
assertThat(reference.getParentSpanId(), is(3));
- assertThat(traceSegmentObject.getApplicationId(), is(1));
+ assertThat(traceSegmentObject.getServiceId(), is(1));
assertThat(traceSegmentObject.getSpans(1).getRefsCount(), is(1));
assertThat(traceSegmentObject.getSpansCount(), is(2));
- SpanObject actualSpan = traceSegmentObject.getSpans(1);
+ SpanObjectV2 actualSpan = traceSegmentObject.getSpans(1);
assertThat(actualSpan.getComponentId(), is(3));
assertThat(actualSpan.getComponent(), is(""));
@@ -277,7 +276,7 @@ public class ContextManagerTest {
assertThat(actualSpan.getSpanId(), is(0));
assertThat(actualSpan.getSpanType(), is(SpanType.Entry));
- SpanObject exitSpanObject = traceSegmentObject.getSpans(0);
+ SpanObjectV2 exitSpanObject = traceSegmentObject.getSpans(0);
assertThat(exitSpanObject.getComponentId(), is(2));
assertThat(exitSpanObject.getComponent(), is(""));
assertThat(exitSpanObject.getSpanType(), is(SpanType.Exit));
@@ -287,9 +286,9 @@ public class ContextManagerTest {
assertThat(exitSpanObject.getSpanId(), is(1));
assertThat(exitSpanObject.getLogsCount(), is(1));
- LogMessage logMessage = exitSpanObject.getLogs(0);
+ Log logMessage = exitSpanObject.getLogs(0);
assertThat(logMessage.getDataCount(), is(4));
- List<KeyWithStringValue> values = logMessage.getDataList();
+ List<KeyStringValuePair> values = logMessage.getDataList();
assertThat(values.get(0).getValue(), is("error"));
assertThat(values.get(1).getValue(), is(RuntimeException.class.getName()));
diff --git a/apm-sniffer/apm-sdk-plugin/activemq-5.x-plugin/src/test/java/org/apache/skywalking/apm/plugin/activemq/ActiveMQConsumerInterceptorTest.java b/apm-sniffer/apm-sdk-plugin/activemq-5.x-plugin/src/test/java/org/apache/skywalking/apm/plugin/activemq/ActiveMQConsumerInterceptorTest.java
index 38e7dec..66d2a62 100644
--- a/apm-sniffer/apm-sdk-plugin/activemq-5.x-plugin/src/test/java/org/apache/skywalking/apm/plugin/activemq/ActiveMQConsumerInterceptorTest.java
+++ b/apm-sniffer/apm-sdk-plugin/activemq-5.x-plugin/src/test/java/org/apache/skywalking/apm/plugin/activemq/ActiveMQConsumerInterceptorTest.java
@@ -23,7 +23,6 @@ import org.apache.activemq.command.Message;
import org.apache.activemq.command.MessageDispatch;
import org.apache.activemq.command.Response;
import org.apache.activemq.state.CommandVisitor;
-import org.apache.skywalking.apm.agent.core.conf.Config;
import org.apache.skywalking.apm.agent.core.context.trace.TraceSegment;
import org.apache.skywalking.apm.agent.core.plugin.interceptor.enhance.EnhancedInstance;
import org.apache.skywalking.apm.agent.test.tools.AgentServiceRule;
@@ -126,7 +125,6 @@ public class ActiveMQConsumerInterceptorTest {
@Before
public void setUp() throws IOException {
- Config.Agent.ACTIVE_V1_HEADER = true;
activeMQConsumerInterceptor = new ActiveMQConsumerInterceptor();
messageDispatch = new MessageDispatch();
@@ -134,17 +132,11 @@ public class ActiveMQConsumerInterceptorTest {
des.setPhysicalName("test");
messageDispatch.setDestination(des);
Message msg = new Msg();
- msg.setProperty("sw3", "");
messageDispatch.setMessage(msg);
arguments = new Object[] {messageDispatch};
argumentType = null;
}
- @After
- public void clear() {
- Config.Agent.ACTIVE_V1_HEADER = false;
- }
-
@Test
public void testConsumerWithoutMessage() throws Throwable {
activeMQConsumerInterceptor.beforeMethod(enhancedInstance, null, arguments, null, null);
diff --git a/apm-sniffer/apm-sdk-plugin/dubbo-2.7.x-plugin/src/test/java/org/apache/skywalking/apm/plugin/dubbo/DubboInterceptorTest.java b/apm-sniffer/apm-sdk-plugin/dubbo-2.7.x-plugin/src/test/java/org/apache/skywalking/apm/plugin/dubbo/DubboInterceptorTest.java
index f31ed73..8161d92 100644
--- a/apm-sniffer/apm-sdk-plugin/dubbo-2.7.x-plugin/src/test/java/org/apache/skywalking/apm/plugin/dubbo/DubboInterceptorTest.java
+++ b/apm-sniffer/apm-sdk-plugin/dubbo-2.7.x-plugin/src/test/java/org/apache/skywalking/apm/plugin/dubbo/DubboInterceptorTest.java
@@ -27,7 +27,7 @@ import java.util.List;
import org.apache.skywalking.apm.agent.core.boot.ServiceManager;
import org.apache.skywalking.apm.agent.core.conf.Config;
import org.apache.skywalking.apm.agent.core.context.ContextManagerExtendService;
-import org.apache.skywalking.apm.agent.core.context.SW3CarrierItem;
+import org.apache.skywalking.apm.agent.core.context.SW6CarrierItem;
import org.apache.skywalking.apm.agent.core.context.trace.AbstractTracingSpan;
import org.apache.skywalking.apm.agent.core.context.trace.LogDataEntity;
import org.apache.skywalking.apm.agent.core.context.trace.SpanLayer;
@@ -45,7 +45,6 @@ import org.apache.skywalking.apm.agent.test.tools.SegmentStoragePoint;
import org.apache.skywalking.apm.agent.test.tools.TracingSegmentRunner;
import org.apache.skywalking.apm.plugin.asf.dubbo.DubboInterceptor;
import org.hamcrest.CoreMatchers;
-import org.junit.After;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
@@ -95,7 +94,6 @@ public class DubboInterceptorTest {
@Before
public void setUp() throws Exception {
- Config.Agent.ACTIVE_V1_HEADER = true;
dubboInterceptor = new DubboInterceptor();
PowerMockito.mockStatic(RpcContext.class);
@@ -111,11 +109,6 @@ public class DubboInterceptorTest {
Config.Agent.SERVICE_NAME = "DubboTestCases-APP";
}
- @After
- public void clear() {
- Config.Agent.ACTIVE_V1_HEADER = false;
- }
-
@Test
public void testServiceFromPlugin() {
PluginBootService service = ServiceManager.INSTANCE.findService(PluginBootService.class);
@@ -167,7 +160,7 @@ public class DubboInterceptorTest {
@Test
public void testProviderWithAttachment() throws Throwable {
when(rpcContext.isConsumerSide()).thenReturn(false);
- when(rpcContext.getAttachment(SW3CarrierItem.HEADER_NAME)).thenReturn("1.323.4433|3|1|1|#192.168.1.8 :18002|#/portal/|#/testEntrySpan|#AQA*#AQA*Et0We0tQNQA*");
+ when(rpcContext.getAttachment(SW6CarrierItem.HEADER_NAME)).thenReturn("1-MC4wLjA=-MS4zMjMuNDQzMw==-3-1-1-IzE5Mi4xNjguMS44IDoxODAwMg==-Iy9wb3J0YWwv-Iy90ZXN0RW50cnlTcGFu");
dubboInterceptor.beforeMethod(enhancedInstance, null, allArguments, argumentTypes, methodInterceptResult);
dubboInterceptor.afterMethod(enhancedInstance, null, allArguments, argumentTypes, result);
diff --git a/apm-sniffer/apm-sdk-plugin/dubbo-plugin/src/test/java/org/apache/skywalking/apm/plugin/dubbo/DubboInterceptorTest.java b/apm-sniffer/apm-sdk-plugin/dubbo-plugin/src/test/java/org/apache/skywalking/apm/plugin/dubbo/DubboInterceptorTest.java
index c9e644b..5159c83 100644
--- a/apm-sniffer/apm-sdk-plugin/dubbo-plugin/src/test/java/org/apache/skywalking/apm/plugin/dubbo/DubboInterceptorTest.java
+++ b/apm-sniffer/apm-sdk-plugin/dubbo-plugin/src/test/java/org/apache/skywalking/apm/plugin/dubbo/DubboInterceptorTest.java
@@ -27,7 +27,7 @@ import java.util.List;
import org.apache.skywalking.apm.agent.core.boot.ServiceManager;
import org.apache.skywalking.apm.agent.core.conf.Config;
import org.apache.skywalking.apm.agent.core.context.ContextManagerExtendService;
-import org.apache.skywalking.apm.agent.core.context.SW3CarrierItem;
+import org.apache.skywalking.apm.agent.core.context.SW6CarrierItem;
import org.apache.skywalking.apm.agent.core.context.trace.AbstractTracingSpan;
import org.apache.skywalking.apm.agent.core.context.trace.LogDataEntity;
import org.apache.skywalking.apm.agent.core.context.trace.SpanLayer;
@@ -44,7 +44,6 @@ import org.apache.skywalking.apm.agent.test.tools.SegmentStorage;
import org.apache.skywalking.apm.agent.test.tools.SegmentStoragePoint;
import org.apache.skywalking.apm.agent.test.tools.TracingSegmentRunner;
import org.hamcrest.CoreMatchers;
-import org.junit.After;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
@@ -94,7 +93,6 @@ public class DubboInterceptorTest {
@Before
public void setUp() throws Exception {
- Config.Agent.ACTIVE_V1_HEADER = true;
dubboInterceptor = new DubboInterceptor();
PowerMockito.mockStatic(RpcContext.class);
@@ -110,11 +108,6 @@ public class DubboInterceptorTest {
Config.Agent.SERVICE_NAME = "DubboTestCases-APP";
}
- @After
- public void clear() {
- Config.Agent.ACTIVE_V1_HEADER = false;
- }
-
@Test
public void testServiceFromPlugin() {
PluginBootService service = ServiceManager.INSTANCE.findService(PluginBootService.class);
@@ -166,7 +159,7 @@ public class DubboInterceptorTest {
@Test
public void testProviderWithAttachment() throws Throwable {
when(rpcContext.isConsumerSide()).thenReturn(false);
- when(rpcContext.getAttachment(SW3CarrierItem.HEADER_NAME)).thenReturn("1.323.4433|3|1|1|#192.168.1.8 :18002|#/portal/|#/testEntrySpan|#AQA*#AQA*Et0We0tQNQA*");
+ when(rpcContext.getAttachment(SW6CarrierItem.HEADER_NAME)).thenReturn("1-MC4wLjA=-MS4zMjMuNDQzMw==-3-1-1-IzE5Mi4xNjguMS44IDoxODAwMg==-Iy9wb3J0YWwv-Iy90ZXN0RW50cnlTcGFu");
dubboInterceptor.beforeMethod(enhancedInstance, null, allArguments, argumentTypes, methodInterceptResult);
dubboInterceptor.afterMethod(enhancedInstance, null, allArguments, argumentTypes, result);
diff --git a/apm-sniffer/apm-sdk-plugin/jetty-plugin/jetty-server-9.x-plugin/src/test/java/org/apache/skywalking/apm/plugin/jetty/v9/server/HandleInterceptorTest.java b/apm-sniffer/apm-sdk-plugin/jetty-plugin/jetty-server-9.x-plugin/src/test/java/org/apache/skywalking/apm/plugin/jetty/v9/server/HandleInterceptorTest.java
index f956ef9..b69d65f 100644
--- a/apm-sniffer/apm-sdk-plugin/jetty-plugin/jetty-server-9.x-plugin/src/test/java/org/apache/skywalking/apm/plugin/jetty/v9/server/HandleInterceptorTest.java
+++ b/apm-sniffer/apm-sdk-plugin/jetty-plugin/jetty-server-9.x-plugin/src/test/java/org/apache/skywalking/apm/plugin/jetty/v9/server/HandleInterceptorTest.java
@@ -19,8 +19,7 @@
package org.apache.skywalking.apm.plugin.jetty.v9.server;
import java.util.List;
-import org.apache.skywalking.apm.agent.core.conf.Config;
-import org.apache.skywalking.apm.agent.core.context.SW3CarrierItem;
+import org.apache.skywalking.apm.agent.core.context.SW6CarrierItem;
import org.apache.skywalking.apm.agent.core.context.trace.AbstractTracingSpan;
import org.apache.skywalking.apm.agent.core.context.trace.LogDataEntity;
import org.apache.skywalking.apm.agent.core.context.trace.SpanLayer;
@@ -45,7 +44,6 @@ import org.eclipse.jetty.server.HttpInput;
import org.eclipse.jetty.server.HttpTransport;
import org.eclipse.jetty.server.Request;
import org.eclipse.jetty.server.Response;
-import org.junit.After;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
@@ -86,7 +84,6 @@ public class HandleInterceptorTest {
@Before
public void setUp() throws Exception {
- Config.Agent.ACTIVE_V1_HEADER = true;
jettyInvokeInterceptor = new HandleInterceptor();
when(request.getRequestURI()).thenReturn("/test/testRequestURL");
when(request.getRequestURL()).thenReturn(new StringBuffer("http://localhost:8080/test/testRequestURL"));
@@ -98,11 +95,6 @@ public class HandleInterceptorTest {
}
- @After
- public void clear() {
- Config.Agent.ACTIVE_V1_HEADER = false;
- }
-
@Test
public void testWithoutSerializedContextData() throws Throwable {
jettyInvokeInterceptor.beforeMethod(service, null, arguments, argumentType, methodInterceptResult);
@@ -116,7 +108,7 @@ public class HandleInterceptorTest {
@Test
public void testWithSerializedContextData() throws Throwable {
- when(request.getHeader(SW3CarrierItem.HEADER_NAME)).thenReturn("1.234.111|3|1|1|#192.168.1.8:18002|#/portal/|#/testEntrySpan|#AQA*#AQA*Et0We0tQNQA*");
+ when(request.getHeader(SW6CarrierItem.HEADER_NAME)).thenReturn("1-MC4wLjA=-MS4yMzQuMTEx-3-1-1-IzE5Mi4xNjguMS44OjE4MDAy-Iy9wb3J0YWwv-Iy90ZXN0RW50cnlTcGFu");
jettyInvokeInterceptor.beforeMethod(service, null, arguments, argumentType, methodInterceptResult);
jettyInvokeInterceptor.afterMethod(service, null, arguments, argumentType, null);
diff --git a/apm-sniffer/apm-sdk-plugin/kafka-plugin/src/test/java/org/apache/skywalking/apm/plugin/kafka/KafkaConsumerInterceptorTest.java b/apm-sniffer/apm-sdk-plugin/kafka-plugin/src/test/java/org/apache/skywalking/apm/plugin/kafka/KafkaConsumerInterceptorTest.java
index aa3543b..3051165 100644
--- a/apm-sniffer/apm-sdk-plugin/kafka-plugin/src/test/java/org/apache/skywalking/apm/plugin/kafka/KafkaConsumerInterceptorTest.java
+++ b/apm-sniffer/apm-sdk-plugin/kafka-plugin/src/test/java/org/apache/skywalking/apm/plugin/kafka/KafkaConsumerInterceptorTest.java
@@ -20,7 +20,7 @@ package org.apache.skywalking.apm.plugin.kafka;
import org.apache.kafka.clients.consumer.ConsumerRecord;
import org.apache.kafka.common.TopicPartition;
-import org.apache.skywalking.apm.agent.core.conf.Config;
+import org.apache.skywalking.apm.agent.core.context.SW6CarrierItem;
import org.apache.skywalking.apm.agent.core.context.trace.AbstractTracingSpan;
import org.apache.skywalking.apm.agent.core.context.trace.SpanLayer;
import org.apache.skywalking.apm.agent.core.context.trace.TraceSegment;
@@ -30,7 +30,6 @@ import org.apache.skywalking.apm.agent.test.helper.SegmentHelper;
import org.apache.skywalking.apm.agent.test.helper.SegmentRefHelper;
import org.apache.skywalking.apm.agent.test.tools.*;
import org.hamcrest.MatcherAssert;
-import org.junit.After;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
@@ -75,7 +74,6 @@ public class KafkaConsumerInterceptorTest {
@Before
public void setUp() {
- Config.Agent.ACTIVE_V1_HEADER = true;
consumerInterceptor = new KafkaConsumerInterceptor();
consumerEnhanceRequiredInfo = new ConsumerEnhanceRequiredInfo();
@@ -93,16 +91,11 @@ public class KafkaConsumerInterceptorTest {
TopicPartition topicPartition = new TopicPartition("test", 1);
List<ConsumerRecord> records = new ArrayList<ConsumerRecord>();
ConsumerRecord consumerRecord = new ConsumerRecord("test", 1, 0, "1", "1");
- consumerRecord.headers().add("sw3", "1.234.111|3|1|1|#192.168.1.8:18002|#/portal/|#testEntrySpan|#AQA*#AQA*Et0We0tQNQA*".getBytes());
+ consumerRecord.headers().add(SW6CarrierItem.HEADER_NAME, "1-MC4wLjA=-MS4yMzQuMTEx-3-1-1-IzE5Mi4xNjguMS44OjE4MDAy-Iy9wb3J0YWwv-I3Rlc3RFbnRyeVNwYW4=".getBytes());
records.add(consumerRecord);
messages.put(topicPartition, records);
}
- @After
- public void clear() {
- Config.Agent.ACTIVE_V1_HEADER = false;
- }
-
@Test
public void testConsumerWithoutMessage() throws Throwable {
consumerInterceptor.beforeMethod(consumerInstance, null, new Object[0], new Class[0], null);
diff --git a/apm-sniffer/apm-sdk-plugin/motan-plugin/src/test/java/org/apache/skywalking/apm/plugin/motan/MotanProviderInterceptorTest.java b/apm-sniffer/apm-sdk-plugin/motan-plugin/src/test/java/org/apache/skywalking/apm/plugin/motan/MotanProviderInterceptorTest.java
index 3ddae1d..2397851 100644
--- a/apm-sniffer/apm-sdk-plugin/motan-plugin/src/test/java/org/apache/skywalking/apm/plugin/motan/MotanProviderInterceptorTest.java
+++ b/apm-sniffer/apm-sdk-plugin/motan-plugin/src/test/java/org/apache/skywalking/apm/plugin/motan/MotanProviderInterceptorTest.java
@@ -24,8 +24,7 @@ import com.weibo.api.motan.rpc.Response;
import com.weibo.api.motan.rpc.URL;
import java.util.HashMap;
import java.util.List;
-import org.apache.skywalking.apm.agent.core.conf.Config;
-import org.apache.skywalking.apm.agent.core.context.SW3CarrierItem;
+import org.apache.skywalking.apm.agent.core.context.SW6CarrierItem;
import org.apache.skywalking.apm.agent.core.context.trace.AbstractTracingSpan;
import org.apache.skywalking.apm.agent.core.context.trace.SpanLayer;
import org.apache.skywalking.apm.agent.core.context.trace.TraceSegment;
@@ -38,7 +37,6 @@ import org.apache.skywalking.apm.agent.test.tools.SegmentStoragePoint;
import org.apache.skywalking.apm.agent.test.tools.SpanAssert;
import org.apache.skywalking.apm.network.trace.component.ComponentsDefine;
import org.hamcrest.MatcherAssert;
-import org.junit.After;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
@@ -83,7 +81,6 @@ public class MotanProviderInterceptorTest {
@Before
public void setUp() {
- Config.Agent.ACTIVE_V1_HEADER = true;
invokeInterceptor = new MotanProviderInterceptor();
url = URL.valueOf("motan://127.0.0.1:34000/org.apache.skywalking.apm.test.TestService");
@@ -96,11 +93,6 @@ public class MotanProviderInterceptorTest {
}
- @After
- public void clear() {
- Config.Agent.ACTIVE_V1_HEADER = false;
- }
-
@Test
public void testInvokerWithoutRefSegment() throws Throwable {
invokeInterceptor.beforeMethod(enhancedInstance, null, arguments, argumentType, null);
@@ -117,7 +109,7 @@ public class MotanProviderInterceptorTest {
@Test
public void testInvokerWithRefSegment() throws Throwable {
HashMap attachments = new HashMap();
- attachments.put(SW3CarrierItem.HEADER_NAME, "1.123.456|3|1|1|#192.168.1.8:18002|#/portal/|#/testEntrySpan|#AQA*#AQA*Et0We0tQNQA*");
+ attachments.put(SW6CarrierItem.HEADER_NAME, "1-MC4wLjA=-MS4xMjMuNDU2-3-1-1-IzE5Mi4xNjguMS44OjE4MDAy-Iy9wb3J0YWwv-Iy90ZXN0RW50cnlTcGFu");
when(request.getAttachments()).thenReturn(attachments);
invokeInterceptor.beforeMethod(enhancedInstance, null, arguments, argumentType, null);
diff --git a/apm-sniffer/apm-sdk-plugin/pulsar-plugin/src/test/java/org/apache/skywalking/apm/plugin/pulsar/PulsarConsumerInterceptorTest.java b/apm-sniffer/apm-sdk-plugin/pulsar-plugin/src/test/java/org/apache/skywalking/apm/plugin/pulsar/PulsarConsumerInterceptorTest.java
index 7629f5c..f2ed510 100644
--- a/apm-sniffer/apm-sdk-plugin/pulsar-plugin/src/test/java/org/apache/skywalking/apm/plugin/pulsar/PulsarConsumerInterceptorTest.java
+++ b/apm-sniffer/apm-sdk-plugin/pulsar-plugin/src/test/java/org/apache/skywalking/apm/plugin/pulsar/PulsarConsumerInterceptorTest.java
@@ -19,7 +19,7 @@
package org.apache.skywalking.apm.plugin.pulsar;
import org.apache.pulsar.common.api.proto.PulsarApi;
-import org.apache.skywalking.apm.agent.core.conf.Config;
+import org.apache.skywalking.apm.agent.core.context.SW6CarrierItem;
import org.apache.skywalking.apm.agent.core.context.trace.AbstractTracingSpan;
import org.apache.skywalking.apm.agent.core.context.trace.SpanLayer;
import org.apache.skywalking.apm.agent.core.context.trace.TraceSegment;
@@ -33,7 +33,6 @@ import org.apache.skywalking.apm.agent.test.tools.SegmentStoragePoint;
import org.apache.skywalking.apm.agent.test.tools.SpanAssert;
import org.apache.skywalking.apm.agent.test.tools.TracingSegmentRunner;
import org.hamcrest.MatcherAssert;
-import org.junit.After;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
@@ -75,7 +74,6 @@ public class PulsarConsumerInterceptorTest {
@Before
public void setUp() {
- Config.Agent.ACTIVE_V1_HEADER = true;
consumerInterceptor = new PulsarConsumerInterceptor();
consumerEnhanceRequiredInfo = new ConsumerEnhanceRequiredInfo();
@@ -84,13 +82,8 @@ public class PulsarConsumerInterceptorTest {
consumerEnhanceRequiredInfo.setSubscriptionName("my-sub");
msg = new MockMessage();
msg.getMessageBuilder().addProperties(PulsarApi.KeyValue.newBuilder()
- .setKey("sw3")
- .setValue("1.234.111|3|1|1|#192.168.1.8:18002|#/portal/|#testEntrySpan|#AQA*#AQA*Et0We0tQNQA*"));
- }
-
- @After
- public void clear() {
- Config.Agent.ACTIVE_V1_HEADER = false;
+ .setKey(SW6CarrierItem.HEADER_NAME)
+ .setValue("1-MC4wLjA=-MS4yMzQuMTEx-3-1-1-IzE5Mi4xNjguMS44OjE4MDAy-Iy9wb3J0YWwv-I3Rlc3RFbnRyeVNwYW4="));
}
@Test
diff --git a/apm-sniffer/apm-sdk-plugin/rabbitmq-5.x-plugin/src/test/java/org/apache/skywalking/apm/plugin/rabbitmq/RabbitMQConsumerInterceptorTest.java b/apm-sniffer/apm-sdk-plugin/rabbitmq-5.x-plugin/src/test/java/org/apache/skywalking/apm/plugin/rabbitmq/RabbitMQConsumerInterceptorTest.java
index 4a54d2d..ee86be9 100644
--- a/apm-sniffer/apm-sdk-plugin/rabbitmq-5.x-plugin/src/test/java/org/apache/skywalking/apm/plugin/rabbitmq/RabbitMQConsumerInterceptorTest.java
+++ b/apm-sniffer/apm-sdk-plugin/rabbitmq-5.x-plugin/src/test/java/org/apache/skywalking/apm/plugin/rabbitmq/RabbitMQConsumerInterceptorTest.java
@@ -20,6 +20,7 @@ package org.apache.skywalking.apm.plugin.rabbitmq;
import com.rabbitmq.client.AMQP;
import com.rabbitmq.client.Envelope;
+import org.apache.skywalking.apm.agent.core.context.SW6CarrierItem;
import org.apache.skywalking.apm.agent.core.context.trace.TraceSegment;
import org.apache.skywalking.apm.agent.core.plugin.interceptor.enhance.EnhancedInstance;
import org.apache.skywalking.apm.agent.test.tools.AgentServiceRule;
@@ -72,7 +73,7 @@ public class RabbitMQConsumerInterceptorTest {
public void TestRabbitMQConsumerInterceptor() throws Throwable {
Envelope envelope = new Envelope(1111,false,"","rabbitmq-test");
Map<String, Object> headers = new HashMap<String, Object>();
- headers.put("sw6","1-MS4xLjE1NDM5NzU1OTEwMTQwMDAx-MS4xLjE1NDM5NzU1OTA5OTcwMDAw-0-1-1-IzEyNy4wLjAuMTo1Mjcy-I1JhYmJpdE1RL1RvcGljL1F1ZXVlL3JhYmJpdG1xLXRlc3QvUHJvZHVjZXI=-I1JhYmJpdE1RL1RvcGljL1F1ZXVlL3JhYmJpdG1xLXRlc3QvUHJvZHVjZXI=");
+ headers.put(SW6CarrierItem.HEADER_NAME,"1-MS4xLjE1NDM5NzU1OTEwMTQwMDAx-MS4xLjE1NDM5NzU1OTA5OTcwMDAw-0-1-1-IzEyNy4wLjAuMTo1Mjcy-I1JhYmJpdE1RL1RvcGljL1F1ZXVlL3JhYmJpdG1xLXRlc3QvUHJvZHVjZXI=-I1JhYmJpdE1RL1RvcGljL1F1ZXVlL3JhYmJpdG1xLXRlc3QvUHJvZHVjZXI=");
AMQP.BasicProperties.Builder propsBuilder = new AMQP.BasicProperties.Builder();
Object[] arguments = new Object[] {0,envelope,propsBuilder.headers(headers).build()};
diff --git a/apm-sniffer/apm-sdk-plugin/resteasy-plugin/resteasy-server-3.x-plugin/src/test/java/org/apache/skywalking/apm/plugin/resteasy/v3/server/SynchronousDispatcherInterceptorTest.java b/apm-sniffer/apm-sdk-plugin/resteasy-plugin/resteasy-server-3.x-plugin/src/test/java/org/apache/skywalking/apm/plugin/resteasy/v3/server/SynchronousDispatcherInterceptorTest.java
index e583e0f..79a6532 100644
--- a/apm-sniffer/apm-sdk-plugin/resteasy-plugin/resteasy-server-3.x-plugin/src/test/java/org/apache/skywalking/apm/plugin/resteasy/v3/server/SynchronousDispatcherInterceptorTest.java
+++ b/apm-sniffer/apm-sdk-plugin/resteasy-plugin/resteasy-server-3.x-plugin/src/test/java/org/apache/skywalking/apm/plugin/resteasy/v3/server/SynchronousDispatcherInterceptorTest.java
@@ -18,8 +18,6 @@
package org.apache.skywalking.apm.plugin.resteasy.v3.server;
-import org.apache.skywalking.apm.agent.core.conf.Config;
-import org.apache.skywalking.apm.agent.core.context.SW3CarrierItem;
import org.apache.skywalking.apm.agent.core.context.SW6CarrierItem;
import org.apache.skywalking.apm.agent.core.context.trace.AbstractTracingSpan;
import org.apache.skywalking.apm.agent.core.context.trace.LogDataEntity;
@@ -137,28 +135,6 @@ public class SynchronousDispatcherInterceptorTest {
}
@Test
- public void testWithSW3SerializedContextData() throws Throwable {
- Config.Agent.ACTIVE_V1_HEADER = true;
- Config.Agent.ACTIVE_V2_HEADER = false;
- MultivaluedMapImpl<String, String> multivaluedMap = new MultivaluedMapImpl<String, String>();
- multivaluedMap.putSingle(SW3CarrierItem.HEADER_NAME, "1.234.111|3|1|1|#192.168.1.8:18002|#/portal/|#/testEntrySpan|#AQA*#AQA*Et0We0tQNQA*");
- when(request.getHttpHeaders()).thenReturn(new ResteasyHttpHeaders(multivaluedMap));
-
- synchronousDispatcherInterceptor.beforeMethod(enhancedInstance, null, arguments, argumentType, methodInterceptResult);
- synchronousDispatcherInterceptor.afterMethod(enhancedInstance, null, arguments, argumentType, null);
-
- Config.Agent.ACTIVE_V1_HEADER = false;
- Config.Agent.ACTIVE_V2_HEADER = true;
-
- assertThat(segmentStorage.getTraceSegments().size(), is(1));
- TraceSegment traceSegment = segmentStorage.getTraceSegments().get(0);
- List<AbstractTracingSpan> spans = SegmentHelper.getSpans(traceSegment);
-
- AssertTools.assertHttpSpan(spans.get(0));
- AssertTools.assertTraceSegmentRef(traceSegment.getRefs().get(0));
- }
-
- @Test
public void testWithOccurException() throws Throwable {
synchronousDispatcherInterceptor.beforeMethod(enhancedInstance, null, arguments, argumentType, methodInterceptResult);
synchronousDispatcherInterceptor.handleMethodException(enhancedInstance, null, arguments, argumentType, new RuntimeException());
diff --git a/apm-sniffer/apm-sdk-plugin/sofarpc-plugin/src/test/java/org/apache/skywalking/apm/plugin/sofarpc/SofaRpcProviderInterceptorTest.java b/apm-sniffer/apm-sdk-plugin/sofarpc-plugin/src/test/java/org/apache/skywalking/apm/plugin/sofarpc/SofaRpcProviderInterceptorTest.java
index 064c175..40fec03 100644
--- a/apm-sniffer/apm-sdk-plugin/sofarpc-plugin/src/test/java/org/apache/skywalking/apm/plugin/sofarpc/SofaRpcProviderInterceptorTest.java
+++ b/apm-sniffer/apm-sdk-plugin/sofarpc-plugin/src/test/java/org/apache/skywalking/apm/plugin/sofarpc/SofaRpcProviderInterceptorTest.java
@@ -25,7 +25,7 @@ import com.alipay.sofa.rpc.core.response.SofaResponse;
import com.alipay.sofa.rpc.filter.ProviderInvoker;
import java.util.List;
import org.apache.skywalking.apm.agent.core.conf.Config;
-import org.apache.skywalking.apm.agent.core.context.SW3CarrierItem;
+import org.apache.skywalking.apm.agent.core.context.SW6CarrierItem;
import org.apache.skywalking.apm.agent.core.context.trace.AbstractTracingSpan;
import org.apache.skywalking.apm.agent.core.context.trace.SpanLayer;
import org.apache.skywalking.apm.agent.core.context.trace.TraceSegment;
@@ -41,7 +41,6 @@ import org.apache.skywalking.apm.agent.test.tools.SegmentStorage;
import org.apache.skywalking.apm.agent.test.tools.SegmentStoragePoint;
import org.apache.skywalking.apm.agent.test.tools.TracingSegmentRunner;
import org.hamcrest.CoreMatchers;
-import org.junit.After;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
@@ -92,7 +91,6 @@ public class SofaRpcProviderInterceptorTest {
@Before
public void setUp() throws Exception {
- Config.Agent.ACTIVE_V1_HEADER = true;
sofaRpcProviderInterceptor = new SofaRpcProviderInterceptor();
PowerMockito.mockStatic(RpcInternalContext.class);
@@ -112,16 +110,11 @@ public class SofaRpcProviderInterceptorTest {
Config.Agent.SERVICE_NAME = "SOFARPC-TestCases-APP";
}
- @After
- public void clear() {
- Config.Agent.ACTIVE_V1_HEADER = false;
- }
-
@Test
public void testProviderWithAttachment() throws Throwable {
when(rpcContext.isConsumerSide()).thenReturn(false);
- when(sofaRequest.getRequestProp(SKYWALKING_PREFIX + SW3CarrierItem.HEADER_NAME)).thenReturn(
- "1.323.4433|3|1|1|#192.168.1.8 :18002|#/portal/|#/testEntrySpan|#AQA*#AQA*Et0We0tQNQA*");
+ when(sofaRequest.getRequestProp(SKYWALKING_PREFIX + SW6CarrierItem.HEADER_NAME)).thenReturn(
+ "1-MC4wLjA=-MS4zMjMuNDQzMw==-3-1-1-IzE5Mi4xNjguMS44IDoxODAwMg==-Iy9wb3J0YWwv-Iy90ZXN0RW50cnlTcGFu");
sofaRpcProviderInterceptor.beforeMethod(enhancedInstance, null, allArguments, argumentTypes, methodInterceptResult);
sofaRpcProviderInterceptor.afterMethod(enhancedInstance, null, allArguments, argumentTypes, sofaResponse);
diff --git a/apm-sniffer/apm-sdk-plugin/struts2-2.x-plugin/src/test/java/org/apache/skywalking/apm/plugin/struts2/Struts2InterceptorTest.java b/apm-sniffer/apm-sdk-plugin/struts2-2.x-plugin/src/test/java/org/apache/skywalking/apm/plugin/struts2/Struts2InterceptorTest.java
index 6a07a19..ce5b5a1 100644
--- a/apm-sniffer/apm-sdk-plugin/struts2-2.x-plugin/src/test/java/org/apache/skywalking/apm/plugin/struts2/Struts2InterceptorTest.java
+++ b/apm-sniffer/apm-sdk-plugin/struts2-2.x-plugin/src/test/java/org/apache/skywalking/apm/plugin/struts2/Struts2InterceptorTest.java
@@ -23,9 +23,8 @@ import com.opensymphony.xwork2.ActionContext;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
-import org.apache.skywalking.apm.agent.core.conf.Config;
+import org.apache.skywalking.apm.agent.core.context.SW6CarrierItem;
import org.apache.struts2.StrutsStatics;
-import org.junit.After;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
@@ -34,7 +33,6 @@ import org.mockito.Mock;
import org.powermock.core.classloader.annotations.PrepareForTest;
import org.powermock.modules.junit4.PowerMockRunner;
import org.powermock.modules.junit4.PowerMockRunnerDelegate;
-import org.apache.skywalking.apm.agent.core.context.SW3CarrierItem;
import org.apache.skywalking.apm.agent.core.context.trace.AbstractTracingSpan;
import org.apache.skywalking.apm.agent.core.context.trace.LogDataEntity;
import org.apache.skywalking.apm.agent.core.context.trace.SpanLayer;
@@ -94,7 +92,6 @@ public class Struts2InterceptorTest {
@Before
public void setUp() throws Exception {
- Config.Agent.ACTIVE_V1_HEADER = true;
struts2Interceptor = new Struts2Interceptor();
when(request.getRequestURI()).thenReturn("/test/testRequestURL");
when(request.getRequestURL()).thenReturn(new StringBuffer("http://localhost:8080/test/testRequestURL"));
@@ -113,11 +110,6 @@ public class Struts2InterceptorTest {
exceptionArgumentType = new Class[] {request.getClass(), response.getClass(), new RuntimeException().getClass()};
}
- @After
- public void clear() {
- Config.Agent.ACTIVE_V1_HEADER = false;
- }
-
@Test
public void testWithoutSerializedContextData() throws Throwable {
struts2Interceptor.beforeMethod(enhancedInstance, null, arguments, argumentType, methodInterceptResult);
@@ -131,7 +123,7 @@ public class Struts2InterceptorTest {
@Test
public void testWithSerializedContextData() throws Throwable {
- when(request.getHeader(SW3CarrierItem.HEADER_NAME)).thenReturn("1.234.111|3|1|1|#192.168.1.8:18002|#/portal/|#/testEntrySpan|#AQA*#AQA*Et0We0tQNQA*");
+ when(request.getHeader(SW6CarrierItem.HEADER_NAME)).thenReturn("1-MC4wLjA=-MS4yMzQuMTEx-3-1-1-IzE5Mi4xNjguMS44OjE4MDAy-Iy9wb3J0YWwv-Iy90ZXN0RW50cnlTcGFu");
struts2Interceptor.beforeMethod(enhancedInstance, null, arguments, argumentType, methodInterceptResult);
struts2Interceptor.afterMethod(enhancedInstance, null, arguments, argumentType, null);
diff --git a/apm-sniffer/apm-sdk-plugin/tomcat-7.x-8.x-plugin/src/test/java/org/apache/skywalking/apm/plugin/tomcat78x/TomcatInvokeInterceptorTest.java b/apm-sniffer/apm-sdk-plugin/tomcat-7.x-8.x-plugin/src/test/java/org/apache/skywalking/apm/plugin/tomcat78x/TomcatInvokeInterceptorTest.java
index 3ca9321..7847f71 100644
--- a/apm-sniffer/apm-sdk-plugin/tomcat-7.x-8.x-plugin/src/test/java/org/apache/skywalking/apm/plugin/tomcat78x/TomcatInvokeInterceptorTest.java
+++ b/apm-sniffer/apm-sdk-plugin/tomcat-7.x-8.x-plugin/src/test/java/org/apache/skywalking/apm/plugin/tomcat78x/TomcatInvokeInterceptorTest.java
@@ -22,8 +22,7 @@ import java.util.List;
import javax.servlet.http.HttpServletResponse;
import org.apache.catalina.connector.Request;
-import org.apache.skywalking.apm.agent.core.conf.Config;
-import org.apache.skywalking.apm.agent.core.context.SW3CarrierItem;
+import org.apache.skywalking.apm.agent.core.context.SW6CarrierItem;
import org.apache.skywalking.apm.agent.core.context.trace.AbstractTracingSpan;
import org.apache.skywalking.apm.agent.core.context.trace.SpanLayer;
import org.apache.skywalking.apm.agent.core.plugin.interceptor.enhance.EnhancedInstance;
@@ -32,7 +31,6 @@ import org.apache.skywalking.apm.agent.test.helper.SpanHelper;
import org.apache.skywalking.apm.agent.test.tools.SegmentStorage;
import org.apache.skywalking.apm.agent.test.tools.SegmentStoragePoint;
import org.apache.skywalking.apm.agent.test.tools.SpanAssert;
-import org.junit.After;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
@@ -84,8 +82,6 @@ public class TomcatInvokeInterceptorTest {
@Before
public void setUp() throws Exception {
- Config.Agent.ACTIVE_V1_HEADER = true;
-
tomcatInvokeInterceptor = new TomcatInvokeInterceptor();
tomcatExceptionInterceptor = new TomcatExceptionInterceptor();
when(request.getRequestURI()).thenReturn("/test/testRequestURL");
@@ -98,11 +94,6 @@ public class TomcatInvokeInterceptorTest {
exceptionArgumentType = new Class[] {request.getClass(), response.getClass(), new RuntimeException().getClass()};
}
- @After
- public void clear() {
- Config.Agent.ACTIVE_V1_HEADER = false;
- }
-
@Test
public void testWithoutSerializedContextData() throws Throwable {
tomcatInvokeInterceptor.beforeMethod(enhancedInstance, null, arguments, argumentType, methodInterceptResult);
@@ -116,7 +107,7 @@ public class TomcatInvokeInterceptorTest {
@Test
public void testWithSerializedContextData() throws Throwable {
- when(request.getHeader(SW3CarrierItem.HEADER_NAME)).thenReturn("1.234.111|3|1|1|#192.168.1.8:18002|#/portal/|#/testEntrySpan|#AQA*#AQA*Et0We0tQNQA*");
+ when(request.getHeader(SW6CarrierItem.HEADER_NAME)).thenReturn("1-MC4wLjA=-MS4yMzQuMTEx-3-1-1-IzE5Mi4xNjguMS44OjE4MDAy-Iy9wb3J0YWwv-Iy90ZXN0RW50cnlTcGFu");
tomcatInvokeInterceptor.beforeMethod(enhancedInstance, null, arguments, argumentType, methodInterceptResult);
tomcatInvokeInterceptor.afterMethod(enhancedInstance, null, arguments, argumentType, null);
diff --git a/apm-sniffer/apm-sdk-plugin/undertow-plugins/undertow-2.x-plugin/src/test/java/org/apache/skywalking/apm/plugin/undertow/v2x/RootHandlerInterceptorTest.java b/apm-sniffer/apm-sdk-plugin/undertow-plugins/undertow-2.x-plugin/src/test/java/org/apache/skywalking/apm/plugin/undertow/v2x/RootHandlerInterceptorTest.java
index 6ce11db..e319083 100644
--- a/apm-sniffer/apm-sdk-plugin/undertow-plugins/undertow-2.x-plugin/src/test/java/org/apache/skywalking/apm/plugin/undertow/v2x/RootHandlerInterceptorTest.java
+++ b/apm-sniffer/apm-sdk-plugin/undertow-plugins/undertow-2.x-plugin/src/test/java/org/apache/skywalking/apm/plugin/undertow/v2x/RootHandlerInterceptorTest.java
@@ -22,7 +22,6 @@ import io.undertow.Undertow;
import io.undertow.server.HttpHandler;
import io.undertow.server.RoutingHandler;
import io.undertow.util.Methods;
-import org.apache.skywalking.apm.agent.core.conf.Config;
import org.apache.skywalking.apm.agent.core.plugin.interceptor.enhance.EnhancedInstance;
import org.apache.skywalking.apm.agent.core.plugin.interceptor.enhance.MethodInterceptResult;
import org.apache.skywalking.apm.agent.test.tools.AgentServiceRule;
@@ -30,7 +29,6 @@ import org.apache.skywalking.apm.agent.test.tools.SegmentStorage;
import org.apache.skywalking.apm.agent.test.tools.SegmentStoragePoint;
import org.apache.skywalking.apm.agent.test.tools.TracingSegmentRunner;
import org.apache.skywalking.apm.plugin.undertow.v2x.handler.TracingHandler;
-import org.junit.After;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
@@ -71,15 +69,9 @@ public class RootHandlerInterceptorTest {
@Before
public void setUp() throws Exception {
- Config.Agent.ACTIVE_V1_HEADER = true;
rootHandlerInterceptor = new RootHandlerInterceptor();
}
- @After
- public void clear() {
- Config.Agent.ACTIVE_V1_HEADER = false;
- }
-
@Test
public void testBindTracingHandler() throws Throwable {
Object[] arguments = new Object[]{httpHandler};
diff --git a/apm-sniffer/apm-sdk-plugin/undertow-plugins/undertow-2.x-plugin/src/test/java/org/apache/skywalking/apm/plugin/undertow/v2x/TracingHandlerTest.java b/apm-sniffer/apm-sdk-plugin/undertow-plugins/undertow-2.x-plugin/src/test/java/org/apache/skywalking/apm/plugin/undertow/v2x/TracingHandlerTest.java
index 6189156..9314eb7 100644
--- a/apm-sniffer/apm-sdk-plugin/undertow-plugins/undertow-2.x-plugin/src/test/java/org/apache/skywalking/apm/plugin/undertow/v2x/TracingHandlerTest.java
+++ b/apm-sniffer/apm-sdk-plugin/undertow-plugins/undertow-2.x-plugin/src/test/java/org/apache/skywalking/apm/plugin/undertow/v2x/TracingHandlerTest.java
@@ -24,8 +24,7 @@ import io.undertow.util.HeaderMap;
import io.undertow.util.HttpString;
import io.undertow.util.Methods;
import io.undertow.util.StatusCodes;
-import org.apache.skywalking.apm.agent.core.conf.Config;
-import org.apache.skywalking.apm.agent.core.context.SW3CarrierItem;
+import org.apache.skywalking.apm.agent.core.context.SW6CarrierItem;
import org.apache.skywalking.apm.agent.core.context.trace.AbstractTracingSpan;
import org.apache.skywalking.apm.agent.core.context.trace.SpanLayer;
import org.apache.skywalking.apm.agent.core.context.trace.TraceSegment;
@@ -102,10 +101,9 @@ public class TracingHandlerTest {
@Test
public void testWithSerializedContextData() throws Throwable {
- Config.Agent.ACTIVE_V1_HEADER = true;
TracingHandler handler = new TracingHandler(httpHandler);
HttpServerExchange exchange = buildExchange();
- exchange.getRequestHeaders().put(HttpString.tryFromString(SW3CarrierItem.HEADER_NAME), "1.234.111|3|1|1|#192.168.1.8:18002|#/portal/|#/testEntrySpan|#AQA*#AQA*Et0We0tQNQA*");
+ exchange.getRequestHeaders().put(HttpString.tryFromString(SW6CarrierItem.HEADER_NAME), "1-MC4wLjA=-MS4yMzQuMTEx-3-1-1-IzE5Mi4xNjguMS44OjE4MDAy-Iy9wb3J0YWwv-Iy90ZXN0RW50cnlTcGFu");
handler.handleRequest(exchange);
exchange.endExchange();
@@ -115,7 +113,6 @@ public class TracingHandlerTest {
assertHttpSpan(spans.get(0));
assertTraceSegmentRef(traceSegment.getRefs().get(0));
- Config.Agent.ACTIVE_V1_HEADER = false;
}
private HttpServerExchange buildExchange() {
diff --git a/apm-sniffer/apm-toolkit-activation/apm-toolkit-opentracing-activation/src/test/java/org/apache/skywalking/apm/toolkit/activation/opentracing/SkywalkingSpanActivationTest.java b/apm-sniffer/apm-toolkit-activation/apm-toolkit-opentracing-activation/src/test/java/org/apache/skywalking/apm/toolkit/activation/opentracing/SkywalkingSpanActivationTest.java
index fb9d454..37b1551 100644
--- a/apm-sniffer/apm-toolkit-activation/apm-toolkit-opentracing-activation/src/test/java/org/apache/skywalking/apm/toolkit/activation/opentracing/SkywalkingSpanActivationTest.java
+++ b/apm-sniffer/apm-toolkit-activation/apm-toolkit-opentracing-activation/src/test/java/org/apache/skywalking/apm/toolkit/activation/opentracing/SkywalkingSpanActivationTest.java
@@ -26,9 +26,10 @@ import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
-import org.apache.skywalking.apm.agent.core.conf.Config;
+
+import org.apache.skywalking.apm.agent.core.base64.Base64;
import org.apache.skywalking.apm.agent.core.context.ContextSnapshot;
-import org.apache.skywalking.apm.agent.core.context.SW3CarrierItem;
+import org.apache.skywalking.apm.agent.core.context.SW6CarrierItem;
import org.apache.skywalking.apm.agent.core.context.ids.ID;
import org.apache.skywalking.apm.agent.core.context.trace.AbstractTracingSpan;
import org.apache.skywalking.apm.agent.core.context.trace.TraceSegment;
@@ -53,7 +54,6 @@ import org.apache.skywalking.apm.toolkit.opentracing.SkywalkingContinuation;
import org.apache.skywalking.apm.toolkit.opentracing.SkywalkingSpan;
import org.apache.skywalking.apm.toolkit.opentracing.SkywalkingSpanBuilder;
import org.apache.skywalking.apm.toolkit.opentracing.TextMapContext;
-import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Rule;
@@ -105,7 +105,6 @@ public class SkywalkingSpanActivationTest {
@Before
public void setUp() {
- Config.Agent.ACTIVE_V1_HEADER = true;
spanBuilder = new SkywalkingSpanBuilder("test").withTag(Tags.COMPONENT.getKey(), "test");
constructorWithSpanBuilderInterceptor = new ConstructorWithSpanBuilderInterceptor();
spanLogInterceptor = new SpanLogInterceptor();
@@ -125,11 +124,6 @@ public class SkywalkingSpanActivationTest {
activateInterceptor = new ActivateInterceptor();
}
- @After
- public void clear() {
- Config.Agent.ACTIVE_V1_HEADER = false;
- }
-
@Test
public void testCreateLocalSpan() throws Throwable {
startSpan();
@@ -214,10 +208,10 @@ public class SkywalkingSpanActivationTest {
injectInterceptor.afterMethod(enhancedInstance, null,
new Object[] {new TextMapContext(), Format.Builtin.TEXT_MAP, carrier}, null, null);
- String[] parts = values.get(SW3CarrierItem.HEADER_NAME).split("\\|", 8);
- Assert.assertEquals("0", parts[1]);
- Assert.assertEquals("#127.0.0.1:8080", parts[4]);
- Assert.assertTrue(new ID(parts[7]).isValid());
+ String[] parts = values.get(SW6CarrierItem.HEADER_NAME).split("-", 9);
+ Assert.assertEquals("0", parts[3]);
+ Assert.assertEquals(Base64.encode("#127.0.0.1:8080"), parts[6]);
+ Assert.assertTrue(new ID(Base64.decode2UTFString(parts[1])).isValid());
stopSpan();
}
@@ -240,7 +234,7 @@ public class SkywalkingSpanActivationTest {
};
- values.put(SW3CarrierItem.HEADER_NAME, "1.343.222|3|1|1|#127.0.0.1:8080|#/portal/|#/testEntrySpan|434.12.12123");
+ values.put(SW6CarrierItem.HEADER_NAME, "1-NDM0LjEyLjEyMTIz-MS4zNDMuMjIy-3-1-1-IzEyNy4wLjAuMTo4MDgw-Iy9wb3J0YWwv-Iy90ZXN0RW50cnlTcGFu");
extractInterceptor.afterMethod(enhancedInstance, null,
new Object[] {Format.Builtin.TEXT_MAP, carrier}, new Class[] {}, null);
@@ -278,7 +272,7 @@ public class SkywalkingSpanActivationTest {
};
- values.put(SW3CarrierItem.HEADER_NAME, "aaaaaaaa|3|#192.168.1.8:18002|#/portal/|#/testEntrySpan|1.234.444");
+ values.put(SW6CarrierItem.HEADER_NAME, "aaaaaaaa|3|#192.168.1.8:18002|#/portal/|#/testEntrySpan|1.234.444");
extractInterceptor.afterMethod(enhancedInstance, null,
new Object[] {Format.Builtin.TEXT_MAP, carrier}, new Class[] {}, null);
diff --git a/docs/en/protocols/README.md b/docs/en/protocols/README.md
index b9bc32a..dda0c8e 100644
--- a/docs/en/protocols/README.md
+++ b/docs/en/protocols/README.md
@@ -28,15 +28,11 @@ with this specific request.
1. **Trace Data Protocol** is out of wire data, agent/SDK uses this to send traces and metrics to skywalking or other
compatible backend.
-Header protocol have two formats for compatible. Using v2 in default.
-* [Cross Process Propagation Headers Protocol v2](Skywalking-Cross-Process-Propagation-Headers-Protocol-v2.md) is the new protocol for
-in-wire context propagation, started in 6.0.0-beta release. It will replace the old **SW3** protocol in the future, now both of them are supported.
-* [Cross Process Propagation Headers Protocol v1](Skywalking-Cross-Process-Propagation-Headers-Protocol-v1.md) is for in-wire propagation.
-By following this protocol, the trace segments in different processes could be linked.
-
-Since SkyWalking v6.0.0-beta, SkyWalking agent and backend are using Trace Data Protocol v2, and v1 is still supported in backend.
-* [SkyWalking Trace Data Protocol v2](Trace-Data-Protocol-v2.md) define the communication way and format between agent and backend
-* [SkyWalking Trace Data Protocol v1](Trace-Data-Protocol-v1.md). This protocol is used in old version. Still supported.
+[Cross Process Propagation Headers Protocol v2](Skywalking-Cross-Process-Propagation-Headers-Protocol-v2.md) is the new protocol for
+in-wire context propagation, started in 6.0.0-beta release, older protocol is no longer supported.
+
+Since SkyWalking v6.0.0-beta, SkyWalking agent and backend are using Trace Data Protocol v2.
+[SkyWalking Trace Data Protocol v2](Trace-Data-Protocol-v2.md) define the communication way and format between agent and backend.
### Service Mesh probe protocol
diff --git a/docs/en/protocols/Skywalking-Cross-Process-Propagation-Headers-Protocol-v1.md b/docs/en/protocols/Skywalking-Cross-Process-Propagation-Headers-Protocol-v1.md
deleted file mode 100644
index 6388f89..0000000
--- a/docs/en/protocols/Skywalking-Cross-Process-Propagation-Headers-Protocol-v1.md
+++ /dev/null
@@ -1,62 +0,0 @@
-# Skywalking Cross Process Propagation Headers Protocol
-* Version 1.0
-
-SkyWalking is more likely an APM system, rather than common distributed tracing system.
-The Headers is much more complex than them in order to improving analysis performance of collector.
-You can find many similar mechanism in other commercial APM system.(Some even much more complex than us)
-
-# Header Item
-* Header Name: `sw3`
-* Header Value: Split by `|`, the parts are following.
-
-_The header protocol came from SkyWalking 3, back to 2017. So sw3 header name keeps now._
-
-## Values
-* Trace Segment Id
-
-The trace segment id is the unique id for the part of the distributed trace. Each id is only used in a single thread. The id includes three parts(Long), e.g. `"1.2343.234234234`
- 1) The first one represents application instance id, which assigned by collector. (most likely just an integer value, would be helpful in protobuf)
- 2) The second one represents thread id. (In Java most likely just an integer value, would be helpful in protobuf)
- 3) The third one also has two parts
- 1) A timestamp, measured in milliseconds
- 2) A seq, in current thread, between 0(included) and 9999(included)
-
-If you are using other language, you can generate your own id, but make sure it is unique and combined by three longs.
-
-* Span Id
-
-An integer, unique in a trace segment. Start with 0;
-
-* Parent Application Instance
-
-The instance id of the parent node, e.g. for a server of RPC, this id is from the client application instance id.
-
-* Entry Application Instance
-
-The instance id of the entry application. e.g. A distributed trace `A->B->C`, the id is from `A`.
-
-* Peer Host
-
-The peer-host/peer-id from client side. e.g. client uses `182.14.39.1:9080` to access server, this ip:port is the peer host.
-
-_This value can use exchange/compress collector service to get the id(integer) to represent the string. If you use the string, it must start with `#`, others use integer directly._
-
-* Entry Span Operation Name of First Trace Segment
-
-The operation name/id of entry span propagates from `Entry Application Instance`.
-
-_This value can use exchange/compress collector service to get the id(integer) to represent the string. If you use the string, it must start with `#`, others use integer directly._
-
-* Entry Span Operation Name of Parent Trace Segment
-
-The operation name/id of entry span propagates from `Parent Application Instance`.
-
-_This value can use exchange/compress collector service to get the id(integer) to represent the string. If you use the string, it must start with `#`, others use integer directly._
-
-* Distributed Trace Id
-
-The distributed trace id of the whole trace, if in a batch process, it comes from the trace of first batch producer. The rule is as same as `Trace Segment Id` with three Longs.
-
-### Sample value
-1. `1.2343.234234234|1|1|1|#127.0.0.1:8080|#/portal/|#/testEntrySpan|1.2343.234234234`
-1. `1.2343.234234234|1|1|1|#127.0.0.1:8080|#/portal/|1038|1.2343.234234234`
\ No newline at end of file
diff --git a/docs/en/protocols/Skywalking-Cross-Process-Propagation-Headers-Protocol-v2.md b/docs/en/protocols/Skywalking-Cross-Process-Propagation-Headers-Protocol-v2.md
index fa4b4a7..de40c4c 100644
--- a/docs/en/protocols/Skywalking-Cross-Process-Propagation-Headers-Protocol-v2.md
+++ b/docs/en/protocols/Skywalking-Cross-Process-Propagation-Headers-Protocol-v2.md
@@ -1,9 +1,12 @@
# SkyWalking Cross Process Propagation Headers Protocol
* Version 2.0
+SkyWalking is more likely an APM system, rather than common distributed tracing system.
+The Headers is much more complex than them in order to improving analysis performance of collector.
+You can find many similar mechanism in other commercial APM system. (Some are even much more complex than our's)
+
## Abstract
-SkyWalking Cross Process Propagation Headers Protocol v2 is also named as sw6 protocol. This protocol keeps the same purposes
-of [v1(a.k.a. sw3)](Skywalking-Cross-Process-Propagation-Headers-Protocol-v1.md), which is keep context propagation works.
+SkyWalking Cross Process Propagation Headers Protocol v2 is also named as sw6 protocol, which is for context propagation.
## Differences from v1
The major differences of v2 and v1, comes from SkyWalking's evolution, including
diff --git a/docs/en/protocols/Trace-Data-Protocol-v1.md b/docs/en/protocols/Trace-Data-Protocol-v1.md
deleted file mode 100644
index e687512..0000000
--- a/docs/en/protocols/Trace-Data-Protocol-v1.md
+++ /dev/null
@@ -1,213 +0,0 @@
-# Trace Data Protocol
-Trace Data Protocol describes the data format between SkyWalking agent/sniffer and backend.
-
-## Abstract
-This protocol includes the downstream and upstream data format. Other languages agents/SDKs can use this protocol to
-uplink data to the SkyWalking backend.
-
-- Other services, includes Register, Trace, etc., provided by HTTP/JSON and gRPC both.
-
-### Version
-v1
-
-#### gRPC proto files
-[gRPC proto files](https://github.com/apache/skywalking-data-collect-protocol/tree/v2.0)
-
-
-## Trace Segment Service
-[gRPC service define](https://github.com/apache/skywalking-data-collect-protocol/blob/v2.0/TraceSegmentService.proto)
-
-- UniqueId represents segmentId and globalTraceId. It have 3 parts(Longs), 1) applicationInstanceId, 2) ThreadId, 3) Timestamp + 10000 + seq(seq is in [0, 100000) )
-- Span data please refs to [Plugin Development Guide](../guides/Java-Plugin-Development-Guide.md)
-- Id and name both exist, please use id if possible.
- - operationNameId/endpointName
- - networkAddress/networkAddressId
- - entryServiceName/entryServiceId
- - parentServiceName/parentServiceId
- - peerId/peer
-- componentIds are defined in backend, [here](../../../apm-protocol/apm-network/src/main/java/org/apache/skywalking/apm/network/trace/component/ComponentsDefine.java)
-
-HTTP format:
-
-Input:
-```
-[
- {
- "gt": [[230150, 185809, 24040000]],
- "sg": { //TraceSegmentObject
- "ts": [137150, 185809, 48780000],
- "ai": 2, //serviceId
- "ii": 3, //applicationInstanceId
- "ss": [ //SpanObject
- {
- "si": 0, //spanId
- "tv": 0, //SpanType
- "lv": 2, //SpanLayer
- "ps": -1, //parentSpanId
- "st": 1501858094726, //startTime
- "et": 1501858096804, //endTime
- "ci": 3, //componentId
- "cn": "", //component
- "oi": 0, //operationNameId
- "on": "org.skywaking.apm.testcase.dubbo.services.GreetService.doBusiness()", //endpointName
- "pi": 0, //peerId
- "pn": "", //peer
- "ie": false, //isError
- "rs": [ //TraceSegmentReference
- {
- "pts": [230150, 185809, 24040000], //parentTraceSegmentId
- "pii": 2, //parentServiceInstanceId
- "psp": 1, //parentSpanId
- "psi": 0, //parentServiceId
- "psn": "/dubbox-case/case/dubbox-rest", //parentServiceName
- "ni": 0, //networkAddressId
- "nn": "172.25.0.4:20880", //networkAddress
- "eii": 2, //entryServiceInstanceId
- "esi": 0, //entryServiceId
- "esn": "/dubbox-case/case/dubbox-rest", //entryServiceName
- "rv": 0 //RefTypeValue
- }
- ],
- "to": [ //KeyWithStringValue
- {
- "k": "url", //key
- "v": "rest://172.25.0.4:20880/org.skywaking.apm.testcase.dubbo.services.GreetService.doBusiness()" //value
- },
- {
- "k": "http.method",
- "v": "GET"
- }
- ],
- "lo": [{
- "ti": 1501858094726,
- "ld": [{
- "k": "NullPointException",
- "v": "Error Stack"
- }]
- }]
- },
- {
- "si": 1,
- "tv": 1,
- "lv": 1,
- "ps": 0,
- "st": 1501858094726,
- "et": 1501858095804,
- "ci": 9,
- "cn": "",
- "oi": 0,
- "on": "mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]",
- "pi": 0,
- "pn": "localhost:27017",
- "ie": false,
- "to": [],
- "lo": []
- }
- ]
- }
- }
-]
-```
-
-
-## Deprecated services
-**Deprecated service**(s) are the gRPC services SkyWalking used before. In SkyWalking v6, in order to match the common
-concepts in CloudNative world, these services are deprecated.
-Although there services are still supported at this moment, but it will keep in supported at least before the end of 2019.
-
-## ~~Application Register Service~~
-**Deprecated service**
-
-### Abstract
-Register Application Code to the backend, and receive an integer represents the application.
-
-[gRPC service define](https://github.com/apache/skywalking-data-collect-protocol/blob/v2.0/ApplicationRegisterService.proto)
-
-- applicationCode is the config in your `agent.config`.
-- The return id is **ApplicationId** as the value in `KeyWithIntegerValue`, which will be used in further data uplink.
-
-## ~~Discovery Services~~
-**Deprecated services**
-
-### ~~Register Instance Service~~
-[gRPC service define](https://github.com/apache/skywalking-data-collect-protocol/blob/v2.0/DiscoveryService.proto#L29)
-
-- agentUUID generated by agent, should be unique. Stay same before reboot, at least.
-- **ApplicationInstanceId** will be used in further data uplink.
-
-HTTP format http://ip:port/instance/register(default: localhost:12800)
-
-Input:
-```
-{
- ai: x, #serviceId
- au: "", #agentUUID
- rt: x, #registerTime
- oi: "", #osinfo
-}
-```
-
-Output:
-```
-{
- ai: x, #serviceId
- ii: x, #applicationInstanceId
-}
-```
-
-### ~~Heart beat service~~
-[gRPC service define](https://github.com/apache/skywalking-data-collect-protocol/blob/v2.0/DiscoveryService.proto#L32)
-
-- Recommend to report heart beat every 20-60 seconds.
-- Java agent don't use this, because JVM metrics upstream replace the capabilities of this.
-
-HTTP format http://ip:port/instance/heartbeat(default: localhost:12800)
-
-Input:
-```
-{
- "ii": x, #applicationInstanceId
- "ht": x #heartbeatTime, java timestamp format
-}
-```
-
-## ~~Service Name Discovery Service~~
-**Deprecated services**
-### Abstract
-Replace the literal String service(operation) name by an id(integer)
-
-[gRPC service define](.https://github.com/apache/skywalking-data-collect-protocol/blob/v2.0/DiscoveryService.proto#L70)
-
-- Optional service, reduce the network cost but use more memory as a buffer mapping.
-
-HTTP format http://ip:port/servicename/discovery(default: localhost:12800)
-
-Input:
-```
-{
- ai: x, #serviceId
- sn: "", #serviceName
- st: x, #srcSpanType
-}
-```
-
-Output:
-```
-{
- si: x, #osinfo
- el: { #element
- ai: x, #serviceId
- sn: "", #serviceName
- st: x, #srcSpanType
- }
-}
-```
-
-## ~~Network Address Register Service~~
-### Abstract
-Network Address includes all remove service address, includes ip, port, hostname, etc., which used in RPC framework, MQ, DB, etc.
-
-[gRPC service define](https://github.com/apache/skywalking-data-collect-protocol/blob/v2.0/NetworkAddressRegisterService.proto)
-
-- Optional service, reduce the network cost but use more memory as a buffer mapping.
-
diff --git a/docs/en/setup/service-agent/java-agent/Namespace.md b/docs/en/setup/service-agent/java-agent/Namespace.md
index a2732dd..ad1859b 100644
--- a/docs/en/setup/service-agent/java-agent/Namespace.md
+++ b/docs/en/setup/service-agent/java-agent/Namespace.md
@@ -18,7 +18,7 @@ Namespace is the proposal from this.It is used for tracing and monitoring isolat
The default value of `agent.namespace` is empty.
**Influence**
-The default header key of SkyWalking is `sw3`, more in this [document](../../../protocols/Skywalking-Cross-Process-Propagation-Headers-Protocol-v1.md).
-After `agent.namespace` set, the key changes to `namespace-sw3`.
+The default header key of SkyWalking is `sw6`, more in this [document](../../../protocols/Skywalking-Cross-Process-Propagation-Headers-Protocol-v2.md).
+After `agent.namespace` is set, the key changes to `namespace-sw6`.
The across process propagation chain breaks, when the two sides are using different namespace.
diff --git a/docs/en/setup/service-agent/java-agent/README.md b/docs/en/setup/service-agent/java-agent/README.md
index ae3a34a..f38d67f 100755
--- a/docs/en/setup/service-agent/java-agent/README.md
+++ b/docs/en/setup/service-agent/java-agent/README.md
@@ -78,11 +78,9 @@ property key | Description | Default |
`agent.span_limit_per_segment`|The max number of spans in a single segment. Through this config item, SkyWalking keep your application memory cost estimated.|300 |
`agent.ignore_suffix`|If the operation name of the first span is included in this set, this segment should be ignored.|Not set|
`agent.is_open_debugging_class`|If true, skywalking agent will save all instrumented classes files in `/debugging` folder. SkyWalking team may ask for these files in order to resolve compatible problem.|Not set|
-`agent.active_v2_header`|Active V2 header in default.|`true`|
`agent.instance_uuid` |Instance uuid is the identity of an instance, SkyWalking treat same instance uuid as one instance.if empty, SkyWalking agent will generate an 32-bit uuid. Using `NAME:` as UUID prefix could set the customized instance name. Such as, set it as `NAME:SVR-INSTANCE-A`, `SVR-INSTANCE-A` is the instance name. Otherwise, use `ServiceName`-pid:`id`@`hostname` as the instance name. |`""`|
`agent.instance_properties[key]=value` | Add service instance custom properties. | Not set|
`agent.cause_exception_depth`|How depth the agent goes, when log all cause exceptions.|`5`|
-`agent.active_v1_header `|Deactivate V1 header in default.|`false`|
`agent.cool_down_threshold `|How long should the agent wait (in minute) before re-registering to the OAP server after receiving reset command.|`10`|
`agent.force_reconnection_period `|Force reconnection period of grpc, based on grpc_channel_check_interval.|`1`|
`agent.operation_name_threshold `|The operationName max length, setting this value > 500 is not recommended.|`500`|
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/query/TraceQueryService.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/query/TraceQueryService.java
index 696ce84..ca11770 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/query/TraceQueryService.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/query/TraceQueryService.java
@@ -23,8 +23,7 @@ import java.util.ArrayList;
import java.util.Comparator;
import java.util.LinkedList;
import java.util.List;
-import org.apache.skywalking.apm.network.language.agent.SpanObject;
-import org.apache.skywalking.apm.network.language.agent.TraceSegmentObject;
+import java.util.stream.Collectors;
import org.apache.skywalking.apm.network.language.agent.UniqueId;
import org.apache.skywalking.apm.network.language.agent.v2.SegmentObject;
import org.apache.skywalking.apm.network.language.agent.v2.SpanObjectV2;
@@ -125,13 +124,8 @@ public class TraceQueryService implements Service {
} else {
for (SegmentRecord segment : segmentRecords) {
if (nonNull(segment)) {
- if (segment.getVersion() == 2) {
- SegmentObject segmentObject = SegmentObject.parseFrom(segment.getDataBinary());
- trace.getSpans().addAll(buildSpanV2List(traceId, segment.getSegmentId(), segment.getServiceId(), segmentObject.getSpansList()));
- } else {
- TraceSegmentObject segmentObject = TraceSegmentObject.parseFrom(segment.getDataBinary());
- trace.getSpans().addAll(buildSpanList(traceId, segment.getSegmentId(), segment.getServiceId(), segmentObject.getSpansList()));
- }
+ SegmentObject segmentObject = SegmentObject.parseFrom(segment.getDataBinary());
+ trace.getSpans().addAll(buildSpanV2List(traceId, segment.getSegmentId(), segment.getServiceId(), segmentObject.getSpansList()));
}
}
}
@@ -221,125 +215,9 @@ public class TraceQueryService implements Service {
}
ref.setParentSpanId(reference.getParentSpanId());
- UniqueId uniqueId = reference.getParentTraceSegmentId();
- StringBuilder segmentIdBuilder = new StringBuilder();
- for (int i = 0; i < uniqueId.getIdPartsList().size(); i++) {
- if (i == 0) {
- segmentIdBuilder.append(uniqueId.getIdPartsList().get(i));
- } else {
- segmentIdBuilder.append(".").append(uniqueId.getIdPartsList().get(i));
- }
- }
- ref.setParentSegmentId(segmentIdBuilder.toString());
-
- span.setSegmentParentSpanId(ref.getParentSegmentId() + Const.SEGMENT_SPAN_SPLIT + ref.getParentSpanId());
-
- span.getRefs().add(ref);
- });
-
- spanObject.getTagsList().forEach(tag -> {
- KeyValue keyValue = new KeyValue();
- keyValue.setKey(tag.getKey());
- keyValue.setValue(tag.getValue());
- span.getTags().add(keyValue);
- });
-
- spanObject.getLogsList().forEach(log -> {
- LogEntity logEntity = new LogEntity();
- logEntity.setTime(log.getTime());
-
- log.getDataList().forEach(data -> {
- KeyValue keyValue = new KeyValue();
- keyValue.setKey(data.getKey());
- keyValue.setValue(data.getValue());
- logEntity.getData().add(keyValue);
- });
-
- span.getLogs().add(logEntity);
- });
-
- spans.add(span);
- });
-
- return spans;
- }
-
- private List<Span> buildSpanList(String traceId, String segmentId, int serviceId,
- List<SpanObject> spanObjects) {
- List<Span> spans = new ArrayList<>();
-
- spanObjects.forEach(spanObject -> {
- Span span = new Span();
- span.setTraceId(traceId);
- span.setSegmentId(segmentId);
- span.setSpanId(spanObject.getSpanId());
- span.setParentSpanId(spanObject.getParentSpanId());
- span.setStartTime(spanObject.getStartTime());
- span.setEndTime(spanObject.getEndTime());
- span.setError(spanObject.getIsError());
- span.setLayer(spanObject.getSpanLayer().name());
- span.setType(spanObject.getSpanType().name());
-
- String segmentSpanId = segmentId + Const.SEGMENT_SPAN_SPLIT + spanObject.getSpanId();
- span.setSegmentSpanId(segmentSpanId);
-
- String segmentParentSpanId = segmentId + Const.SEGMENT_SPAN_SPLIT + spanObject.getParentSpanId();
- span.setSegmentParentSpanId(segmentParentSpanId);
-
- if (spanObject.getPeerId() == 0) {
- span.setPeer(spanObject.getPeer());
- } else {
- span.setPeer(getNetworkAddressInventoryCache().get(spanObject.getPeerId()).getName());
- }
-
- String endpointName = spanObject.getOperationName();
- if (spanObject.getOperationNameId() != 0) {
- EndpointInventory endpointInventory = getEndpointInventoryCache().get(spanObject.getOperationNameId());
- if (nonNull(endpointInventory)) {
- endpointName = endpointInventory.getName();
- } else {
- endpointName = Const.EMPTY_STRING;
- }
- }
- span.setEndpointName(endpointName);
-
- final ServiceInventory serviceInventory = getServiceInventoryCache().get(serviceId);
- if (serviceInventory != null) {
- span.setServiceCode(serviceInventory.getName());
- } else {
- span.setServiceCode("unknown");
- }
-
- if (spanObject.getComponentId() == 0) {
- span.setComponent(spanObject.getComponent());
- } else {
- span.setComponent(getComponentLibraryCatalogService().getComponentName(spanObject.getComponentId()));
- }
-
- spanObject.getRefsList().forEach(reference -> {
- Ref ref = new Ref();
- ref.setTraceId(traceId);
-
- switch (reference.getRefType()) {
- case CrossThread:
- ref.setType(RefType.CROSS_THREAD);
- break;
- case CrossProcess:
- ref.setType(RefType.CROSS_PROCESS);
- break;
- }
- ref.setParentSpanId(reference.getParentSpanId());
-
- UniqueId uniqueId = reference.getParentTraceSegmentId();
- StringBuilder segmentIdBuilder = new StringBuilder();
- for (int i = 0; i < uniqueId.getIdPartsList().size(); i++) {
- if (i == 0) {
- segmentIdBuilder.append(uniqueId.getIdPartsList().get(i));
- } else {
- segmentIdBuilder.append(".").append(uniqueId.getIdPartsList().get(i));
- }
- }
- ref.setParentSegmentId(segmentIdBuilder.toString());
+ final UniqueId uniqueId = reference.getParentTraceSegmentId();
+ final String parentSegmentId = uniqueId.getIdPartsList().stream().map(String::valueOf).collect(Collectors.joining("."));
+ ref.setParentSegmentId(parentSegmentId);
span.setSegmentParentSpanId(ref.getParentSegmentId() + Const.SEGMENT_SPAN_SPLIT + ref.getParentSpanId());
@@ -392,14 +270,14 @@ public class TraceQueryService implements Service {
rootSpans.add(span);
}
});
- /**
+ /*
* In some cases, there are segment fragments, which could not be linked by Ref,
* because of two kinds of reasons.
* 1. Multiple leaf segments have no particular order in the storage.
* 2. Lost in sampling, agent fail safe, segment lost, even bug.
* Sorting the segments makes the trace view more readable.
*/
- rootSpans.sort(Comparator.comparing(span -> span.getStartTime()));
+ rootSpans.sort(Comparator.comparing(Span::getStartTime));
return rootSpans;
}
diff --git a/oap-server/server-library/library-buffer/src/main/java/org/apache/skywalking/oap/server/library/buffer/BufferData.java b/oap-server/server-library/library-buffer/src/main/java/org/apache/skywalking/oap/server/library/buffer/BufferData.java
index 4ef90c5..6feef6b 100644
--- a/oap-server/server-library/library-buffer/src/main/java/org/apache/skywalking/oap/server/library/buffer/BufferData.java
+++ b/oap-server/server-library/library-buffer/src/main/java/org/apache/skywalking/oap/server/library/buffer/BufferData.java
@@ -19,8 +19,8 @@
package org.apache.skywalking.oap.server.library.buffer;
import com.google.protobuf.GeneratedMessageV3;
-import lombok.*;
-import org.apache.skywalking.apm.network.language.agent.TraceSegmentObject;
+import lombok.Getter;
+import lombok.Setter;
import org.apache.skywalking.apm.network.language.agent.v2.SegmentObject;
/**
@@ -29,7 +29,6 @@ import org.apache.skywalking.apm.network.language.agent.v2.SegmentObject;
@Getter
public class BufferData<MESSAGE_TYPE extends GeneratedMessageV3> {
private MESSAGE_TYPE messageType;
- @Setter private TraceSegmentObject v1Segment;
@Setter private SegmentObject v2Segment;
public BufferData(MESSAGE_TYPE messageType) {
diff --git a/oap-server/server-library/library-buffer/src/test/java/org/apache/skywalking/oap/server/library/buffer/BufferStreamTestCase.java b/oap-server/server-library/library-buffer/src/test/java/org/apache/skywalking/oap/server/library/buffer/BufferStreamTestCase.java
deleted file mode 100644
index 4b7e7d6..0000000
--- a/oap-server/server-library/library-buffer/src/test/java/org/apache/skywalking/oap/server/library/buffer/BufferStreamTestCase.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-package org.apache.skywalking.oap.server.library.buffer;
-
-import java.io.IOException;
-import java.util.concurrent.TimeUnit;
-import org.apache.skywalking.apm.network.language.agent.*;
-import org.slf4j.*;
-
-/**
- * @author peng-yongsheng
- */
-public class BufferStreamTestCase {
-
- private static final Logger logger = LoggerFactory.getLogger(BufferStreamTestCase.class);
-
- public static void main(String[] args) throws IOException, InterruptedException {
- String directory = "/Users/pengys5/code/sky-walking/buffer-test";
- BufferStream.Builder<TraceSegmentObject> builder = new BufferStream.Builder<>(directory);
-// builder.cleanWhenRestart(true);
- builder.dataFileMaxSize(50);
- builder.offsetFileMaxSize(10);
- builder.parser(TraceSegmentObject.parser());
- builder.callBack(bufferData -> {
- logger.info("segment parse: {}", bufferData.getMessageType().getSpans(0).getSpanId());
- return false;
- });
-
- BufferStream<TraceSegmentObject> stream = builder.build();
- stream.initialize();
-
- TimeUnit.SECONDS.sleep(5);
-
- StringBuilder str = new StringBuilder("2018-08-27 11:59:45,261 main DEBUG Registering MBean org.apache.logging.log4j2:type=6d6f6e28");
- for (int i = 0; i < 1000; i++) {
- str.append("main DEBUG Registering MBean org.apache.logging.log4j2:type=6d6f6e28 main DEBUG Registering MBean org.apache.logging.log4j2:type=6d6f6e28 main DEBUG Registering MBean org.apache.logging.log4j2:type=6d6f6e28");
- }
-
- for (int i = 0; i < 20000; i++) {
- TraceSegmentObject.Builder segment = TraceSegmentObject.newBuilder();
- SpanObject.Builder span = SpanObject.newBuilder();
-
- span.setSpanId(i);
- span.setOperationName(str.toString());
- segment.addSpans(span);
- stream.write(segment.build());
-
- if (i % 1000 == 0) {
- TimeUnit.MILLISECONDS.sleep(50);
- }
- }
- }
-}
diff --git a/oap-server/server-receiver-plugin/skywalking-jvm-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/jvm/provider/JVMModuleProvider.java b/oap-server/server-receiver-plugin/skywalking-jvm-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/jvm/provider/JVMModuleProvider.java
index 535144b..b9bde06 100644
--- a/oap-server/server-receiver-plugin/skywalking-jvm-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/jvm/provider/JVMModuleProvider.java
+++ b/oap-server/server-receiver-plugin/skywalking-jvm-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/jvm/provider/JVMModuleProvider.java
@@ -47,7 +47,6 @@ public class JVMModuleProvider extends ModuleProvider {
@Override public void start() {
GRPCHandlerRegister grpcHandlerRegister = getManager().find(SharingServerModule.NAME).provider().getService(GRPCHandlerRegister.class);
- grpcHandlerRegister.addHandler(new JVMMetricsServiceHandler(getManager()));
grpcHandlerRegister.addHandler(new JVMMetricReportServiceHandler(getManager()));
}
diff --git a/oap-server/server-receiver-plugin/skywalking-jvm-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/jvm/provider/handler/JVMMetricsServiceHandler.java b/oap-server/server-receiver-plugin/skywalking-jvm-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/jvm/provider/handler/JVMMetricsServiceHandler.java
deleted file mode 100644
index 0f13a28..0000000
--- a/oap-server/server-receiver-plugin/skywalking-jvm-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/jvm/provider/handler/JVMMetricsServiceHandler.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-package org.apache.skywalking.oap.server.receiver.jvm.provider.handler;
-
-import io.grpc.stub.StreamObserver;
-import org.apache.skywalking.apm.network.language.agent.*;
-import org.apache.skywalking.oap.server.library.module.ModuleManager;
-import org.apache.skywalking.oap.server.library.server.grpc.GRPCHandler;
-import org.apache.skywalking.oap.server.core.analysis.TimeBucket;
-import org.slf4j.*;
-
-/**
- * @author peng-yongsheng
- */
-public class JVMMetricsServiceHandler extends JVMMetricsServiceGrpc.JVMMetricsServiceImplBase implements GRPCHandler {
-
- private static final Logger logger = LoggerFactory.getLogger(JVMMetricsServiceHandler.class);
-
- private final JVMSourceDispatcher jvmSourceDispatcher;
-
- public JVMMetricsServiceHandler(ModuleManager moduleManager) {
- this.jvmSourceDispatcher = new JVMSourceDispatcher(moduleManager);
- }
-
- @Override public void collect(JVMMetrics request, StreamObserver<Downstream> responseObserver) {
- int serviceInstanceId = request.getApplicationInstanceId();
-
- if (logger.isDebugEnabled()) {
- logger.debug("receive the jvm metrics from service instance, id: {}", serviceInstanceId);
- }
-
- request.getMetricsList().forEach(metrics -> {
- long minuteTimeBucket = TimeBucket.getMinuteTimeBucket(metrics.getTime());
- jvmSourceDispatcher.sendMetric(serviceInstanceId, minuteTimeBucket, metrics);
- });
-
- responseObserver.onNext(Downstream.newBuilder().build());
- responseObserver.onCompleted();
- }
-
-}
diff --git a/oap-server/server-receiver-plugin/skywalking-jvm-receiver-plugin/src/test/java/org/apache/skywalking/oap/server/receiver/jvm/provider/handler/JVMMetricsServiceHandlerMainTest.java b/oap-server/server-receiver-plugin/skywalking-jvm-receiver-plugin/src/test/java/org/apache/skywalking/oap/server/receiver/jvm/provider/handler/JVMMetricsServiceHandlerMainTest.java
deleted file mode 100644
index 5a09022..0000000
--- a/oap-server/server-receiver-plugin/skywalking-jvm-receiver-plugin/src/test/java/org/apache/skywalking/oap/server/receiver/jvm/provider/handler/JVMMetricsServiceHandlerMainTest.java
+++ /dev/null
@@ -1,143 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-package org.apache.skywalking.oap.server.receiver.jvm.provider.handler;
-
-import io.grpc.*;
-import java.util.concurrent.*;
-import org.apache.skywalking.apm.network.common.CPU;
-import org.apache.skywalking.apm.network.language.agent.*;
-
-/**
- * @author peng-yongsheng
- */
-public class JVMMetricsServiceHandlerMainTest {
-
- public static void main(String[] args) {
- ManagedChannel channel = ManagedChannelBuilder.forAddress("localhost", 11800).usePlaintext().build();
-
- JVMMetricsServiceGrpc.JVMMetricsServiceBlockingStub stub = JVMMetricsServiceGrpc.newBlockingStub(channel);
-
- Executors.newSingleThreadScheduledExecutor().schedule(() -> send(stub), 1, TimeUnit.SECONDS);
- }
-
- private static void send(JVMMetricsServiceGrpc.JVMMetricsServiceBlockingStub stub) {
- JVMMetrics.Builder jvmMetrics = JVMMetrics.newBuilder();
- jvmMetrics.setApplicationInstanceId(2);
-
- JVMMetric.Builder jvmMetricBuilder = JVMMetric.newBuilder();
- jvmMetricBuilder.setTime(System.currentTimeMillis());
-
- buildCPUMetric(jvmMetricBuilder);
- buildGCMetric(jvmMetricBuilder);
- buildMemoryMetric(jvmMetricBuilder);
- buildMemoryPoolMetric(jvmMetricBuilder);
-
- jvmMetrics.addMetrics(jvmMetricBuilder);
-
- stub.collect(jvmMetrics.build());
- }
-
- private static void buildMemoryPoolMetric(JVMMetric.Builder metricBuilder) {
- MemoryPool.Builder codeCache = MemoryPool.newBuilder();
- codeCache.setInit(10);
- codeCache.setMax(100);
- codeCache.setCommited(10);
- codeCache.setUsed(50);
- codeCache.setType(PoolType.CODE_CACHE_USAGE);
- metricBuilder.addMemoryPool(codeCache);
-
- MemoryPool.Builder newGen = MemoryPool.newBuilder();
- newGen.setInit(10);
- newGen.setMax(100);
- newGen.setCommited(10);
- newGen.setUsed(50);
- newGen.setType(PoolType.NEWGEN_USAGE);
- metricBuilder.addMemoryPool(newGen);
-
- MemoryPool.Builder oldGen = MemoryPool.newBuilder();
- oldGen.setInit(10);
- oldGen.setMax(100);
- oldGen.setCommited(10);
- oldGen.setUsed(50);
- oldGen.setType(PoolType.OLDGEN_USAGE);
- metricBuilder.addMemoryPool(oldGen);
-
- MemoryPool.Builder survivor = MemoryPool.newBuilder();
- survivor.setInit(10);
- survivor.setMax(100);
- survivor.setCommited(10);
- survivor.setUsed(50);
- survivor.setType(PoolType.SURVIVOR_USAGE);
- metricBuilder.addMemoryPool(survivor);
-
- MemoryPool.Builder permGen = MemoryPool.newBuilder();
- permGen.setInit(10);
- permGen.setMax(100);
- permGen.setCommited(10);
- permGen.setUsed(50);
- permGen.setType(PoolType.PERMGEN_USAGE);
- metricBuilder.addMemoryPool(permGen);
-
- MemoryPool.Builder metaSpace = MemoryPool.newBuilder();
- metaSpace.setInit(10);
- metaSpace.setMax(100);
- metaSpace.setCommited(10);
- metaSpace.setUsed(50);
- metaSpace.setType(PoolType.METASPACE_USAGE);
- metricBuilder.addMemoryPool(metaSpace);
- }
-
- private static void buildMemoryMetric(JVMMetric.Builder metricBuilder) {
- Memory.Builder isHeap = Memory.newBuilder();
- isHeap.setInit(20);
- isHeap.setMax(100);
- isHeap.setCommitted(20);
- isHeap.setUsed(60);
- isHeap.setIsHeap(true);
- metricBuilder.addMemory(isHeap);
-
- Memory.Builder nonHeap = Memory.newBuilder();
- nonHeap.setInit(20);
- nonHeap.setMax(100);
- nonHeap.setCommitted(20);
- nonHeap.setUsed(60);
- nonHeap.setIsHeap(false);
- metricBuilder.addMemory(nonHeap);
- }
-
- private static void buildGCMetric(JVMMetric.Builder metricBuilder) {
- GC.Builder newGC = GC.newBuilder();
- newGC.setPhrase(GCPhrase.NEW);
- newGC.setCount(2);
- newGC.setTime(1000);
- metricBuilder.addGc(newGC);
-
- GC.Builder oldGC = GC.newBuilder();
- oldGC.setPhrase(GCPhrase.OLD);
- oldGC.setCount(4);
- oldGC.setTime(49);
- metricBuilder.addGc(oldGC);
- }
-
- private static void buildCPUMetric(JVMMetric.Builder metricBuilder) {
- CPU.Builder cpu = CPU.newBuilder();
- cpu.setUsagePercent(20);
- metricBuilder.setCpu(cpu.build());
- }
-}
diff --git a/oap-server/server-receiver-plugin/skywalking-register-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/register/provider/RegisterModuleProvider.java b/oap-server/server-receiver-plugin/skywalking-register-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/register/provider/RegisterModuleProvider.java
index ffdba90..85ffe55 100644
--- a/oap-server/server-receiver-plugin/skywalking-register-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/register/provider/RegisterModuleProvider.java
+++ b/oap-server/server-receiver-plugin/skywalking-register-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/register/provider/RegisterModuleProvider.java
@@ -19,12 +19,13 @@
package org.apache.skywalking.oap.server.receiver.register.provider;
import org.apache.skywalking.oap.server.core.CoreModule;
-import org.apache.skywalking.oap.server.core.server.*;
-import org.apache.skywalking.oap.server.library.module.*;
+import org.apache.skywalking.oap.server.core.server.GRPCHandlerRegister;
+import org.apache.skywalking.oap.server.library.module.ModuleConfig;
+import org.apache.skywalking.oap.server.library.module.ModuleDefine;
+import org.apache.skywalking.oap.server.library.module.ModuleProvider;
import org.apache.skywalking.oap.server.receiver.register.module.RegisterModule;
-import org.apache.skywalking.oap.server.receiver.register.provider.handler.v5.grpc.*;
-import org.apache.skywalking.oap.server.receiver.register.provider.handler.v5.rest.*;
-import org.apache.skywalking.oap.server.receiver.register.provider.handler.v6.grpc.*;
+import org.apache.skywalking.oap.server.receiver.register.provider.handler.v6.grpc.RegisterServiceHandler;
+import org.apache.skywalking.oap.server.receiver.register.provider.handler.v6.grpc.ServiceInstancePingServiceHandler;
import org.apache.skywalking.oap.server.receiver.sharing.server.SharingServerModule;
/**
@@ -49,21 +50,8 @@ public class RegisterModuleProvider extends ModuleProvider {
@Override public void start() {
GRPCHandlerRegister grpcHandlerRegister = getManager().find(SharingServerModule.NAME).provider().getService(GRPCHandlerRegister.class);
- grpcHandlerRegister.addHandler(new ApplicationRegisterHandler(getManager()));
- grpcHandlerRegister.addHandler(new InstanceDiscoveryServiceHandler(getManager()));
- grpcHandlerRegister.addHandler(new ServiceNameDiscoveryHandler(getManager()));
- grpcHandlerRegister.addHandler(new NetworkAddressRegisterServiceHandler(getManager()));
-
- // v2
grpcHandlerRegister.addHandler(new RegisterServiceHandler(getManager()));
grpcHandlerRegister.addHandler(new ServiceInstancePingServiceHandler(getManager()));
-
- JettyHandlerRegister jettyHandlerRegister = getManager().find(SharingServerModule.NAME).provider().getService(JettyHandlerRegister.class);
- jettyHandlerRegister.addHandler(new ApplicationRegisterServletHandler(getManager()));
- jettyHandlerRegister.addHandler(new InstanceDiscoveryServletHandler(getManager()));
- jettyHandlerRegister.addHandler(new InstanceHeartBeatServletHandler(getManager()));
- jettyHandlerRegister.addHandler(new NetworkAddressRegisterServletHandler(getManager()));
- jettyHandlerRegister.addHandler(new ServiceNameDiscoveryServiceHandler(getManager()));
}
@Override public void notifyAfterCompleted() {
diff --git a/oap-server/server-receiver-plugin/skywalking-register-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/register/provider/handler/v5/grpc/ApplicationRegisterHandler.java b/oap-server/server-receiver-plugin/skywalking-register-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/register/provider/handler/v5/grpc/ApplicationRegisterHandler.java
deleted file mode 100644
index f0e2b5e..0000000
--- a/oap-server/server-receiver-plugin/skywalking-register-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/register/provider/handler/v5/grpc/ApplicationRegisterHandler.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-package org.apache.skywalking.oap.server.receiver.register.provider.handler.v5.grpc;
-
-import io.grpc.stub.StreamObserver;
-import org.apache.skywalking.apm.network.language.agent.*;
-import org.apache.skywalking.oap.server.core.*;
-import org.apache.skywalking.oap.server.core.register.service.IServiceInventoryRegister;
-import org.apache.skywalking.oap.server.library.module.ModuleManager;
-import org.apache.skywalking.oap.server.library.server.grpc.GRPCHandler;
-import org.slf4j.*;
-
-/**
- * @author peng-yongsheng
- */
-public class ApplicationRegisterHandler extends ApplicationRegisterServiceGrpc.ApplicationRegisterServiceImplBase implements GRPCHandler {
-
- private static final Logger logger = LoggerFactory.getLogger(ApplicationRegisterHandler.class);
-
- private final IServiceInventoryRegister serviceInventoryRegister;
-
- public ApplicationRegisterHandler(ModuleManager moduleManager) {
- serviceInventoryRegister = moduleManager.find(CoreModule.NAME).provider().getService(IServiceInventoryRegister.class);
- }
-
- @Override
- public void applicationCodeRegister(Application request, StreamObserver<ApplicationMapping> responseObserver) {
- if (logger.isDebugEnabled()) {
- logger.debug("Register application, application code: {}", request.getApplicationCode());
- }
-
- ApplicationMapping.Builder builder = ApplicationMapping.newBuilder();
- String serviceName = request.getApplicationCode();
- int serviceId = serviceInventoryRegister.getOrCreate(serviceName, null);
-
- if (serviceId != Const.NONE) {
- KeyWithIntegerValue value = KeyWithIntegerValue.newBuilder().setKey(serviceName).setValue(serviceId).build();
- builder.setApplication(value);
- }
- responseObserver.onNext(builder.build());
- responseObserver.onCompleted();
- }
-}
diff --git a/oap-server/server-receiver-plugin/skywalking-register-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/register/provider/handler/v5/grpc/InstanceDiscoveryServiceHandler.java b/oap-server/server-receiver-plugin/skywalking-register-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/register/provider/handler/v5/grpc/InstanceDiscoveryServiceHandler.java
deleted file mode 100644
index 4bb5479..0000000
--- a/oap-server/server-receiver-plugin/skywalking-register-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/register/provider/handler/v5/grpc/InstanceDiscoveryServiceHandler.java
+++ /dev/null
@@ -1,98 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-package org.apache.skywalking.oap.server.receiver.register.provider.handler.v5.grpc;
-
-import com.google.common.base.Strings;
-import com.google.gson.JsonObject;
-import io.grpc.stub.StreamObserver;
-import java.util.Objects;
-import org.apache.skywalking.apm.network.language.agent.*;
-import org.apache.skywalking.oap.server.core.CoreModule;
-import org.apache.skywalking.oap.server.core.cache.*;
-import org.apache.skywalking.oap.server.core.register.*;
-import org.apache.skywalking.oap.server.core.register.ServiceInstanceInventory.PropertyUtil;
-import org.apache.skywalking.oap.server.core.register.service.*;
-import org.apache.skywalking.oap.server.library.module.ModuleManager;
-import org.apache.skywalking.oap.server.library.server.grpc.GRPCHandler;
-import org.slf4j.*;
-
-/**
- * @author peng-yongsheng
- */
-public class InstanceDiscoveryServiceHandler extends InstanceDiscoveryServiceGrpc.InstanceDiscoveryServiceImplBase implements GRPCHandler {
-
- private static final Logger logger = LoggerFactory.getLogger(InstanceDiscoveryServiceHandler.class);
-
- private final ServiceInventoryCache serviceInventoryCache;
- private final ServiceInstanceInventoryCache serviceInstanceInventoryCache;
- private final IServiceInventoryRegister serviceInventoryRegister;
- private final IServiceInstanceInventoryRegister serviceInstanceInventoryRegister;
-
- public InstanceDiscoveryServiceHandler(ModuleManager moduleManager) {
- this.serviceInventoryCache = moduleManager.find(CoreModule.NAME).provider().getService(ServiceInventoryCache.class);
- this.serviceInstanceInventoryCache = moduleManager.find(CoreModule.NAME).provider().getService(ServiceInstanceInventoryCache.class);
- this.serviceInventoryRegister = moduleManager.find(CoreModule.NAME).provider().getService(IServiceInventoryRegister.class);
- this.serviceInstanceInventoryRegister = moduleManager.find(CoreModule.NAME).provider().getService(IServiceInstanceInventoryRegister.class);
- }
-
- @Override
- public void registerInstance(ApplicationInstance request,
- StreamObserver<ApplicationInstanceMapping> responseObserver) {
- OSInfo osinfo = request.getOsinfo();
-
- JsonObject instanceProperties = new JsonObject();
- instanceProperties.addProperty(PropertyUtil.HOST_NAME, osinfo.getHostname());
- instanceProperties.addProperty(PropertyUtil.OS_NAME, osinfo.getOsName());
- instanceProperties.addProperty(PropertyUtil.PROCESS_NO, osinfo.getProcessNo() + "");
- instanceProperties.addProperty(PropertyUtil.IPV4S, PropertyUtil.ipv4sSerialize(osinfo.getIpv4SList()));
-
- ServiceInventory serviceInventory = serviceInventoryCache.get(request.getApplicationId());
-
- String instanceName = serviceInventory.getName();
- if (osinfo.getProcessNo() != 0) {
- instanceName += "-pid:" + osinfo.getProcessNo();
- }
- if (!Strings.isNullOrEmpty(osinfo.getHostname())) {
- instanceName += "@" + osinfo.getHostname();
- }
-
- int serviceInstanceId = serviceInstanceInventoryRegister.getOrCreate(request.getApplicationId(), instanceName, request.getAgentUUID(), request.getRegisterTime(), instanceProperties);
- ApplicationInstanceMapping.Builder builder = ApplicationInstanceMapping.newBuilder();
- builder.setApplicationId(request.getApplicationId());
- builder.setApplicationInstanceId(serviceInstanceId);
- responseObserver.onNext(builder.build());
- responseObserver.onCompleted();
- }
-
- @Override public void heartbeat(ApplicationInstanceHeartbeat request, StreamObserver<Downstream> responseObserver) {
- int serviceInstanceId = request.getApplicationInstanceId();
- long heartBeatTime = request.getHeartbeatTime();
- serviceInstanceInventoryRegister.heartbeat(serviceInstanceId, heartBeatTime);
-
- ServiceInstanceInventory serviceInstanceInventory = serviceInstanceInventoryCache.get(serviceInstanceId);
- if (Objects.nonNull(serviceInstanceInventory)) {
- serviceInventoryRegister.heartbeat(serviceInstanceInventory.getServiceId(), heartBeatTime);
- } else {
- logger.warn("Can't found service by service instance id from cache, service instance id is: {}", serviceInstanceId);
- }
-
- responseObserver.onNext(Downstream.getDefaultInstance());
- responseObserver.onCompleted();
- }
-}
diff --git a/oap-server/server-receiver-plugin/skywalking-register-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/register/provider/handler/v5/grpc/NetworkAddressRegisterServiceHandler.java b/oap-server/server-receiver-plugin/skywalking-register-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/register/provider/handler/v5/grpc/NetworkAddressRegisterServiceHandler.java
deleted file mode 100644
index a1adb9e..0000000
--- a/oap-server/server-receiver-plugin/skywalking-register-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/register/provider/handler/v5/grpc/NetworkAddressRegisterServiceHandler.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-package org.apache.skywalking.oap.server.receiver.register.provider.handler.v5.grpc;
-
-import com.google.protobuf.ProtocolStringList;
-import io.grpc.stub.StreamObserver;
-import org.apache.skywalking.apm.network.language.agent.*;
-import org.apache.skywalking.oap.server.core.*;
-import org.apache.skywalking.oap.server.core.register.service.INetworkAddressInventoryRegister;
-import org.apache.skywalking.oap.server.library.module.ModuleManager;
-import org.apache.skywalking.oap.server.library.server.grpc.GRPCHandler;
-import org.slf4j.*;
-
-/**
- * @author peng-yongsheng
- */
-public class NetworkAddressRegisterServiceHandler extends NetworkAddressRegisterServiceGrpc.NetworkAddressRegisterServiceImplBase implements GRPCHandler {
-
- private static final Logger logger = LoggerFactory.getLogger(NetworkAddressRegisterServiceHandler.class);
-
- private final INetworkAddressInventoryRegister networkAddressInventoryRegister;
-
- public NetworkAddressRegisterServiceHandler(ModuleManager moduleManager) {
- this.networkAddressInventoryRegister = moduleManager.find(CoreModule.NAME).provider().getService(INetworkAddressInventoryRegister.class);
- }
-
- @Override
- public void batchRegister(NetworkAddresses request, StreamObserver<NetworkAddressMappings> responseObserver) {
- if (logger.isDebugEnabled()) {
- logger.debug("register application");
- }
-
- ProtocolStringList addressesList = request.getAddressesList();
-
- NetworkAddressMappings.Builder builder = NetworkAddressMappings.newBuilder();
- for (String networkAddress : addressesList) {
- int addressId = networkAddressInventoryRegister.getOrCreate(networkAddress, null);
-
- if (addressId != Const.NONE) {
- KeyWithIntegerValue value = KeyWithIntegerValue.newBuilder().setKey(networkAddress).setValue(addressId).build();
- builder.addAddressIds(value);
- }
- }
- responseObserver.onNext(builder.build());
- responseObserver.onCompleted();
- }
-}
diff --git a/oap-server/server-receiver-plugin/skywalking-register-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/register/provider/handler/v5/grpc/ServiceNameDiscoveryHandler.java b/oap-server/server-receiver-plugin/skywalking-register-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/register/provider/handler/v5/grpc/ServiceNameDiscoveryHandler.java
deleted file mode 100644
index f628c88..0000000
--- a/oap-server/server-receiver-plugin/skywalking-register-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/register/provider/handler/v5/grpc/ServiceNameDiscoveryHandler.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-package org.apache.skywalking.oap.server.receiver.register.provider.handler.v5.grpc;
-
-import io.grpc.stub.StreamObserver;
-import java.util.List;
-import org.apache.skywalking.apm.network.language.agent.*;
-import org.apache.skywalking.oap.server.core.*;
-import org.apache.skywalking.oap.server.core.register.service.IEndpointInventoryRegister;
-import org.apache.skywalking.oap.server.core.source.DetectPoint;
-import org.apache.skywalking.oap.server.library.module.ModuleManager;
-import org.apache.skywalking.oap.server.library.server.grpc.GRPCHandler;
-import org.slf4j.*;
-
-/**
- * @author peng-yongsheng
- */
-public class ServiceNameDiscoveryHandler extends ServiceNameDiscoveryServiceGrpc.ServiceNameDiscoveryServiceImplBase implements GRPCHandler {
-
- private static final Logger logger = LoggerFactory.getLogger(ServiceNameDiscoveryHandler.class);
-
- private final IEndpointInventoryRegister inventoryService;
-
- public ServiceNameDiscoveryHandler(ModuleManager moduleManager) {
- this.inventoryService = moduleManager.find(CoreModule.NAME).provider().getService(IEndpointInventoryRegister.class);
- }
-
- @Override public void discovery(ServiceNameCollection request,
- StreamObserver<ServiceNameMappingCollection> responseObserver) {
- List<ServiceNameElement> serviceNameElementList = request.getElementsList();
-
- ServiceNameMappingCollection.Builder builder = ServiceNameMappingCollection.newBuilder();
- for (ServiceNameElement serviceNameElement : serviceNameElementList) {
- int serviceId = serviceNameElement.getApplicationId();
- String endpointName = serviceNameElement.getServiceName();
- int endpointId = inventoryService.getOrCreate(serviceId, endpointName, DetectPoint.fromSpanType(serviceNameElement.getSrcSpanType()));
-
- if (endpointId != Const.NONE) {
- ServiceNameMappingElement.Builder mappingElement = ServiceNameMappingElement.newBuilder();
- mappingElement.setServiceId(endpointId);
- mappingElement.setElement(serviceNameElement);
- builder.addElements(mappingElement);
- }
- }
-
- responseObserver.onNext(builder.build());
- responseObserver.onCompleted();
- }
-}
diff --git a/oap-server/server-receiver-plugin/skywalking-register-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/register/provider/handler/v5/rest/ApplicationRegisterServletHandler.java b/oap-server/server-receiver-plugin/skywalking-register-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/register/provider/handler/v5/rest/ApplicationRegisterServletHandler.java
deleted file mode 100644
index b08512b..0000000
--- a/oap-server/server-receiver-plugin/skywalking-register-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/register/provider/handler/v5/rest/ApplicationRegisterServletHandler.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-package org.apache.skywalking.oap.server.receiver.register.provider.handler.v5.rest;
-
-import com.google.gson.*;
-import java.io.IOException;
-import javax.servlet.http.HttpServletRequest;
-import org.apache.skywalking.oap.server.core.CoreModule;
-import org.apache.skywalking.oap.server.core.register.service.IServiceInventoryRegister;
-import org.apache.skywalking.oap.server.library.module.ModuleManager;
-import org.apache.skywalking.oap.server.library.server.jetty.*;
-import org.slf4j.*;
-
-/**
- * @author peng-yongsheng
- */
-public class ApplicationRegisterServletHandler extends JettyJsonHandler {
-
- private static final Logger logger = LoggerFactory.getLogger(ApplicationRegisterServletHandler.class);
-
- private final IServiceInventoryRegister serviceInventoryRegister;
- private Gson gson = new Gson();
- private static final String APPLICATION_CODE = "c";
- private static final String APPLICATION_ID = "i";
-
- public ApplicationRegisterServletHandler(ModuleManager moduleManager) {
- serviceInventoryRegister = moduleManager.find(CoreModule.NAME).provider().getService(IServiceInventoryRegister.class);
- }
-
- @Override public String pathSpec() {
- return "/application/register";
- }
-
- @Override protected JsonElement doGet(HttpServletRequest req) throws ArgumentsParseException {
- throw new UnsupportedOperationException();
- }
-
- @Override protected JsonElement doPost(HttpServletRequest req) throws ArgumentsParseException {
- JsonArray responseArray = new JsonArray();
- try {
- JsonArray applicationCodes = gson.fromJson(req.getReader(), JsonArray.class);
- for (int i = 0; i < applicationCodes.size(); i++) {
- String applicationCode = applicationCodes.get(i).getAsString();
- int applicationId = serviceInventoryRegister.getOrCreate(applicationCode, null);
- JsonObject mapping = new JsonObject();
- mapping.addProperty(APPLICATION_CODE, applicationCode);
- mapping.addProperty(APPLICATION_ID, applicationId);
- responseArray.add(mapping);
- }
- } catch (IOException e) {
- logger.error(e.getMessage(), e);
- }
- return responseArray;
- }
-}
diff --git a/oap-server/server-receiver-plugin/skywalking-register-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/register/provider/handler/v5/rest/InstanceDiscoveryServletHandler.java b/oap-server/server-receiver-plugin/skywalking-register-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/register/provider/handler/v5/rest/InstanceDiscoveryServletHandler.java
deleted file mode 100644
index d1ba180..0000000
--- a/oap-server/server-receiver-plugin/skywalking-register-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/register/provider/handler/v5/rest/InstanceDiscoveryServletHandler.java
+++ /dev/null
@@ -1,102 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-package org.apache.skywalking.oap.server.receiver.register.provider.handler.v5.rest;
-
-import com.google.gson.*;
-import java.io.IOException;
-import java.util.*;
-import javax.servlet.http.HttpServletRequest;
-import org.apache.skywalking.oap.server.core.CoreModule;
-import org.apache.skywalking.oap.server.core.cache.ServiceInventoryCache;
-import org.apache.skywalking.oap.server.core.register.*;
-import org.apache.skywalking.oap.server.core.register.service.IServiceInstanceInventoryRegister;
-import org.apache.skywalking.oap.server.library.module.ModuleManager;
-import org.apache.skywalking.oap.server.library.server.jetty.*;
-import org.slf4j.*;
-
-import static org.apache.skywalking.oap.server.core.register.ServiceInstanceInventory.PropertyUtil.*;
-
-/**
- * @author peng-yongsheng
- */
-public class InstanceDiscoveryServletHandler extends JettyJsonHandler {
-
- private static final Logger logger = LoggerFactory.getLogger(InstanceDiscoveryServletHandler.class);
-
- private final IServiceInstanceInventoryRegister serviceInstanceInventoryRegister;
- private final ServiceInventoryCache serviceInventoryCache;
- private final Gson gson = new Gson();
-
- private static final String APPLICATION_ID = "ai";
- private static final String AGENT_UUID = "au";
- private static final String REGISTER_TIME = "rt";
- private static final String INSTANCE_ID = "ii";
- private static final String OS_INFO = "oi";
-
- public InstanceDiscoveryServletHandler(ModuleManager moduleManager) {
- this.serviceInventoryCache = moduleManager.find(CoreModule.NAME).provider().getService(ServiceInventoryCache.class);
- this.serviceInstanceInventoryRegister = moduleManager.find(CoreModule.NAME).provider().getService(IServiceInstanceInventoryRegister.class);
- }
-
- @Override public String pathSpec() {
- return "/instance/register";
- }
-
- @Override protected JsonElement doGet(HttpServletRequest req) throws ArgumentsParseException {
- throw new UnsupportedOperationException();
- }
-
- @Override protected JsonElement doPost(HttpServletRequest req) throws ArgumentsParseException {
- JsonObject responseJson = new JsonObject();
- try {
- JsonObject instance = gson.fromJson(req.getReader(), JsonObject.class);
- int applicationId = instance.get(APPLICATION_ID).getAsInt();
- String agentUUID = instance.get(AGENT_UUID).getAsString();
- long registerTime = instance.get(REGISTER_TIME).getAsLong();
- JsonObject osInfoJson = instance.get(OS_INFO).getAsJsonObject();
-
- List<String> ipv4sList = new ArrayList<>();
- JsonArray ipv4s = osInfoJson.get("ipv4s").getAsJsonArray();
- ipv4s.forEach(ipv4 -> ipv4sList.add(ipv4.getAsString()));
-
- ServiceInventory serviceInventory = serviceInventoryCache.get(applicationId);
-
- JsonObject instanceProperties = new JsonObject();
- instanceProperties.addProperty(ServiceInstanceInventory.PropertyUtil.HOST_NAME, osInfoJson.get("hostName").getAsString());
- instanceProperties.addProperty(ServiceInstanceInventory.PropertyUtil.OS_NAME, osInfoJson.get("osName").getAsString());
- instanceProperties.addProperty(ServiceInstanceInventory.PropertyUtil.PROCESS_NO, osInfoJson.get("processId").getAsInt() + "");
- instanceProperties.addProperty(ServiceInstanceInventory.PropertyUtil.IPV4S, ServiceInstanceInventory.PropertyUtil.ipv4sSerialize(ipv4sList));
-
- String instanceName = serviceInventory.getName();
- if (instanceProperties.has(PROCESS_NO)) {
- instanceName += "-pid:" + instanceProperties.get(PROCESS_NO).getAsString();
- }
- if (instanceProperties.has(HOST_NAME)) {
- instanceName += "@" + instanceProperties.get(HOST_NAME).getAsString();
- }
-
- int instanceId = serviceInstanceInventoryRegister.getOrCreate(applicationId, instanceName, agentUUID, registerTime, instanceProperties);
- responseJson.addProperty(APPLICATION_ID, applicationId);
- responseJson.addProperty(INSTANCE_ID, instanceId);
- } catch (IOException e) {
- logger.error(e.getMessage(), e);
- }
- return responseJson;
- }
-}
diff --git a/oap-server/server-receiver-plugin/skywalking-register-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/register/provider/handler/v5/rest/InstanceHeartBeatServletHandler.java b/oap-server/server-receiver-plugin/skywalking-register-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/register/provider/handler/v5/rest/InstanceHeartBeatServletHandler.java
deleted file mode 100644
index 34c3971..0000000
--- a/oap-server/server-receiver-plugin/skywalking-register-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/register/provider/handler/v5/rest/InstanceHeartBeatServletHandler.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-package org.apache.skywalking.oap.server.receiver.register.provider.handler.v5.rest;
-
-import com.google.gson.*;
-import java.io.IOException;
-import java.util.Objects;
-import javax.servlet.http.HttpServletRequest;
-import org.apache.skywalking.oap.server.core.CoreModule;
-import org.apache.skywalking.oap.server.core.cache.ServiceInstanceInventoryCache;
-import org.apache.skywalking.oap.server.core.register.ServiceInstanceInventory;
-import org.apache.skywalking.oap.server.core.register.service.IServiceInstanceInventoryRegister;
-import org.apache.skywalking.oap.server.core.register.service.IServiceInventoryRegister;
-import org.apache.skywalking.oap.server.library.module.ModuleManager;
-import org.apache.skywalking.oap.server.library.server.jetty.*;
-import org.slf4j.*;
-
-/**
- * @author peng-yongsheng
- */
-public class InstanceHeartBeatServletHandler extends JettyJsonHandler {
-
- private static final Logger logger = LoggerFactory.getLogger(InstanceHeartBeatServletHandler.class);
-
- private final IServiceInstanceInventoryRegister serviceInstanceInventoryRegister;
- private final ServiceInstanceInventoryCache serviceInstanceInventoryCache;
- private final IServiceInventoryRegister serviceInventoryRegister;
- private final Gson gson = new Gson();
-
- private static final String INSTANCE_ID = "ii";
- private static final String HEARTBEAT_TIME = "ht";
-
- public InstanceHeartBeatServletHandler(ModuleManager moduleManager) {
- this.serviceInstanceInventoryRegister = moduleManager.find(CoreModule.NAME).provider().getService(IServiceInstanceInventoryRegister.class);
- this.serviceInstanceInventoryCache = moduleManager.find(CoreModule.NAME).provider().getService(ServiceInstanceInventoryCache.class);
- this.serviceInventoryRegister = moduleManager.find(CoreModule.NAME).provider().getService(IServiceInventoryRegister.class);
- }
-
- @Override public String pathSpec() {
- return "/instance/heartbeat";
- }
-
- @Override protected JsonElement doGet(HttpServletRequest req) throws ArgumentsParseException {
- throw new UnsupportedOperationException();
- }
-
- @Override protected JsonElement doPost(HttpServletRequest req) throws ArgumentsParseException, IOException {
- JsonObject responseJson = new JsonObject();
- try {
- JsonObject heartBeat = gson.fromJson(req.getReader(), JsonObject.class);
- int instanceId = heartBeat.get(INSTANCE_ID).getAsInt();
- long heartBeatTime = heartBeat.get(HEARTBEAT_TIME).getAsLong();
-
- serviceInstanceInventoryRegister.heartbeat(instanceId, heartBeatTime);
- ServiceInstanceInventory serviceInstanceInventory = serviceInstanceInventoryCache.get(instanceId);
- if (Objects.nonNull(serviceInstanceInventory)) {
- serviceInventoryRegister.heartbeat(serviceInstanceInventory.getServiceId(), heartBeatTime);
- } else {
- logger.warn("Can't found service by service instance id from cache, service instance id is: {}", instanceId);
- }
- } catch (IOException e) {
- logger.error(e.getMessage(), e);
- }
- return responseJson;
- }
-}
diff --git a/oap-server/server-receiver-plugin/skywalking-register-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/register/provider/handler/v5/rest/NetworkAddressRegisterServletHandler.java b/oap-server/server-receiver-plugin/skywalking-register-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/register/provider/handler/v5/rest/NetworkAddressRegisterServletHandler.java
deleted file mode 100644
index b873d08..0000000
--- a/oap-server/server-receiver-plugin/skywalking-register-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/register/provider/handler/v5/rest/NetworkAddressRegisterServletHandler.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-package org.apache.skywalking.oap.server.receiver.register.provider.handler.v5.rest;
-
-import com.google.gson.*;
-import java.io.IOException;
-import javax.servlet.http.HttpServletRequest;
-import org.apache.skywalking.oap.server.core.CoreModule;
-import org.apache.skywalking.oap.server.core.register.service.INetworkAddressInventoryRegister;
-import org.apache.skywalking.oap.server.library.module.ModuleManager;
-import org.apache.skywalking.oap.server.library.server.jetty.JettyJsonHandler;
-import org.slf4j.*;
-
-/**
- * @author peng-yongsheng
- */
-public class NetworkAddressRegisterServletHandler extends JettyJsonHandler {
-
- private static final Logger logger = LoggerFactory.getLogger(NetworkAddressRegisterServletHandler.class);
-
- private final INetworkAddressInventoryRegister networkAddressInventoryRegister;
- private Gson gson = new Gson();
- private static final String NETWORK_ADDRESS = "n";
- private static final String ADDRESS_ID = "i";
-
- public NetworkAddressRegisterServletHandler(ModuleManager moduleManager) {
- this.networkAddressInventoryRegister = moduleManager.find(CoreModule.NAME).provider().getService(INetworkAddressInventoryRegister.class);
- }
-
- @Override public String pathSpec() {
- return "/networkAddress/register";
- }
-
- @Override protected JsonElement doGet(HttpServletRequest req) {
- throw new UnsupportedOperationException();
- }
-
- @Override protected JsonElement doPost(HttpServletRequest req) {
- JsonArray responseArray = new JsonArray();
- try {
- JsonArray networkAddresses = gson.fromJson(req.getReader(), JsonArray.class);
- for (int i = 0; i < networkAddresses.size(); i++) {
- String networkAddress = networkAddresses.get(i).getAsString();
-
- if (logger.isDebugEnabled()) {
- logger.debug("network getAddress register, network getAddress: {}", networkAddress);
- }
-
- int addressId = networkAddressInventoryRegister.getOrCreate(networkAddress, null);
- JsonObject mapping = new JsonObject();
- mapping.addProperty(ADDRESS_ID, addressId);
- mapping.addProperty(NETWORK_ADDRESS, networkAddress);
- responseArray.add(mapping);
- }
- } catch (IOException e) {
- logger.error(e.getMessage(), e);
- }
- return responseArray;
- }
-}
diff --git a/oap-server/server-receiver-plugin/skywalking-register-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/register/provider/handler/v5/rest/ServiceNameDiscoveryServiceHandler.java b/oap-server/server-receiver-plugin/skywalking-register-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/register/provider/handler/v5/rest/ServiceNameDiscoveryServiceHandler.java
deleted file mode 100644
index c9b09d4..0000000
--- a/oap-server/server-receiver-plugin/skywalking-register-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/register/provider/handler/v5/rest/ServiceNameDiscoveryServiceHandler.java
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-package org.apache.skywalking.oap.server.receiver.register.provider.handler.v5.rest;
-
-import com.google.gson.*;
-import java.io.IOException;
-import java.util.Objects;
-import javax.servlet.http.HttpServletRequest;
-import org.apache.skywalking.apm.network.language.agent.SpanType;
-import org.apache.skywalking.oap.server.core.CoreModule;
-import org.apache.skywalking.oap.server.core.register.service.IEndpointInventoryRegister;
-import org.apache.skywalking.oap.server.core.source.DetectPoint;
-import org.apache.skywalking.oap.server.library.module.ModuleManager;
-import org.apache.skywalking.oap.server.library.server.jetty.*;
-import org.slf4j.*;
-
-/**
- * @author peng-yongsheng
- */
-public class ServiceNameDiscoveryServiceHandler extends JettyJsonHandler {
-
- private static final Logger logger = LoggerFactory.getLogger(ServiceNameDiscoveryServiceHandler.class);
-
- private final IEndpointInventoryRegister inventoryService;
- private final Gson gson = new Gson();
-
- private static final String APPLICATION_ID = "ai";
- private static final String SERVICE_NAME = "sn";
- private static final String SRC_SPAN_TYPE = "st";
- private static final String SERVICE_ID = "si";
- private static final String ELEMENT = "el";
-
- public ServiceNameDiscoveryServiceHandler(ModuleManager moduleManager) {
- this.inventoryService = moduleManager.find(CoreModule.NAME).provider().getService(IEndpointInventoryRegister.class);
- }
-
- @Override public String pathSpec() {
- return "/servicename/discovery";
- }
-
- @Override protected JsonElement doGet(HttpServletRequest req) throws ArgumentsParseException {
- throw new UnsupportedOperationException();
- }
-
- @Override protected JsonElement doPost(HttpServletRequest req) throws ArgumentsParseException {
- JsonArray responseArray = new JsonArray();
- try {
- JsonArray services = gson.fromJson(req.getReader(), JsonArray.class);
- for (JsonElement service : services) {
- int applicationId = service.getAsJsonObject().get(APPLICATION_ID).getAsInt();
- String serviceName = service.getAsJsonObject().get(SERVICE_NAME).getAsString();
- int srcSpanType = service.getAsJsonObject().get(SRC_SPAN_TYPE).getAsInt();
-
- SpanType spanType = SpanType.forNumber(srcSpanType);
- if (Objects.nonNull(spanType)) {
- int serviceId = inventoryService.getOrCreate(applicationId, serviceName, DetectPoint.fromSpanType(spanType));
- if (serviceId != 0) {
- JsonObject responseJson = new JsonObject();
- responseJson.addProperty(SERVICE_ID, serviceId);
- responseJson.add(ELEMENT, service);
- responseArray.add(responseJson);
- }
- }
- }
- } catch (IOException e) {
- logger.error(e.getMessage(), e);
- }
- return responseArray;
- }
-}
diff --git a/oap-server/server-receiver-plugin/skywalking-register-receiver-plugin/src/test/java/org/apache/skywalking/oap/server/receiver/register/provider/handler/v5/ApplicationRegisterHandlerTestCase.java b/oap-server/server-receiver-plugin/skywalking-register-receiver-plugin/src/test/java/org/apache/skywalking/oap/server/receiver/register/provider/handler/v5/ApplicationRegisterHandlerTestCase.java
deleted file mode 100644
index f2763bd..0000000
--- a/oap-server/server-receiver-plugin/skywalking-register-receiver-plugin/src/test/java/org/apache/skywalking/oap/server/receiver/register/provider/handler/v5/ApplicationRegisterHandlerTestCase.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-package org.apache.skywalking.oap.server.receiver.register.provider.handler.v5;
-
-import io.grpc.*;
-import io.grpc.stub.MetadataUtils;
-import org.apache.skywalking.apm.network.language.agent.*;
-import org.slf4j.*;
-
-/**
- * @author peng-yongsheng
- */
-public class ApplicationRegisterHandlerTestCase {
-
- private static final Logger logger = LoggerFactory.getLogger(ApplicationRegisterHandlerTestCase.class);
-
- public static void main(String[] args) {
- ManagedChannel channel = ManagedChannelBuilder.forAddress("localhost", 11800).usePlaintext().build();
-
- ApplicationRegisterServiceGrpc.ApplicationRegisterServiceBlockingStub stub = ApplicationRegisterServiceGrpc.newBlockingStub(channel);
-
- Metadata authHeader = new Metadata();
- authHeader.put(Metadata.Key.of("Authentication", Metadata.ASCII_STRING_MARSHALLER), "c4a4baabf931f2379bdfe53a450ecb89");
- stub = MetadataUtils.attachHeaders(stub, authHeader);
-
- Application.Builder application = Application.newBuilder();
- application.setApplicationCode("dubbox-consumer");
-
- ApplicationMapping applicationMapping = stub.applicationCodeRegister(application.build());
- logger.info("application id: {}", applicationMapping.getApplication().getValue());
- }
-}
diff --git a/oap-server/server-receiver-plugin/skywalking-register-receiver-plugin/src/test/java/org/apache/skywalking/oap/server/receiver/register/provider/handler/v5/InstanceDiscoveryServiceHandlerTestCase.java b/oap-server/server-receiver-plugin/skywalking-register-receiver-plugin/src/test/java/org/apache/skywalking/oap/server/receiver/register/provider/handler/v5/InstanceDiscoveryServiceHandlerTestCase.java
deleted file mode 100644
index a4bbd22..0000000
--- a/oap-server/server-receiver-plugin/skywalking-register-receiver-plugin/src/test/java/org/apache/skywalking/oap/server/receiver/register/provider/handler/v5/InstanceDiscoveryServiceHandlerTestCase.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-package org.apache.skywalking.oap.server.receiver.register.provider.handler.v5;
-
-import io.grpc.*;
-import org.apache.skywalking.apm.network.language.agent.*;
-import org.slf4j.*;
-
-/**
- * @author peng-yongsheng
- */
-public class InstanceDiscoveryServiceHandlerTestCase {
-
- private static final Logger logger = LoggerFactory.getLogger(InstanceDiscoveryServiceHandlerTestCase.class);
-
- public static void main(String[] args) {
- ManagedChannel channel = ManagedChannelBuilder.forAddress("localhost", 11800).usePlaintext().build();
-
- InstanceDiscoveryServiceGrpc.InstanceDiscoveryServiceBlockingStub stub = InstanceDiscoveryServiceGrpc.newBlockingStub(channel);
-
- ApplicationInstance.Builder applicationInstance = ApplicationInstance.newBuilder();
- applicationInstance.setApplicationId(1);
- applicationInstance.setAgentUUID("Test");
- applicationInstance.setRegisterTime(System.currentTimeMillis());
-
- OSInfo.Builder osInfo = OSInfo.newBuilder();
- osInfo.setOsName("mac os");
- osInfo.setHostname("pengys");
- osInfo.setProcessNo(1);
- osInfo.addIpv4S("10.0.0.1");
- osInfo.addIpv4S("10.0.0.2");
- applicationInstance.setOsinfo(osInfo);
-
- ApplicationInstanceMapping instanceMapping = stub.registerInstance(applicationInstance.build());
- logger.info("application id: {}, application instance id: {}", instanceMapping.getApplicationId(), instanceMapping.getApplicationInstanceId());
- }
-}
diff --git a/oap-server/server-receiver-plugin/skywalking-register-receiver-plugin/src/test/java/org/apache/skywalking/oap/server/receiver/register/provider/handler/v5/InstanceHeartBeatTestCase.java b/oap-server/server-receiver-plugin/skywalking-register-receiver-plugin/src/test/java/org/apache/skywalking/oap/server/receiver/register/provider/handler/v5/InstanceHeartBeatTestCase.java
deleted file mode 100644
index 96d79f2..0000000
--- a/oap-server/server-receiver-plugin/skywalking-register-receiver-plugin/src/test/java/org/apache/skywalking/oap/server/receiver/register/provider/handler/v5/InstanceHeartBeatTestCase.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-package org.apache.skywalking.oap.server.receiver.register.provider.handler.v5;
-
-import io.grpc.*;
-import org.apache.skywalking.apm.network.language.agent.*;
-
-/**
- * @author peng-yongsheng
- */
-public class InstanceHeartBeatTestCase {
-
- public static void main(String[] args) {
- ManagedChannel channel = ManagedChannelBuilder.forAddress("localhost", 11800).usePlaintext().build();
-
- InstanceDiscoveryServiceGrpc.InstanceDiscoveryServiceBlockingStub stub = InstanceDiscoveryServiceGrpc.newBlockingStub(channel);
-
- ApplicationInstanceHeartbeat.Builder builder = ApplicationInstanceHeartbeat.newBuilder();
- builder.setApplicationInstanceId(2);
- builder.setHeartbeatTime(System.currentTimeMillis() + 5 * 1000 * 60);
- Downstream heartbeat = stub.heartbeat(builder.build());
-
- builder.setApplicationInstanceId(3);
- heartbeat = stub.heartbeat(builder.build());
- }
-}
diff --git a/oap-server/server-receiver-plugin/skywalking-register-receiver-plugin/src/test/java/org/apache/skywalking/oap/server/receiver/register/provider/handler/v5/NetworkAddressRegisterServiceHandlerTestCase.java b/oap-server/server-receiver-plugin/skywalking-register-receiver-plugin/src/test/java/org/apache/skywalking/oap/server/receiver/register/provider/handler/v5/NetworkAddressRegisterServiceHandlerTestCase.java
deleted file mode 100644
index 65add44..0000000
--- a/oap-server/server-receiver-plugin/skywalking-register-receiver-plugin/src/test/java/org/apache/skywalking/oap/server/receiver/register/provider/handler/v5/NetworkAddressRegisterServiceHandlerTestCase.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-package org.apache.skywalking.oap.server.receiver.register.provider.handler.v5;
-
-import io.grpc.*;
-import org.apache.skywalking.apm.network.language.agent.*;
-import org.slf4j.*;
-
-/**
- * @author peng-yongsheng
- */
-public class NetworkAddressRegisterServiceHandlerTestCase {
-
- private static final Logger logger = LoggerFactory.getLogger(NetworkAddressRegisterServiceHandlerTestCase.class);
-
- public static void main(String[] args) {
- ManagedChannel channel = ManagedChannelBuilder.forAddress("localhost", 11800).usePlaintext().build();
-
- NetworkAddressRegisterServiceGrpc.NetworkAddressRegisterServiceBlockingStub stub = NetworkAddressRegisterServiceGrpc.newBlockingStub(channel);
-
- NetworkAddresses.Builder networkAddresses = NetworkAddresses.newBuilder();
- networkAddresses.addAddresses("127.0.0.1:8080");
-
- NetworkAddressMappings addressMappings = stub.batchRegister(networkAddresses.build());
-
- for (KeyWithIntegerValue value : addressMappings.getAddressIdsList()) {
- logger.info("key: {}, value: {}", value.getKey(), value.getValue());
- }
- }
-}
diff --git a/oap-server/server-receiver-plugin/skywalking-register-receiver-plugin/src/test/java/org/apache/skywalking/oap/server/receiver/register/provider/handler/v5/ServiceNameDiscoveryHandlerTestCase.java b/oap-server/server-receiver-plugin/skywalking-register-receiver-plugin/src/test/java/org/apache/skywalking/oap/server/receiver/register/provider/handler/v5/ServiceNameDiscoveryHandlerTestCase.java
deleted file mode 100644
index e74bb33..0000000
--- a/oap-server/server-receiver-plugin/skywalking-register-receiver-plugin/src/test/java/org/apache/skywalking/oap/server/receiver/register/provider/handler/v5/ServiceNameDiscoveryHandlerTestCase.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-package org.apache.skywalking.oap.server.receiver.register.provider.handler.v5;
-
-import io.grpc.*;
-import org.apache.skywalking.apm.network.language.agent.*;
-import org.slf4j.*;
-
-/**
- * @author peng-yongsheng
- */
-public class ServiceNameDiscoveryHandlerTestCase {
-
- private static final Logger logger = LoggerFactory.getLogger(ServiceNameDiscoveryHandlerTestCase.class);
-
- public static void main(String[] args) {
- ManagedChannel channel = ManagedChannelBuilder.forAddress("localhost", 11800).usePlaintext().build();
- ServiceNameDiscoveryServiceGrpc.ServiceNameDiscoveryServiceBlockingStub stub = ServiceNameDiscoveryServiceGrpc.newBlockingStub(channel);
-
- ServiceNameCollection.Builder serviceNameCollection = ServiceNameCollection.newBuilder();
- ServiceNameElement.Builder serviceNameElement = ServiceNameElement.newBuilder();
- serviceNameElement.setApplicationId(1);
- serviceNameElement.setServiceName("org.skywaking.apm.testcase.dubbo.services.GreetService.doBusiness()");
- serviceNameElement.setSrcSpanType(SpanType.Entry);
- serviceNameCollection.addElements(serviceNameElement);
-
- ServiceNameMappingCollection collection = stub.discovery(serviceNameCollection.build());
-
- for (ServiceNameMappingElement element : collection.getElementsList()) {
- logger.info("service id: {}", element.getServiceId());
- }
- }
-}
diff --git a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/TraceModuleProvider.java b/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/TraceModuleProvider.java
index 5df7956..7b1ab2c 100755
--- a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/TraceModuleProvider.java
+++ b/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/TraceModuleProvider.java
@@ -22,7 +22,6 @@ import org.apache.skywalking.oap.server.configuration.api.ConfigurationModule;
import org.apache.skywalking.oap.server.configuration.api.DynamicConfigurationService;
import org.apache.skywalking.oap.server.core.CoreModule;
import org.apache.skywalking.oap.server.core.server.GRPCHandlerRegister;
-import org.apache.skywalking.oap.server.core.server.JettyHandlerRegister;
import org.apache.skywalking.oap.server.library.module.ModuleConfig;
import org.apache.skywalking.oap.server.library.module.ModuleDefine;
import org.apache.skywalking.oap.server.library.module.ModuleProvider;
@@ -30,11 +29,8 @@ import org.apache.skywalking.oap.server.library.module.ModuleStartException;
import org.apache.skywalking.oap.server.library.module.ServiceNotProvidedException;
import org.apache.skywalking.oap.server.receiver.sharing.server.SharingServerModule;
import org.apache.skywalking.oap.server.receiver.trace.module.TraceModule;
-import org.apache.skywalking.oap.server.receiver.trace.provider.handler.v5.grpc.TraceSegmentServiceHandler;
-import org.apache.skywalking.oap.server.receiver.trace.provider.handler.v5.rest.TraceSegmentServletHandler;
import org.apache.skywalking.oap.server.receiver.trace.provider.handler.v6.grpc.TraceSegmentReportServiceHandler;
import org.apache.skywalking.oap.server.receiver.trace.provider.parser.ISegmentParserService;
-import org.apache.skywalking.oap.server.receiver.trace.provider.parser.SegmentParse;
import org.apache.skywalking.oap.server.receiver.trace.provider.parser.SegmentParseV2;
import org.apache.skywalking.oap.server.receiver.trace.provider.parser.SegmentParserListenerManager;
import org.apache.skywalking.oap.server.receiver.trace.provider.parser.SegmentParserServiceImpl;
@@ -53,7 +49,6 @@ import java.io.IOException;
public class TraceModuleProvider extends ModuleProvider {
private final TraceServiceModuleConfig moduleConfig;
- private SegmentParse.Producer segmentProducer;
private SegmentParseV2.Producer segmentProducerV2;
private DBLatencyThresholdsAndWatcher thresholds;
private UninstrumentedGatewaysConfig uninstrumentedGatewaysConfig;
@@ -82,7 +77,6 @@ public class TraceModuleProvider extends ModuleProvider {
moduleConfig.setDbLatencyThresholdsAndWatcher(thresholds);
moduleConfig.setUninstrumentedGatewaysConfig(uninstrumentedGatewaysConfig);
- segmentProducer = new SegmentParse.Producer(getManager(), listenerManager(), moduleConfig);
segmentProducerV2 = new SegmentParseV2.Producer(getManager(), listenerManager(), moduleConfig);
this.registerServiceImplementation(ISegmentParserService.class, new SegmentParserServiceImpl(segmentProducerV2));
@@ -103,19 +97,13 @@ public class TraceModuleProvider extends ModuleProvider {
@Override public void start() throws ModuleStartException {
DynamicConfigurationService dynamicConfigurationService = getManager().find(ConfigurationModule.NAME).provider().getService(DynamicConfigurationService.class);
GRPCHandlerRegister grpcHandlerRegister = getManager().find(SharingServerModule.NAME).provider().getService(GRPCHandlerRegister.class);
- JettyHandlerRegister jettyHandlerRegister = getManager().find(SharingServerModule.NAME).provider().getService(JettyHandlerRegister.class);
try {
dynamicConfigurationService.registerConfigChangeWatcher(thresholds);
dynamicConfigurationService.registerConfigChangeWatcher(uninstrumentedGatewaysConfig);
- grpcHandlerRegister.addHandler(new TraceSegmentServiceHandler(segmentProducer));
grpcHandlerRegister.addHandler(new TraceSegmentReportServiceHandler(segmentProducerV2, getManager()));
- jettyHandlerRegister.addHandler(new TraceSegmentServletHandler(segmentProducer));
- SegmentStandardizationWorker standardizationWorker = new SegmentStandardizationWorker(getManager(), segmentProducer, moduleConfig.getBufferPath() + "v5", moduleConfig.getBufferOffsetMaxFileSize(), moduleConfig.getBufferDataMaxFileSize(), moduleConfig.isBufferFileCleanWhenRestart(), false);
- segmentProducer.setStandardizationWorker(standardizationWorker);
-
- SegmentStandardizationWorker standardizationWorkerV2 = new SegmentStandardizationWorker(getManager(), segmentProducerV2, moduleConfig.getBufferPath(), moduleConfig.getBufferOffsetMaxFileSize(), moduleConfig.getBufferDataMaxFileSize(), moduleConfig.isBufferFileCleanWhenRestart(), true);
+ SegmentStandardizationWorker standardizationWorkerV2 = new SegmentStandardizationWorker(getManager(), segmentProducerV2, moduleConfig.getBufferPath(), moduleConfig.getBufferOffsetMaxFileSize(), moduleConfig.getBufferDataMaxFileSize(), moduleConfig.isBufferFileCleanWhenRestart());
segmentProducerV2.setStandardizationWorker(standardizationWorkerV2);
} catch (IOException e) {
throw new ModuleStartException(e.getMessage(), e);
diff --git a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/handler/v5/grpc/SegmentCounter.java b/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/handler/v5/grpc/SegmentCounter.java
deleted file mode 100644
index e65030a..0000000
--- a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/handler/v5/grpc/SegmentCounter.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-package org.apache.skywalking.oap.server.receiver.trace.provider.handler.v5.grpc;
-
-import java.util.concurrent.atomic.AtomicLong;
-
-/**
- * @author peng-yongsheng
- */
-public enum SegmentCounter {
- INSTANCE;
-
- private final AtomicLong counter = new AtomicLong(0);
-
- public long incrementAndGet() {
- return counter.incrementAndGet();
- }
-}
diff --git a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/handler/v5/grpc/TraceSegmentServiceHandler.java b/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/handler/v5/grpc/TraceSegmentServiceHandler.java
deleted file mode 100644
index cd4baa0..0000000
--- a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/handler/v5/grpc/TraceSegmentServiceHandler.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-package org.apache.skywalking.oap.server.receiver.trace.provider.handler.v5.grpc;
-
-import io.grpc.stub.StreamObserver;
-import org.apache.skywalking.apm.network.language.agent.*;
-import org.apache.skywalking.oap.server.library.server.grpc.GRPCHandler;
-import org.apache.skywalking.oap.server.receiver.trace.provider.parser.SegmentParse;
-import org.slf4j.*;
-
-/**
- * @author peng-yongsheng
- */
-public class TraceSegmentServiceHandler extends TraceSegmentServiceGrpc.TraceSegmentServiceImplBase implements GRPCHandler {
-
- private static final Logger logger = LoggerFactory.getLogger(TraceSegmentServiceHandler.class);
-
- private final Boolean debug;
- private final SegmentParse.Producer segmentProducer;
-
- public TraceSegmentServiceHandler(SegmentParse.Producer segmentProducer) {
- this.debug = System.getProperty("debug") != null;
- this.segmentProducer = segmentProducer;
- }
-
- @Override public StreamObserver<UpstreamSegment> collect(StreamObserver<Downstream> responseObserver) {
- return new StreamObserver<UpstreamSegment>() {
- @Override public void onNext(UpstreamSegment segment) {
- if (logger.isDebugEnabled()) {
- logger.debug("receive segment");
- }
-
- segmentProducer.send(segment, SegmentParse.Source.Agent);
-
- if (debug) {
- long count = SegmentCounter.INSTANCE.incrementAndGet();
- if (count % 100000 == 0) {
- logger.info("received segment count: {}", count);
- }
- }
- }
-
- @Override public void onError(Throwable throwable) {
- logger.error(throwable.getMessage(), throwable);
- responseObserver.onCompleted();
- }
-
- @Override public void onCompleted() {
- responseObserver.onNext(Downstream.newBuilder().build());
- responseObserver.onCompleted();
- }
- };
- }
-}
diff --git a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/handler/v5/rest/TraceSegmentServletHandler.java b/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/handler/v5/rest/TraceSegmentServletHandler.java
deleted file mode 100644
index 6a3ecb9..0000000
--- a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/handler/v5/rest/TraceSegmentServletHandler.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-package org.apache.skywalking.oap.server.receiver.trace.provider.handler.v5.rest;
-
-import com.google.gson.JsonElement;
-import com.google.gson.stream.JsonReader;
-import java.io.*;
-import javax.servlet.http.HttpServletRequest;
-import org.apache.skywalking.oap.server.library.server.jetty.JettyJsonHandler;
-import org.apache.skywalking.oap.server.receiver.trace.provider.handler.v5.rest.reader.*;
-import org.apache.skywalking.oap.server.receiver.trace.provider.parser.SegmentParse;
-import org.slf4j.*;
-
-/**
- * @author peng-yongsheng
- */
-public class TraceSegmentServletHandler extends JettyJsonHandler {
-
- private static final Logger logger = LoggerFactory.getLogger(TraceSegmentServletHandler.class);
-
- private final SegmentParse.Producer segmentProducer;
-
- public TraceSegmentServletHandler(SegmentParse.Producer segmentProducer) {
- this.segmentProducer = segmentProducer;
- }
-
- @Override public String pathSpec() {
- return "/segments";
- }
-
- @Override protected JsonElement doGet(HttpServletRequest req) {
- throw new UnsupportedOperationException();
- }
-
- @Override protected JsonElement doPost(HttpServletRequest req) {
- if (logger.isDebugEnabled()) {
- logger.debug("receive stream segment");
- }
-
- try {
- BufferedReader bufferedReader = req.getReader();
- read(bufferedReader);
- } catch (IOException e) {
- logger.error(e.getMessage(), e);
- }
-
- return null;
- }
-
- private TraceSegmentJsonReader jsonReader = new TraceSegmentJsonReader();
-
- private void read(BufferedReader bufferedReader) throws IOException {
- JsonReader reader = new JsonReader(bufferedReader);
-
- reader.beginArray();
- while (reader.hasNext()) {
- TraceSegment traceSegment = jsonReader.read(reader);
- segmentProducer.send(traceSegment.getUpstreamSegment(), SegmentParse.Source.Agent);
- }
- reader.endArray();
- }
-}
diff --git a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/handler/v5/rest/reader/KeyWithStringValueJsonReader.java b/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/handler/v5/rest/reader/KeyWithStringValueJsonReader.java
deleted file mode 100644
index 95739b4..0000000
--- a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/handler/v5/rest/reader/KeyWithStringValueJsonReader.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-package org.apache.skywalking.oap.server.receiver.trace.provider.handler.v5.rest.reader;
-
-import com.google.gson.stream.JsonReader;
-import java.io.IOException;
-import org.apache.skywalking.apm.network.language.agent.KeyWithStringValue;
-
-/**
- * @author peng-yongsheng
- */
-public class KeyWithStringValueJsonReader implements StreamJsonReader<KeyWithStringValue> {
-
- private static final String KEY = "k";
- private static final String VALUE = "v";
-
- @Override public KeyWithStringValue read(JsonReader reader) throws IOException {
- KeyWithStringValue.Builder builder = KeyWithStringValue.newBuilder();
-
- reader.beginObject();
- while (reader.hasNext()) {
- switch (reader.nextName()) {
- case KEY:
- builder.setKey(reader.nextString());
- break;
- case VALUE:
- builder.setValue(reader.nextString());
- break;
- default:
- reader.skipValue();
- break;
- }
- }
- reader.endObject();
-
- return builder.build();
- }
-}
diff --git a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/handler/v5/rest/reader/LogJsonReader.java b/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/handler/v5/rest/reader/LogJsonReader.java
deleted file mode 100644
index ddacc91..0000000
--- a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/handler/v5/rest/reader/LogJsonReader.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-package org.apache.skywalking.oap.server.receiver.trace.provider.handler.v5.rest.reader;
-
-import com.google.gson.stream.JsonReader;
-import java.io.IOException;
-import org.apache.skywalking.apm.network.language.agent.LogMessage;
-
-/**
- * @author peng-yongsheng
- */
-public class LogJsonReader implements StreamJsonReader<LogMessage> {
-
- private KeyWithStringValueJsonReader keyWithStringValueJsonReader = new KeyWithStringValueJsonReader();
-
- private static final String TIME = "ti";
- private static final String LOG_DATA = "ld";
-
- @Override public LogMessage read(JsonReader reader) throws IOException {
- LogMessage.Builder builder = LogMessage.newBuilder();
-
- reader.beginObject();
- while (reader.hasNext()) {
- switch (reader.nextName()) {
- case TIME:
- builder.setTime(reader.nextLong());
- break;
- case LOG_DATA:
- reader.beginArray();
- while (reader.hasNext()) {
- builder.addData(keyWithStringValueJsonReader.read(reader));
- }
- reader.endArray();
- break;
- default:
- reader.skipValue();
- break;
- }
- }
- reader.endObject();
-
- return builder.build();
- }
-}
diff --git a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/handler/v5/rest/reader/ReferenceJsonReader.java b/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/handler/v5/rest/reader/ReferenceJsonReader.java
deleted file mode 100644
index 65c6b7a..0000000
--- a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/handler/v5/rest/reader/ReferenceJsonReader.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-package org.apache.skywalking.oap.server.receiver.trace.provider.handler.v5.rest.reader;
-
-import com.google.gson.stream.JsonReader;
-import java.io.IOException;
-import org.apache.skywalking.apm.network.language.agent.TraceSegmentReference;
-
-/**
- * @author peng-yongsheng
- */
-public class ReferenceJsonReader implements StreamJsonReader<TraceSegmentReference> {
-
- private UniqueIdJsonReader uniqueIdJsonReader = new UniqueIdJsonReader();
-
- private static final String PARENT_TRACE_SEGMENT_ID = "pts";
- private static final String PARENT_APPLICATION_INSTANCE_ID = "pii";
- private static final String PARENT_SPAN_ID = "psp";
- private static final String PARENT_SERVICE_ID = "psi";
- private static final String PARENT_SERVICE_NAME = "psn";
- private static final String NETWORK_ADDRESS_ID = "ni";
- private static final String NETWORK_ADDRESS = "nn";
- private static final String ENTRY_APPLICATION_INSTANCE_ID = "eii";
- private static final String ENTRY_SERVICE_ID = "esi";
- private static final String ENTRY_SERVICE_NAME = "esn";
- private static final String REF_TYPE_VALUE = "rv";
-
- @Override public TraceSegmentReference read(JsonReader reader) throws IOException {
- TraceSegmentReference.Builder builder = TraceSegmentReference.newBuilder();
-
- reader.beginObject();
- while (reader.hasNext()) {
- switch (reader.nextName()) {
- case PARENT_TRACE_SEGMENT_ID:
- builder.setParentTraceSegmentId(uniqueIdJsonReader.read(reader));
- break;
- case PARENT_APPLICATION_INSTANCE_ID:
- builder.setParentApplicationInstanceId(reader.nextInt());
- break;
- case PARENT_SPAN_ID:
- builder.setParentSpanId(reader.nextInt());
- break;
- case PARENT_SERVICE_ID:
- builder.setParentServiceId(reader.nextInt());
- break;
- case PARENT_SERVICE_NAME:
- builder.setParentServiceName(reader.nextString());
- break;
- case NETWORK_ADDRESS_ID:
- builder.setNetworkAddressId(reader.nextInt());
- break;
- case NETWORK_ADDRESS:
- builder.setNetworkAddress(reader.nextString());
- break;
- case ENTRY_APPLICATION_INSTANCE_ID:
- builder.setEntryApplicationInstanceId(reader.nextInt());
- break;
- case ENTRY_SERVICE_ID:
- builder.setEntryServiceId(reader.nextInt());
- break;
- case ENTRY_SERVICE_NAME:
- builder.setEntryServiceName(reader.nextString());
- break;
- case REF_TYPE_VALUE:
- builder.setRefTypeValue(reader.nextInt());
- break;
- default:
- reader.skipValue();
- break;
- }
- }
- reader.endObject();
-
- return builder.build();
- }
-}
diff --git a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/handler/v5/rest/reader/SegmentJsonReader.java b/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/handler/v5/rest/reader/SegmentJsonReader.java
deleted file mode 100644
index eab2406..0000000
--- a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/handler/v5/rest/reader/SegmentJsonReader.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-package org.apache.skywalking.oap.server.receiver.trace.provider.handler.v5.rest.reader;
-
-import com.google.gson.stream.JsonReader;
-import java.io.IOException;
-import org.apache.skywalking.apm.network.language.agent.TraceSegmentObject;
-import org.slf4j.*;
-
-/**
- * @author peng-yongsheng
- */
-public class SegmentJsonReader implements StreamJsonReader<TraceSegmentObject.Builder> {
-
- private static final Logger logger = LoggerFactory.getLogger(SegmentJsonReader.class);
-
- private UniqueIdJsonReader uniqueIdJsonReader = new UniqueIdJsonReader();
- private SpanJsonReader spanJsonReader = new SpanJsonReader();
-
- private static final String TRACE_SEGMENT_ID = "ts";
- private static final String APPLICATION_ID = "ai";
- private static final String APPLICATION_INSTANCE_ID = "ii";
- private static final String SPANS = "ss";
-
- @Override public TraceSegmentObject.Builder read(JsonReader reader) throws IOException {
- TraceSegmentObject.Builder builder = TraceSegmentObject.newBuilder();
-
- reader.beginObject();
- while (reader.hasNext()) {
- switch (reader.nextName()) {
- case TRACE_SEGMENT_ID:
- builder.setTraceSegmentId(uniqueIdJsonReader.read(reader));
- if (logger.isDebugEnabled()) {
- StringBuilder segmentId = new StringBuilder();
- builder.getTraceSegmentId().getIdPartsList().forEach(idPart -> segmentId.append(idPart));
- logger.debug("segment id: {}", segmentId);
- }
- break;
- case APPLICATION_ID:
- builder.setApplicationId(reader.nextInt());
- break;
- case APPLICATION_INSTANCE_ID:
- builder.setApplicationInstanceId(reader.nextInt());
- break;
- case SPANS:
- reader.beginArray();
- while (reader.hasNext()) {
- builder.addSpans(spanJsonReader.read(reader));
- }
- reader.endArray();
- break;
- default:
- reader.skipValue();
- break;
- }
- }
- reader.endObject();
-
- return builder;
- }
-}
diff --git a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/handler/v5/rest/reader/SpanJsonReader.java b/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/handler/v5/rest/reader/SpanJsonReader.java
deleted file mode 100644
index ef9471f..0000000
--- a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/handler/v5/rest/reader/SpanJsonReader.java
+++ /dev/null
@@ -1,126 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-package org.apache.skywalking.oap.server.receiver.trace.provider.handler.v5.rest.reader;
-
-import com.google.gson.stream.JsonReader;
-import java.io.IOException;
-import org.apache.skywalking.apm.network.language.agent.SpanObject;
-
-/**
- * @author peng-yongsheng
- */
-public class SpanJsonReader implements StreamJsonReader<SpanObject> {
-
- private KeyWithStringValueJsonReader keyWithStringValueJsonReader = new KeyWithStringValueJsonReader();
- private LogJsonReader logJsonReader = new LogJsonReader();
- private ReferenceJsonReader referenceJsonReader = new ReferenceJsonReader();
-
- private static final String SPAN_ID = "si";
- private static final String SPAN_TYPE_VALUE = "tv";
- private static final String SPAN_LAYER_VALUE = "lv";
- private static final String PARENT_SPAN_ID = "ps";
- private static final String START_TIME = "st";
- private static final String END_TIME = "et";
- private static final String COMPONENT_ID = "ci";
- private static final String COMPONENT_NAME = "cn";
- private static final String OPERATION_NAME_ID = "oi";
- private static final String OPERATION_NAME = "on";
- private static final String PEER_ID = "pi";
- private static final String PEER = "pn";
- private static final String IS_ERROR = "ie";
- private static final String TRACE_SEGMENT_REFERENCE = "rs";
- private static final String TAGS = "to";
- private static final String LOGS = "lo";
-
- @Override public SpanObject read(JsonReader reader) throws IOException {
- SpanObject.Builder builder = SpanObject.newBuilder();
-
- reader.beginObject();
- while (reader.hasNext()) {
- switch (reader.nextName()) {
- case SPAN_ID:
- builder.setSpanId(reader.nextInt());
- break;
- case SPAN_TYPE_VALUE:
- builder.setSpanTypeValue(reader.nextInt());
- break;
- case SPAN_LAYER_VALUE:
- builder.setSpanLayerValue(reader.nextInt());
- break;
- case PARENT_SPAN_ID:
- builder.setParentSpanId(reader.nextInt());
- break;
- case START_TIME:
- builder.setStartTime(reader.nextLong());
- break;
- case END_TIME:
- builder.setEndTime(reader.nextLong());
- break;
- case COMPONENT_ID:
- builder.setComponentId(reader.nextInt());
- break;
- case COMPONENT_NAME:
- builder.setComponent(reader.nextString());
- break;
- case OPERATION_NAME_ID:
- builder.setOperationNameId(reader.nextInt());
- break;
- case OPERATION_NAME:
- builder.setOperationName(reader.nextString());
- break;
- case PEER_ID:
- builder.setPeerId(reader.nextInt());
- break;
- case PEER:
- builder.setPeer(reader.nextString());
- break;
- case IS_ERROR:
- builder.setIsError(reader.nextBoolean());
- break;
- case TRACE_SEGMENT_REFERENCE:
- reader.beginArray();
- while (reader.hasNext()) {
- builder.addRefs(referenceJsonReader.read(reader));
- }
- reader.endArray();
- break;
- case TAGS:
- reader.beginArray();
- while (reader.hasNext()) {
- builder.addTags(keyWithStringValueJsonReader.read(reader));
- }
- reader.endArray();
- break;
- case LOGS:
- reader.beginArray();
- while (reader.hasNext()) {
- builder.addLogs(logJsonReader.read(reader));
- }
- reader.endArray();
- break;
- default:
- reader.skipValue();
- break;
- }
- }
- reader.endObject();
-
- return builder.build();
- }
-}
diff --git a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/handler/v5/rest/reader/TraceSegment.java b/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/handler/v5/rest/reader/TraceSegment.java
deleted file mode 100644
index 4ca230b..0000000
--- a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/handler/v5/rest/reader/TraceSegment.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-package org.apache.skywalking.oap.server.receiver.trace.provider.handler.v5.rest.reader;
-
-import org.apache.skywalking.apm.network.language.agent.*;
-
-/**
- * @author peng-yongsheng
- */
-public class TraceSegment {
-
- private UpstreamSegment.Builder builder;
-
- public TraceSegment() {
- builder = UpstreamSegment.newBuilder();
- }
-
- public void addGlobalTraceId(UniqueId.Builder globalTraceId) {
- builder.addGlobalTraceIds(globalTraceId);
- }
-
- public void setTraceSegmentBuilder(TraceSegmentObject.Builder traceSegmentBuilder) {
- builder.setSegment(traceSegmentBuilder.build().toByteString());
- }
-
- public UpstreamSegment getUpstreamSegment() {
- return builder.build();
- }
-}
diff --git a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/handler/v5/rest/reader/TraceSegmentJsonReader.java b/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/handler/v5/rest/reader/TraceSegmentJsonReader.java
deleted file mode 100644
index 26e2358..0000000
--- a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/handler/v5/rest/reader/TraceSegmentJsonReader.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-package org.apache.skywalking.oap.server.receiver.trace.provider.handler.v5.rest.reader;
-
-import com.google.gson.stream.JsonReader;
-import java.io.IOException;
-import org.slf4j.*;
-
-/**
- * @author peng-yongsheng
- */
-public class TraceSegmentJsonReader implements StreamJsonReader<TraceSegment> {
-
- private static final Logger logger = LoggerFactory.getLogger(TraceSegmentJsonReader.class);
-
- private UniqueIdJsonReader uniqueIdJsonReader = new UniqueIdJsonReader();
- private SegmentJsonReader segmentJsonReader = new SegmentJsonReader();
-
- private static final String GLOBAL_TRACE_IDS = "gt";
- private static final String SEGMENT = "sg";
-
- @Override public TraceSegment read(JsonReader reader) throws IOException {
- TraceSegment traceSegment = new TraceSegment();
-
- reader.beginObject();
- while (reader.hasNext()) {
- switch (reader.nextName()) {
- case GLOBAL_TRACE_IDS:
- reader.beginArray();
- while (reader.hasNext()) {
- traceSegment.addGlobalTraceId(uniqueIdJsonReader.read(reader));
- }
- reader.endArray();
-
- break;
- case SEGMENT:
- traceSegment.setTraceSegmentBuilder(segmentJsonReader.read(reader));
- break;
- default:
- reader.skipValue();
- break;
- }
- }
- reader.endObject();
-
- return traceSegment;
- }
-}
diff --git a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/handler/v5/rest/reader/UniqueIdJsonReader.java b/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/handler/v5/rest/reader/UniqueIdJsonReader.java
deleted file mode 100644
index 43465eb..0000000
--- a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/handler/v5/rest/reader/UniqueIdJsonReader.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-package org.apache.skywalking.oap.server.receiver.trace.provider.handler.v5.rest.reader;
-
-import com.google.gson.stream.JsonReader;
-import java.io.IOException;
-import org.apache.skywalking.apm.network.language.agent.UniqueId;
-
-/**
- * @author peng-yongsheng
- */
-public class UniqueIdJsonReader implements StreamJsonReader<UniqueId.Builder> {
-
- @Override public UniqueId.Builder read(JsonReader reader) throws IOException {
- UniqueId.Builder builder = UniqueId.newBuilder();
-
- reader.beginArray();
- while (reader.hasNext()) {
- builder.addIdParts(reader.nextLong());
- }
- reader.endArray();
- return builder;
- }
-}
diff --git a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/parser/SegmentParse.java b/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/parser/SegmentParse.java
deleted file mode 100644
index 1b527bc..0000000
--- a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/parser/SegmentParse.java
+++ /dev/null
@@ -1,284 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-package org.apache.skywalking.oap.server.receiver.trace.provider.parser;
-
-import com.google.protobuf.InvalidProtocolBufferException;
-import java.util.*;
-import lombok.Setter;
-import org.apache.skywalking.apm.network.language.agent.*;
-import org.apache.skywalking.oap.server.library.buffer.*;
-import org.apache.skywalking.oap.server.library.module.ModuleManager;
-import org.apache.skywalking.oap.server.core.analysis.TimeBucket;
-import org.apache.skywalking.oap.server.receiver.trace.provider.TraceServiceModuleConfig;
-import org.apache.skywalking.oap.server.receiver.trace.provider.parser.decorator.*;
-import org.apache.skywalking.oap.server.receiver.trace.provider.parser.listener.*;
-import org.apache.skywalking.oap.server.receiver.trace.provider.parser.standardization.*;
-import org.apache.skywalking.oap.server.telemetry.TelemetryModule;
-import org.apache.skywalking.oap.server.telemetry.api.*;
-import org.slf4j.*;
-
-/**
- * @author peng-yongsheng
- */
-public class SegmentParse {
-
- private static final Logger logger = LoggerFactory.getLogger(SegmentParse.class);
-
- private final ModuleManager moduleManager;
- private final List<SpanListener> spanListeners;
- private final SegmentParserListenerManager listenerManager;
- private final SegmentCoreInfo segmentCoreInfo;
- private final TraceServiceModuleConfig config;
- @Setter private SegmentStandardizationWorker standardizationWorker;
- private volatile static CounterMetrics TRACE_BUFFER_FILE_RETRY;
- private volatile static CounterMetrics TRACE_BUFFER_FILE_OUT;
- private volatile static CounterMetrics TRACE_PARSE_ERROR;
-
- private SegmentParse(ModuleManager moduleManager, SegmentParserListenerManager listenerManager,
- TraceServiceModuleConfig config) {
- this.moduleManager = moduleManager;
- this.listenerManager = listenerManager;
- this.spanListeners = new LinkedList<>();
- this.segmentCoreInfo = new SegmentCoreInfo();
- this.segmentCoreInfo.setStartTime(Long.MAX_VALUE);
- this.segmentCoreInfo.setEndTime(Long.MIN_VALUE);
- this.segmentCoreInfo.setV2(false);
- this.config = config;
-
- MetricsCreator metricsCreator = moduleManager.find(TelemetryModule.NAME).provider().getService(MetricsCreator.class);
- TRACE_BUFFER_FILE_RETRY = metricsCreator.createCounter("v5_trace_buffer_file_retry", "The number of retry trace segment from the buffer file, but haven't registered successfully.",
- MetricsTag.EMPTY_KEY, MetricsTag.EMPTY_VALUE);
- TRACE_BUFFER_FILE_OUT = metricsCreator.createCounter("v5_trace_buffer_file_out", "The number of trace segment out of the buffer file",
- MetricsTag.EMPTY_KEY, MetricsTag.EMPTY_VALUE);
- TRACE_PARSE_ERROR = metricsCreator.createCounter("v5_trace_parse_error", "The number of trace segment out of the buffer file",
- MetricsTag.EMPTY_KEY, MetricsTag.EMPTY_VALUE);
- }
-
- public boolean parse(BufferData<UpstreamSegment> bufferData, Source source) {
- createSpanListeners();
-
- try {
- UpstreamSegment upstreamSegment = bufferData.getMessageType();
- List<UniqueId> traceIds = upstreamSegment.getGlobalTraceIdsList();
-
- if (bufferData.getV1Segment() == null) {
- bufferData.setV1Segment(parseBinarySegment(upstreamSegment));
- }
- TraceSegmentObject segmentObject = bufferData.getV1Segment();
-
- SegmentDecorator segmentDecorator = new SegmentDecorator(segmentObject);
-
- if (!preBuild(traceIds, segmentDecorator)) {
- if (logger.isDebugEnabled()) {
- logger.debug("This segment id exchange not success, write to buffer file, id: {}", segmentCoreInfo.getSegmentId());
- }
-
- if (source.equals(Source.Agent)) {
- writeToBufferFile(segmentCoreInfo.getSegmentId(), upstreamSegment);
- } else {
- // from SegmentSource.Buffer
- TRACE_BUFFER_FILE_RETRY.inc();
- }
- return false;
- } else {
- if (logger.isDebugEnabled()) {
- logger.debug("This segment id exchange success, id: {}", segmentCoreInfo.getSegmentId());
- }
- TRACE_BUFFER_FILE_OUT.inc();
- notifyListenerToBuild();
- return true;
- }
- } catch (Throwable e) {
- TRACE_PARSE_ERROR.inc();
- logger.error(e.getMessage(), e);
- return true;
- }
- }
-
- private TraceSegmentObject parseBinarySegment(UpstreamSegment segment) throws InvalidProtocolBufferException {
- return TraceSegmentObject.parseFrom(segment.getSegment());
- }
-
- private boolean preBuild(List<UniqueId> traceIds, SegmentDecorator segmentDecorator) {
- StringBuilder segmentIdBuilder = new StringBuilder();
-
- for (int i = 0; i < segmentDecorator.getTraceSegmentId().getIdPartsList().size(); i++) {
- if (i == 0) {
- segmentIdBuilder.append(segmentDecorator.getTraceSegmentId().getIdPartsList().get(i));
- } else {
- segmentIdBuilder.append(".").append(segmentDecorator.getTraceSegmentId().getIdPartsList().get(i));
- }
- }
-
- for (UniqueId uniqueId : traceIds) {
- notifyGlobalsListener(uniqueId);
- }
-
- segmentCoreInfo.setSegmentId(segmentIdBuilder.toString());
- segmentCoreInfo.setServiceId(segmentDecorator.getServiceId());
- segmentCoreInfo.setServiceInstanceId(segmentDecorator.getServiceInstanceId());
- segmentCoreInfo.setDataBinary(segmentDecorator.toByteArray());
- segmentCoreInfo.setV2(false);
-
- boolean exchanged = true;
-
- for (int i = 0; i < segmentDecorator.getSpansCount(); i++) {
- SpanDecorator spanDecorator = segmentDecorator.getSpans(i);
-
- if (!SpanExchanger.getInstance(moduleManager).exchange(spanDecorator, segmentCoreInfo.getServiceId())) {
- exchanged = false;
- } else {
- for (int j = 0; j < spanDecorator.getRefsCount(); j++) {
- ReferenceDecorator referenceDecorator = spanDecorator.getRefs(j);
- if (!ReferenceIdExchanger.getInstance(moduleManager).exchange(referenceDecorator, segmentCoreInfo.getServiceId())) {
- exchanged = false;
- }
- }
- }
-
- if (segmentCoreInfo.getStartTime() > spanDecorator.getStartTime()) {
- segmentCoreInfo.setStartTime(spanDecorator.getStartTime());
- }
- if (segmentCoreInfo.getEndTime() < spanDecorator.getEndTime()) {
- segmentCoreInfo.setEndTime(spanDecorator.getEndTime());
- }
- segmentCoreInfo.setError(spanDecorator.getIsError() || segmentCoreInfo.isError());
- }
-
- if (exchanged) {
- long minuteTimeBucket = TimeBucket.getMinuteTimeBucket(segmentCoreInfo.getStartTime());
- segmentCoreInfo.setMinuteTimeBucket(minuteTimeBucket);
-
- for (int i = 0; i < segmentDecorator.getSpansCount(); i++) {
- SpanDecorator spanDecorator = segmentDecorator.getSpans(i);
-
- if (spanDecorator.getSpanId() == 0) {
- notifyFirstListener(spanDecorator);
- }
-
- if (SpanType.Exit.equals(spanDecorator.getSpanType())) {
- notifyExitListener(spanDecorator);
- } else if (SpanType.Entry.equals(spanDecorator.getSpanType())) {
- notifyEntryListener(spanDecorator);
- } else if (SpanType.Local.equals(spanDecorator.getSpanType())) {
- notifyLocalListener(spanDecorator);
- } else {
- logger.error("span type value was unexpected, span type name: {}", spanDecorator.getSpanType().name());
- }
- }
- }
-
- return exchanged;
- }
-
- private void writeToBufferFile(String id, UpstreamSegment upstreamSegment) {
- if (logger.isDebugEnabled()) {
- logger.debug("push to segment buffer write worker, id: {}", id);
- }
-
- SegmentStandardization standardization = new SegmentStandardization(id);
- standardization.setUpstreamSegment(upstreamSegment);
-
- standardizationWorker.in(standardization);
- }
-
- private void notifyListenerToBuild() {
- spanListeners.forEach(SpanListener::build);
- }
-
- private void notifyExitListener(SpanDecorator spanDecorator) {
- spanListeners.forEach(listener -> {
- if (listener.containsPoint(SpanListener.Point.Exit)) {
- ((ExitSpanListener)listener).parseExit(spanDecorator, segmentCoreInfo);
- }
- });
- }
-
- private void notifyEntryListener(SpanDecorator spanDecorator) {
- spanListeners.forEach(listener -> {
- if (listener.containsPoint(SpanListener.Point.Entry)) {
- ((EntrySpanListener)listener).parseEntry(spanDecorator, segmentCoreInfo);
- }
- });
- }
-
- private void notifyLocalListener(SpanDecorator spanDecorator) {
- spanListeners.forEach(listener -> {
- if (listener.containsPoint(SpanListener.Point.Local)) {
- ((LocalSpanListener)listener).parseLocal(spanDecorator, segmentCoreInfo);
- }
- });
- }
-
- private void notifyFirstListener(SpanDecorator spanDecorator) {
- spanListeners.forEach(listener -> {
- if (listener.containsPoint(SpanListener.Point.First)) {
- ((FirstSpanListener)listener).parseFirst(spanDecorator, segmentCoreInfo);
- }
- });
- }
-
- private void notifyGlobalsListener(UniqueId uniqueId) {
- spanListeners.forEach(listener -> {
- if (listener.containsPoint(SpanListener.Point.TraceIds)) {
- ((GlobalTraceIdsListener)listener).parseGlobalTraceId(uniqueId, segmentCoreInfo);
- }
- });
- }
-
- private void createSpanListeners() {
- listenerManager.getSpanListenerFactories().forEach(spanListenerFactory -> spanListeners.add(spanListenerFactory.create(moduleManager, config)));
- }
-
- public enum Source {
- Agent, Buffer
- }
-
- public static class Producer implements DataStreamReader.CallBack<UpstreamSegment> {
-
- @Setter private SegmentStandardizationWorker standardizationWorker;
- private final ModuleManager moduleManager;
- private final SegmentParserListenerManager listenerManager;
- private final TraceServiceModuleConfig config;
-
- public Producer(ModuleManager moduleManager, SegmentParserListenerManager listenerManager,
- TraceServiceModuleConfig config) {
- this.moduleManager = moduleManager;
- this.listenerManager = listenerManager;
- this.config = config;
- }
-
- public void send(UpstreamSegment segment, Source source) {
- SegmentParse segmentParse = new SegmentParse(moduleManager, listenerManager, config);
- segmentParse.setStandardizationWorker(standardizationWorker);
- segmentParse.parse(new BufferData<>(segment), source);
- }
-
- @Override public boolean call(BufferData<UpstreamSegment> bufferData) {
- SegmentParse segmentParse = new SegmentParse(moduleManager, listenerManager, config);
- segmentParse.setStandardizationWorker(standardizationWorker);
- boolean parseResult = segmentParse.parse(bufferData, Source.Buffer);
- if (parseResult) {
- TRACE_BUFFER_FILE_OUT.inc();
- }
-
- return parseResult;
- }
- }
-}
diff --git a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/parser/SegmentParseV2.java b/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/parser/SegmentParseV2.java
index 583301b..097efaa 100755
--- a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/parser/SegmentParseV2.java
+++ b/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/parser/SegmentParseV2.java
@@ -19,22 +19,42 @@
package org.apache.skywalking.oap.server.receiver.trace.provider.parser;
import com.google.protobuf.InvalidProtocolBufferException;
-import java.util.*;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.stream.Collectors;
import lombok.Setter;
-import org.apache.skywalking.apm.network.language.agent.*;
+import org.apache.skywalking.apm.network.ProtocolVersion;
+import org.apache.skywalking.apm.network.language.agent.SpanType;
+import org.apache.skywalking.apm.network.language.agent.UniqueId;
+import org.apache.skywalking.apm.network.language.agent.UpstreamSegment;
import org.apache.skywalking.apm.network.language.agent.v2.SegmentObject;
import org.apache.skywalking.oap.server.core.CoreModule;
+import org.apache.skywalking.oap.server.core.analysis.TimeBucket;
import org.apache.skywalking.oap.server.core.cache.ServiceInstanceInventoryCache;
-import org.apache.skywalking.oap.server.library.buffer.*;
+import org.apache.skywalking.oap.server.library.buffer.BufferData;
+import org.apache.skywalking.oap.server.library.buffer.DataStreamReader;
import org.apache.skywalking.oap.server.library.module.ModuleManager;
-import org.apache.skywalking.oap.server.core.analysis.TimeBucket;
import org.apache.skywalking.oap.server.receiver.trace.provider.TraceServiceModuleConfig;
-import org.apache.skywalking.oap.server.receiver.trace.provider.parser.decorator.*;
-import org.apache.skywalking.oap.server.receiver.trace.provider.parser.listener.*;
-import org.apache.skywalking.oap.server.receiver.trace.provider.parser.standardization.*;
+import org.apache.skywalking.oap.server.receiver.trace.provider.parser.decorator.ReferenceDecorator;
+import org.apache.skywalking.oap.server.receiver.trace.provider.parser.decorator.SegmentCoreInfo;
+import org.apache.skywalking.oap.server.receiver.trace.provider.parser.decorator.SegmentDecorator;
+import org.apache.skywalking.oap.server.receiver.trace.provider.parser.decorator.SpanDecorator;
+import org.apache.skywalking.oap.server.receiver.trace.provider.parser.listener.EntrySpanListener;
+import org.apache.skywalking.oap.server.receiver.trace.provider.parser.listener.ExitSpanListener;
+import org.apache.skywalking.oap.server.receiver.trace.provider.parser.listener.FirstSpanListener;
+import org.apache.skywalking.oap.server.receiver.trace.provider.parser.listener.GlobalTraceIdsListener;
+import org.apache.skywalking.oap.server.receiver.trace.provider.parser.listener.LocalSpanListener;
+import org.apache.skywalking.oap.server.receiver.trace.provider.parser.listener.SpanListener;
+import org.apache.skywalking.oap.server.receiver.trace.provider.parser.standardization.ReferenceIdExchanger;
+import org.apache.skywalking.oap.server.receiver.trace.provider.parser.standardization.SegmentStandardization;
+import org.apache.skywalking.oap.server.receiver.trace.provider.parser.standardization.SegmentStandardizationWorker;
+import org.apache.skywalking.oap.server.receiver.trace.provider.parser.standardization.SpanExchanger;
import org.apache.skywalking.oap.server.telemetry.TelemetryModule;
-import org.apache.skywalking.oap.server.telemetry.api.*;
-import org.slf4j.*;
+import org.apache.skywalking.oap.server.telemetry.api.CounterMetrics;
+import org.apache.skywalking.oap.server.telemetry.api.MetricsCreator;
+import org.apache.skywalking.oap.server.telemetry.api.MetricsTag;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
/**
* SegmentParseV2 is a replication of SegmentParse, but be compatible with v2 trace protocol.
@@ -63,7 +83,7 @@ public class SegmentParseV2 {
this.segmentCoreInfo = new SegmentCoreInfo();
this.segmentCoreInfo.setStartTime(Long.MAX_VALUE);
this.segmentCoreInfo.setEndTime(Long.MIN_VALUE);
- this.segmentCoreInfo.setV2(true);
+ this.segmentCoreInfo.setVersion(ProtocolVersion.V2);
this.config = config;
if (TRACE_BUFFER_FILE_RETRY == null) {
@@ -133,25 +153,16 @@ public class SegmentParseV2 {
}
private boolean preBuild(List<UniqueId> traceIds, SegmentDecorator segmentDecorator) {
- StringBuilder segmentIdBuilder = new StringBuilder();
-
- for (int i = 0; i < segmentDecorator.getTraceSegmentId().getIdPartsList().size(); i++) {
- if (i == 0) {
- segmentIdBuilder.append(segmentDecorator.getTraceSegmentId().getIdPartsList().get(i));
- } else {
- segmentIdBuilder.append(".").append(segmentDecorator.getTraceSegmentId().getIdPartsList().get(i));
- }
- }
-
for (UniqueId uniqueId : traceIds) {
notifyGlobalsListener(uniqueId);
}
- segmentCoreInfo.setSegmentId(segmentIdBuilder.toString());
+ final String segmentId = segmentDecorator.getTraceSegmentId().getIdPartsList().stream().map(String::valueOf).collect(Collectors.joining("."));
+ segmentCoreInfo.setSegmentId(segmentId);
segmentCoreInfo.setServiceId(segmentDecorator.getServiceId());
segmentCoreInfo.setServiceInstanceId(segmentDecorator.getServiceInstanceId());
segmentCoreInfo.setDataBinary(segmentDecorator.toByteArray());
- segmentCoreInfo.setV2(true);
+ segmentCoreInfo.setVersion(ProtocolVersion.V2);
boolean exchanged = true;
diff --git a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/parser/SegmentParserListenerManager.java b/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/parser/SegmentParserListenerManager.java
index 36a80a4..24dc6d6 100644
--- a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/parser/SegmentParserListenerManager.java
+++ b/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/parser/SegmentParserListenerManager.java
@@ -27,7 +27,7 @@ import org.apache.skywalking.oap.server.receiver.trace.provider.parser.listener.
*/
public class SegmentParserListenerManager implements ISegmentParserListenerManager {
- private List<SpanListenerFactory> spanListenerFactories;
+ private final List<SpanListenerFactory> spanListenerFactories;
public SegmentParserListenerManager() {
this.spanListenerFactories = new LinkedList<>();
diff --git a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/parser/decorator/ReferenceDecorator.java b/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/parser/decorator/ReferenceDecorator.java
index 591a570..81ea5d4 100644
--- a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/parser/decorator/ReferenceDecorator.java
+++ b/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/parser/decorator/ReferenceDecorator.java
@@ -18,9 +18,6 @@
package org.apache.skywalking.oap.server.receiver.trace.provider.parser.decorator;
-import org.apache.skywalking.apm.network.language.agent.RefType;
-import org.apache.skywalking.apm.network.language.agent.TraceSegmentReference;
-import org.apache.skywalking.apm.network.language.agent.UniqueId;
import org.apache.skywalking.apm.network.language.agent.v2.SegmentReference;
/**
@@ -29,60 +26,26 @@ import org.apache.skywalking.apm.network.language.agent.v2.SegmentReference;
public class ReferenceDecorator implements StandardBuilder {
private boolean isOrigin = true;
- private StandardBuilder standardBuilder;
- private TraceSegmentReference referenceObject;
- private TraceSegmentReference.Builder referenceBuilder;
- private final boolean isV2;
+ private final StandardBuilder standardBuilder;
private SegmentReference referenceObjectV2;
private SegmentReference.Builder referenceBuilderV2;
- public ReferenceDecorator(TraceSegmentReference referenceObject, StandardBuilder standardBuilder) {
- this.referenceObject = referenceObject;
- this.standardBuilder = standardBuilder;
- isV2 = false;
- }
-
- public ReferenceDecorator(TraceSegmentReference.Builder referenceBuilder, StandardBuilder standardBuilder) {
- this.referenceBuilder = referenceBuilder;
- this.standardBuilder = standardBuilder;
- this.isOrigin = false;
- isV2 = false;
- }
-
public ReferenceDecorator(SegmentReference referenceObject, StandardBuilder standardBuilder) {
this.referenceObjectV2 = referenceObject;
this.standardBuilder = standardBuilder;
- isV2 = true;
}
public ReferenceDecorator(SegmentReference.Builder referenceBuilder, StandardBuilder standardBuilder) {
this.referenceBuilderV2 = referenceBuilder;
this.standardBuilder = standardBuilder;
this.isOrigin = false;
- isV2 = true;
- }
-
- public RefType getRefType() {
- if (isOrigin) {
- return isV2 ? referenceObjectV2.getRefType() : referenceObject.getRefType();
- } else {
- return isV2 ? referenceBuilderV2.getRefType() : referenceBuilder.getRefType();
- }
- }
-
- public int getRefTypeValue() {
- if (isOrigin) {
- return isV2 ? referenceObjectV2.getRefTypeValue() : referenceObject.getRefTypeValue();
- } else {
- return isV2 ? referenceBuilderV2.getRefTypeValue() : referenceBuilder.getRefTypeValue();
- }
}
public int getEntryEndpointId() {
if (isOrigin) {
- return isV2 ? referenceObjectV2.getEntryEndpointId() : referenceObject.getEntryServiceId();
+ return referenceObjectV2.getEntryEndpointId();
} else {
- return isV2 ? referenceBuilderV2.getEntryEndpointId() : referenceBuilder.getEntryServiceId();
+ return referenceBuilderV2.getEntryEndpointId();
}
}
@@ -90,18 +53,14 @@ public class ReferenceDecorator implements StandardBuilder {
if (isOrigin) {
toBuilder();
}
- if (isV2) {
- referenceBuilderV2.setEntryEndpointId(value);
- } else {
- referenceBuilder.setEntryServiceId(value);
- }
+ referenceBuilderV2.setEntryEndpointId(value);
}
public String getEntryEndpointName() {
if (isOrigin) {
- return isV2 ? referenceObjectV2.getEntryEndpoint() : referenceObject.getEntryServiceName();
+ return referenceObjectV2.getEntryEndpoint();
} else {
- return isV2 ? referenceBuilderV2.getEntryEndpoint() : referenceBuilder.getEntryServiceName();
+ return referenceBuilderV2.getEntryEndpoint();
}
}
@@ -109,34 +68,30 @@ public class ReferenceDecorator implements StandardBuilder {
if (isOrigin) {
toBuilder();
}
- if (isV2) {
- referenceBuilderV2.setEntryEndpoint(value);
- } else {
- referenceBuilder.setEntryServiceName(value);
- }
+ referenceBuilderV2.setEntryEndpoint(value);
}
public int getEntryServiceInstanceId() {
if (isOrigin) {
- return isV2 ? referenceObjectV2.getEntryServiceInstanceId() : referenceObject.getEntryApplicationInstanceId();
+ return referenceObjectV2.getEntryServiceInstanceId();
} else {
- return isV2 ? referenceBuilderV2.getEntryServiceInstanceId() : referenceBuilder.getEntryApplicationInstanceId();
+ return referenceBuilderV2.getEntryServiceInstanceId();
}
}
public int getParentServiceInstanceId() {
if (isOrigin) {
- return isV2 ? referenceObjectV2.getParentServiceInstanceId() : referenceObject.getParentApplicationInstanceId();
+ return referenceObjectV2.getParentServiceInstanceId();
} else {
- return isV2 ? referenceBuilderV2.getParentServiceInstanceId() : referenceBuilder.getParentApplicationInstanceId();
+ return referenceBuilderV2.getParentServiceInstanceId();
}
}
public int getParentEndpointId() {
if (isOrigin) {
- return isV2 ? referenceObjectV2.getParentEndpointId() : referenceObject.getParentServiceId();
+ return referenceObjectV2.getParentEndpointId();
} else {
- return isV2 ? referenceBuilderV2.getParentEndpointId() : referenceBuilder.getParentServiceId();
+ return referenceBuilderV2.getParentEndpointId();
}
}
@@ -144,26 +99,14 @@ public class ReferenceDecorator implements StandardBuilder {
if (isOrigin) {
toBuilder();
}
- if (isV2) {
- referenceBuilderV2.setParentEndpointId(value);
- } else {
- referenceBuilder.setParentServiceId(value);
- }
- }
-
- public int getParentSpanId() {
- if (isOrigin) {
- return isV2 ? referenceObjectV2.getParentSpanId() : referenceObject.getParentSpanId();
- } else {
- return isV2 ? referenceBuilderV2.getParentSpanId() : referenceBuilder.getParentSpanId();
- }
+ referenceBuilderV2.setParentEndpointId(value);
}
public String getParentEndpointName() {
if (isOrigin) {
- return isV2 ? referenceObjectV2.getParentEndpoint() : referenceObject.getParentServiceName();
+ return referenceObjectV2.getParentEndpoint();
} else {
- return isV2 ? referenceBuilderV2.getParentEndpoint() : referenceBuilder.getParentServiceName();
+ return referenceBuilderV2.getParentEndpoint();
}
}
@@ -171,26 +114,14 @@ public class ReferenceDecorator implements StandardBuilder {
if (isOrigin) {
toBuilder();
}
- if (isV2) {
- referenceBuilderV2.setParentEndpoint(value);
- } else {
- referenceBuilder.setParentServiceName(value);
- }
- }
-
- public UniqueId getParentTraceSegmentId() {
- if (isOrigin) {
- return isV2 ? referenceObjectV2.getParentTraceSegmentId() : referenceObject.getParentTraceSegmentId();
- } else {
- return isV2 ? referenceBuilderV2.getParentTraceSegmentId() : referenceBuilder.getParentTraceSegmentId();
- }
+ referenceBuilderV2.setParentEndpoint(value);
}
public int getNetworkAddressId() {
if (isOrigin) {
- return isV2 ? referenceObjectV2.getNetworkAddressId() : referenceObject.getNetworkAddressId();
+ return referenceObjectV2.getNetworkAddressId();
} else {
- return isV2 ? referenceBuilderV2.getNetworkAddressId() : referenceBuilder.getNetworkAddressId();
+ return referenceBuilderV2.getNetworkAddressId();
}
}
@@ -198,18 +129,14 @@ public class ReferenceDecorator implements StandardBuilder {
if (isOrigin) {
toBuilder();
}
- if (isV2) {
- referenceBuilderV2.setNetworkAddressId(value);
- } else {
- referenceBuilder.setNetworkAddressId(value);
- }
+ referenceBuilderV2.setNetworkAddressId(value);
}
public String getNetworkAddress() {
if (isOrigin) {
- return isV2 ? referenceObjectV2.getNetworkAddress() : referenceObject.getNetworkAddress();
+ return referenceObjectV2.getNetworkAddress();
} else {
- return isV2 ? referenceBuilderV2.getNetworkAddress() : referenceBuilder.getNetworkAddress();
+ return referenceBuilderV2.getNetworkAddress();
}
}
@@ -217,21 +144,13 @@ public class ReferenceDecorator implements StandardBuilder {
if (isOrigin) {
toBuilder();
}
- if (isV2) {
- referenceBuilderV2.setNetworkAddress(value);
- } else {
- referenceBuilder.setNetworkAddress(value);
- }
+ referenceBuilderV2.setNetworkAddress(value);
}
@Override public void toBuilder() {
if (this.isOrigin) {
this.isOrigin = false;
- if (isV2) {
- referenceBuilderV2 = referenceObjectV2.toBuilder();
- } else {
- referenceBuilder = referenceObject.toBuilder();
- }
+ referenceBuilderV2 = referenceObjectV2.toBuilder();
standardBuilder.toBuilder();
}
}
diff --git a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/parser/decorator/SegmentCoreInfo.java b/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/parser/decorator/SegmentCoreInfo.java
index d78bea8..fcb960f 100644
--- a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/parser/decorator/SegmentCoreInfo.java
+++ b/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/parser/decorator/SegmentCoreInfo.java
@@ -19,6 +19,7 @@
package org.apache.skywalking.oap.server.receiver.trace.provider.parser.decorator;
import lombok.*;
+import org.apache.skywalking.apm.network.ProtocolVersion;
/**
* @author peng-yongsheng
@@ -34,5 +35,5 @@ public class SegmentCoreInfo {
private boolean isError;
private long minuteTimeBucket;
private byte[] dataBinary;
- private boolean isV2;
+ private ProtocolVersion version;
}
diff --git a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/parser/decorator/SegmentDecorator.java b/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/parser/decorator/SegmentDecorator.java
index 061d5bd..7cd7ea4 100644
--- a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/parser/decorator/SegmentDecorator.java
+++ b/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/parser/decorator/SegmentDecorator.java
@@ -18,7 +18,6 @@
package org.apache.skywalking.oap.server.receiver.trace.provider.parser.decorator;
-import org.apache.skywalking.apm.network.language.agent.TraceSegmentObject;
import org.apache.skywalking.apm.network.language.agent.UniqueId;
import org.apache.skywalking.apm.network.language.agent.v2.SegmentObject;
@@ -29,78 +28,50 @@ import static java.util.Objects.isNull;
*/
public class SegmentDecorator implements StandardBuilder {
private boolean isOrigin = true;
- private final TraceSegmentObject segmentObject;
- private TraceSegmentObject.Builder segmentBuilder;
- private final boolean isV2;
private final SegmentObject segmentObjectV2;
private SegmentObject.Builder segmentBuilderV2;
private final SpanDecorator[] spanDecorators;
- public SegmentDecorator(TraceSegmentObject segmentObject) {
- this.segmentObject = segmentObject;
- this.segmentObjectV2 = null;
- this.spanDecorators = new SpanDecorator[segmentObject.getSpansCount()];
- isV2 = false;
- }
-
public SegmentDecorator(SegmentObject segmentObjectV2) {
this.segmentObjectV2 = segmentObjectV2;
- this.segmentObject = null;
this.spanDecorators = new SpanDecorator[segmentObjectV2.getSpansCount()];
- isV2 = true;
}
public int getServiceId() {
- return isV2 ? segmentObjectV2.getServiceId() : segmentObject.getApplicationId();
+ return segmentObjectV2.getServiceId();
}
public int getServiceInstanceId() {
- return isV2 ? segmentObjectV2.getServiceInstanceId() : segmentObject.getApplicationInstanceId();
+ return segmentObjectV2.getServiceInstanceId();
}
public UniqueId getTraceSegmentId() {
- return isV2 ? segmentObjectV2.getTraceSegmentId() : segmentObject.getTraceSegmentId();
+ return segmentObjectV2.getTraceSegmentId();
}
public int getSpansCount() {
- return isV2 ? segmentObjectV2.getSpansCount() : segmentObject.getSpansCount();
+ return segmentObjectV2.getSpansCount();
}
public SpanDecorator getSpans(int index) {
if (isNull(spanDecorators[index])) {
if (isOrigin) {
- if (isV2) {
- spanDecorators[index] = new SpanDecorator(segmentObjectV2.getSpans(index), this);
- } else {
- spanDecorators[index] = new SpanDecorator(segmentObject.getSpans(index), this);
- }
+ spanDecorators[index] = new SpanDecorator(segmentObjectV2.getSpans(index), this);
} else {
- if (isV2) {
- spanDecorators[index] = new SpanDecorator(segmentBuilderV2.getSpansBuilder(index), this);
- } else {
- spanDecorators[index] = new SpanDecorator(segmentBuilder.getSpansBuilder(index), this);
- }
+ spanDecorators[index] = new SpanDecorator(segmentBuilderV2.getSpansBuilder(index), this);
}
}
return spanDecorators[index];
}
public byte[] toByteArray() {
- if (isOrigin) {
- return isV2 ? segmentObjectV2.toByteArray() : segmentObject.toByteArray();
- } else {
- return segmentBuilder.build().toByteArray();
- }
+ return segmentObjectV2.toByteArray();
}
@Override public void toBuilder() {
if (isOrigin) {
this.isOrigin = false;
- if (isV2) {
- this.segmentBuilderV2 = segmentObjectV2.toBuilder();
- } else {
- this.segmentBuilder = segmentObject.toBuilder();
- }
+ this.segmentBuilderV2 = segmentObjectV2.toBuilder();
}
}
}
diff --git a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/parser/decorator/SpanDecorator.java b/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/parser/decorator/SpanDecorator.java
index 76fefa6..7c291dd 100644
--- a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/parser/decorator/SpanDecorator.java
+++ b/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/parser/decorator/SpanDecorator.java
@@ -18,9 +18,10 @@
package org.apache.skywalking.oap.server.receiver.trace.provider.parser.decorator;
-import java.util.*;
+import java.util.List;
import org.apache.skywalking.apm.network.common.KeyStringValuePair;
-import org.apache.skywalking.apm.network.language.agent.*;
+import org.apache.skywalking.apm.network.language.agent.SpanLayer;
+import org.apache.skywalking.apm.network.language.agent.SpanType;
import org.apache.skywalking.apm.network.language.agent.v2.SpanObjectV2;
import static java.util.Objects.isNull;
@@ -29,35 +30,16 @@ import static java.util.Objects.isNull;
* @author peng-yongsheng
*/
public class SpanDecorator implements StandardBuilder {
- private final boolean isV2;
private boolean isOrigin = true;
- private StandardBuilder standardBuilder;
- private SpanObject spanObject;
+ private final StandardBuilder standardBuilder;
private SpanObjectV2 spanObjectV2;
- private SpanObject.Builder spanBuilder;
private SpanObjectV2.Builder spanBuilderV2;
private final ReferenceDecorator[] referenceDecorators;
- public SpanDecorator(SpanObject spanObject, StandardBuilder standardBuilder) {
- this.spanObject = spanObject;
- this.standardBuilder = standardBuilder;
- this.referenceDecorators = new ReferenceDecorator[spanObject.getRefsCount()];
- this.isV2 = false;
- }
-
- public SpanDecorator(SpanObject.Builder spanBuilder, StandardBuilder standardBuilder) {
- this.spanBuilder = spanBuilder;
- this.standardBuilder = standardBuilder;
- this.isOrigin = false;
- this.referenceDecorators = new ReferenceDecorator[spanBuilder.getRefsCount()];
- this.isV2 = false;
- }
-
public SpanDecorator(SpanObjectV2 spanObject, StandardBuilder standardBuilder) {
this.spanObjectV2 = spanObject;
this.standardBuilder = standardBuilder;
this.referenceDecorators = new ReferenceDecorator[spanObject.getRefsCount()];
- this.isV2 = true;
}
public SpanDecorator(SpanObjectV2.Builder spanBuilder, StandardBuilder standardBuilder) {
@@ -65,78 +47,61 @@ public class SpanDecorator implements StandardBuilder {
this.standardBuilder = standardBuilder;
this.isOrigin = false;
this.referenceDecorators = new ReferenceDecorator[spanBuilder.getRefsCount()];
- this.isV2 = true;
}
public int getSpanId() {
if (isOrigin) {
- return isV2 ? spanObjectV2.getSpanId() : spanObject.getSpanId();
+ return spanObjectV2.getSpanId();
} else {
- return isV2 ? spanBuilderV2.getSpanId() : spanBuilder.getSpanId();
- }
- }
-
- public int getParentSpanId() {
- if (isOrigin) {
- return isV2 ? spanObjectV2.getParentSpanId() : spanObject.getParentSpanId();
- } else {
- return isV2 ? spanBuilderV2.getParentSpanId() : spanBuilder.getParentSpanId();
+ return spanBuilderV2.getSpanId();
}
}
public SpanType getSpanType() {
if (isOrigin) {
- return isV2 ? spanObjectV2.getSpanType() : spanObject.getSpanType();
+ return spanObjectV2.getSpanType();
} else {
- return isV2 ? spanBuilderV2.getSpanType() : spanBuilder.getSpanType();
- }
- }
-
- public int getSpanTypeValue() {
- if (isOrigin) {
- return isV2 ? spanObjectV2.getSpanTypeValue() : spanObject.getSpanTypeValue();
- } else {
- return isV2 ? spanBuilderV2.getSpanTypeValue() : spanBuilder.getSpanTypeValue();
+ return spanBuilderV2.getSpanType();
}
}
public SpanLayer getSpanLayer() {
if (isOrigin) {
- return isV2 ? spanObjectV2.getSpanLayer() : spanObject.getSpanLayer();
+ return spanObjectV2.getSpanLayer();
} else {
- return isV2 ? spanBuilderV2.getSpanLayer() : spanBuilder.getSpanLayer();
+ return spanBuilderV2.getSpanLayer();
}
}
public int getSpanLayerValue() {
if (isOrigin) {
- return isV2 ? spanObjectV2.getSpanLayerValue() : spanObject.getSpanLayerValue();
+ return spanObjectV2.getSpanLayerValue();
} else {
- return isV2 ? spanBuilderV2.getSpanLayerValue() : spanBuilder.getSpanLayerValue();
+ return spanBuilderV2.getSpanLayerValue();
}
}
public long getStartTime() {
if (isOrigin) {
- return isV2 ? spanObjectV2.getStartTime() : spanObject.getStartTime();
+ return spanObjectV2.getStartTime();
} else {
- return isV2 ? spanBuilderV2.getStartTime() : spanBuilder.getStartTime();
+ return spanBuilderV2.getStartTime();
}
}
public long getEndTime() {
if (isOrigin) {
- return isV2 ? spanObjectV2.getEndTime() : spanObject.getEndTime();
+ return spanObjectV2.getEndTime();
} else {
- return isV2 ? spanBuilderV2.getEndTime() : spanBuilder.getEndTime();
+ return spanBuilderV2.getEndTime();
}
}
public int getComponentId() {
if (isOrigin) {
- return isV2 ? spanObjectV2.getComponentId() : spanObject.getComponentId();
+ return spanObjectV2.getComponentId();
} else {
- return isV2 ? spanBuilderV2.getComponentId() : spanBuilder.getComponentId();
+ return spanBuilderV2.getComponentId();
}
}
@@ -144,18 +109,14 @@ public class SpanDecorator implements StandardBuilder {
if (isOrigin) {
toBuilder();
}
- if (isV2) {
- spanBuilderV2.setComponentId(value);
- } else {
- spanBuilder.setComponentId(value);
- }
+ spanBuilderV2.setComponentId(value);
}
public String getComponent() {
if (isOrigin) {
- return isV2 ? spanObjectV2.getComponent() : spanObject.getComponent();
+ return spanObjectV2.getComponent();
} else {
- return isV2 ? spanBuilderV2.getComponent() : spanBuilder.getComponent();
+ return spanBuilderV2.getComponent();
}
}
@@ -163,18 +124,14 @@ public class SpanDecorator implements StandardBuilder {
if (isOrigin) {
toBuilder();
}
- if (isV2) {
- spanBuilderV2.setComponent(value);
- } else {
- spanBuilder.setComponent(value);
- }
+ spanBuilderV2.setComponent(value);
}
public int getPeerId() {
if (isOrigin) {
- return isV2 ? spanObjectV2.getPeerId() : spanObject.getPeerId();
+ return spanObjectV2.getPeerId();
} else {
- return isV2 ? spanBuilderV2.getPeerId() : spanBuilder.getPeerId();
+ return spanBuilderV2.getPeerId();
}
}
@@ -182,18 +139,14 @@ public class SpanDecorator implements StandardBuilder {
if (isOrigin) {
toBuilder();
}
- if (isV2) {
- spanBuilderV2.setPeerId(peerId);
- } else {
- spanBuilder.setPeerId(peerId);
- }
+ spanBuilderV2.setPeerId(peerId);
}
public String getPeer() {
if (isOrigin) {
- return isV2 ? spanObjectV2.getPeer() : spanObject.getPeer();
+ return spanObjectV2.getPeer();
} else {
- return isV2 ? spanBuilderV2.getPeer() : spanBuilder.getPeer();
+ return spanBuilderV2.getPeer();
}
}
@@ -201,18 +154,14 @@ public class SpanDecorator implements StandardBuilder {
if (isOrigin) {
toBuilder();
}
- if (isV2) {
- spanBuilderV2.setPeer(peer);
- } else {
- spanBuilder.setPeer(peer);
- }
+ spanBuilderV2.setPeer(peer);
}
public int getOperationNameId() {
if (isOrigin) {
- return isV2 ? spanObjectV2.getOperationNameId() : spanObject.getOperationNameId();
+ return spanObjectV2.getOperationNameId();
} else {
- return isV2 ? spanBuilderV2.getOperationNameId() : spanBuilder.getOperationNameId();
+ return spanBuilderV2.getOperationNameId();
}
}
@@ -220,18 +169,14 @@ public class SpanDecorator implements StandardBuilder {
if (isOrigin) {
toBuilder();
}
- if (isV2) {
- spanBuilderV2.setOperationNameId(value);
- } else {
- spanBuilder.setOperationNameId(value);
- }
+ spanBuilderV2.setOperationNameId(value);
}
public String getOperationName() {
if (isOrigin) {
- return isV2 ? spanObjectV2.getOperationName() : spanObject.getOperationName();
+ return spanObjectV2.getOperationName();
} else {
- return isV2 ? spanBuilderV2.getOperationName() : spanBuilder.getOperationName();
+ return spanBuilderV2.getOperationName();
}
}
@@ -239,43 +184,31 @@ public class SpanDecorator implements StandardBuilder {
if (isOrigin) {
toBuilder();
}
- if (isV2) {
- spanBuilderV2.setOperationName(value);
- } else {
- spanBuilder.setOperationName(value);
- }
+ spanBuilderV2.setOperationName(value);
}
public boolean getIsError() {
if (isOrigin) {
- return isV2 ? spanObjectV2.getIsError() : spanObject.getIsError();
+ return spanObjectV2.getIsError();
} else {
- return isV2 ? spanBuilderV2.getIsError() : spanBuilder.getIsError();
+ return spanBuilderV2.getIsError();
}
}
public int getRefsCount() {
if (isOrigin) {
- return isV2 ? spanObjectV2.getRefsCount() : spanObject.getRefsCount();
+ return spanObjectV2.getRefsCount();
} else {
- return isV2 ? spanBuilderV2.getRefsCount() : spanBuilder.getRefsCount();
+ return spanBuilderV2.getRefsCount();
}
}
public ReferenceDecorator getRefs(int index) {
if (isNull(referenceDecorators[index])) {
if (isOrigin) {
- if (isV2) {
- referenceDecorators[index] = new ReferenceDecorator(spanObjectV2.getRefs(index), this);
- } else {
- referenceDecorators[index] = new ReferenceDecorator(spanObject.getRefs(index), this);
- }
+ referenceDecorators[index] = new ReferenceDecorator(spanObjectV2.getRefs(index), this);
} else {
- if (isV2) {
- referenceDecorators[index] = new ReferenceDecorator(spanBuilderV2.getRefsBuilder(index), this);
- } else {
- referenceDecorators[index] = new ReferenceDecorator(spanBuilder.getRefsBuilder(index), this);
- }
+ referenceDecorators[index] = new ReferenceDecorator(spanBuilderV2.getRefsBuilder(index), this);
}
}
return referenceDecorators[index];
@@ -283,33 +216,18 @@ public class SpanDecorator implements StandardBuilder {
public List<KeyStringValuePair> getAllTags() {
if (isOrigin) {
- return isV2 ? spanObjectV2.getTagsList() : convert(spanObject.getTagsList());
+ return spanObjectV2.getTagsList();
} else {
- return isV2 ? spanBuilderV2.getTagsList() : convert(spanBuilder.getTagsList());
+ return spanBuilderV2.getTagsList();
}
}
@Override public void toBuilder() {
if (this.isOrigin) {
this.isOrigin = false;
- if (isV2) {
- spanBuilderV2 = spanObjectV2.toBuilder();
- } else {
- spanBuilder = spanObject.toBuilder();
- }
+ spanBuilderV2 = spanObjectV2.toBuilder();
standardBuilder.toBuilder();
}
}
- private List<KeyStringValuePair> convert(List<KeyWithStringValue> list) {
- List<KeyStringValuePair> result = new ArrayList<>();
- if (list != null) {
- list.forEach(element -> {
- result.add(KeyStringValuePair.newBuilder()
- .setKey(element.getKey())
- .setValue(element.getValue()).build());
- });
- }
- return result;
- }
}
diff --git a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/parser/listener/endpoint/MultiScopesSpanListener.java b/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/parser/listener/endpoint/MultiScopesSpanListener.java
index 705c782..8b15c4a 100755
--- a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/parser/listener/endpoint/MultiScopesSpanListener.java
+++ b/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/parser/listener/endpoint/MultiScopesSpanListener.java
@@ -21,6 +21,7 @@ package org.apache.skywalking.oap.server.receiver.trace.provider.parser.listener
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
+import java.util.stream.Collectors;
import org.apache.skywalking.apm.network.common.KeyStringValuePair;
import org.apache.skywalking.apm.network.language.agent.SpanLayer;
import org.apache.skywalking.apm.network.language.agent.UniqueId;
@@ -49,24 +50,16 @@ import org.apache.skywalking.oap.server.receiver.trace.provider.parser.listener.
import org.apache.skywalking.oap.server.receiver.trace.provider.parser.listener.GlobalTraceIdsListener;
import org.apache.skywalking.oap.server.receiver.trace.provider.parser.listener.SpanListener;
import org.apache.skywalking.oap.server.receiver.trace.provider.parser.listener.SpanListenerFactory;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
import static java.util.Objects.nonNull;
/**
* Notice, in here, there are following concepts match
*
- * v5 | v6
- *
- * 1. Application == Service 2. Server == Service Instance 3. Service == Endpoint
- *
* @author peng-yongsheng, wusheng
*/
public class MultiScopesSpanListener implements EntrySpanListener, ExitSpanListener, GlobalTraceIdsListener {
- private static final Logger logger = LoggerFactory.getLogger(MultiScopesSpanListener.class);
-
private final SourceReceiver sourceReceiver;
private final ServiceInstanceInventoryCache instanceInventoryCache;
private final ServiceInventoryCache serviceInventoryCache;
@@ -257,7 +250,7 @@ public class MultiScopesSpanListener implements EntrySpanListener, ExitSpanListe
sourceReceiver.receive(entrySourceBuilder.toServiceRelation());
sourceReceiver.receive(entrySourceBuilder.toServiceInstanceRelation());
EndpointRelation endpointRelation = entrySourceBuilder.toEndpointRelation();
- /**
+ /*
* Parent endpoint could be none, because in SkyWalking Cross Process Propagation Headers Protocol v2,
* endpoint in ref could be empty, based on that, endpoint relation maybe can't be established.
* So, I am making this source as optional.
@@ -291,15 +284,7 @@ public class MultiScopesSpanListener implements EntrySpanListener, ExitSpanListe
@Override public void parseGlobalTraceId(UniqueId uniqueId, SegmentCoreInfo segmentCoreInfo) {
if (traceId == null) {
- StringBuilder traceIdBuilder = new StringBuilder();
- for (int i = 0; i < uniqueId.getIdPartsList().size(); i++) {
- if (i == 0) {
- traceIdBuilder.append(uniqueId.getIdPartsList().get(i));
- } else {
- traceIdBuilder.append(".").append(uniqueId.getIdPartsList().get(i));
- }
- }
- traceId = traceIdBuilder.toString();
+ traceId = uniqueId.getIdPartsList().stream().map(String::valueOf).collect(Collectors.joining("."));
}
}
diff --git a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/parser/listener/segment/SegmentSpanListener.java b/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/parser/listener/segment/SegmentSpanListener.java
index 492b1d6..36f4c9a 100644
--- a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/parser/listener/segment/SegmentSpanListener.java
+++ b/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/parser/listener/segment/SegmentSpanListener.java
@@ -18,6 +18,7 @@
package org.apache.skywalking.oap.server.receiver.trace.provider.parser.listener.segment;
+import java.util.stream.Collectors;
import org.apache.skywalking.apm.network.language.agent.UniqueId;
import org.apache.skywalking.oap.server.core.Const;
import org.apache.skywalking.oap.server.core.CoreModule;
@@ -81,10 +82,7 @@ public class SegmentSpanListener implements FirstSpanListener, EntrySpanListener
segment.setIsError(BooleanUtils.booleanToValue(segmentCoreInfo.isError()));
segment.setTimeBucket(timeBucket);
segment.setDataBinary(segmentCoreInfo.getDataBinary());
- /**
- * Only consider v1, v2 compatible for now.
- */
- segment.setVersion(segmentCoreInfo.isV2() ? 2 : 1);
+ segment.setVersion(segmentCoreInfo.getVersion().number());
firstEndpointId = spanDecorator.getOperationNameId();
firstEndpointName = spanDecorator.getOperationName();
@@ -107,15 +105,8 @@ public class SegmentSpanListener implements FirstSpanListener, EntrySpanListener
return;
}
- StringBuilder traceIdBuilder = new StringBuilder();
- for (int i = 0; i < uniqueId.getIdPartsList().size(); i++) {
- if (i == 0) {
- traceIdBuilder.append(uniqueId.getIdPartsList().get(i));
- } else {
- traceIdBuilder.append(".").append(uniqueId.getIdPartsList().get(i));
- }
- }
- segment.setTraceId(traceIdBuilder.toString());
+ final String traceId = uniqueId.getIdPartsList().stream().map(String::valueOf).collect(Collectors.joining("."));
+ segment.setTraceId(traceId);
}
@Override public void build() {
@@ -129,13 +120,13 @@ public class SegmentSpanListener implements FirstSpanListener, EntrySpanListener
if (entryEndpointId == Const.NONE) {
if (firstEndpointId != Const.NONE) {
- /**
+ /*
* Since 6.6.0, only entry span is treated as an endpoint. Other span's endpoint id == 0.
*/
segment.setEndpointId(firstEndpointId);
segment.setEndpointName(serviceNameCacheService.get(firstEndpointId).getName());
} else {
- /**
+ /*
* Only fill first operation name for the trace list query, as no endpoint id.
*/
segment.setEndpointName(firstEndpointName);
@@ -153,7 +144,7 @@ public class SegmentSpanListener implements FirstSpanListener, EntrySpanListener
}
public static class Factory implements SpanListenerFactory {
- private TraceSegmentSampler sampler;
+ private final TraceSegmentSampler sampler;
public Factory(int segmentSamplingRate) {
this.sampler = new TraceSegmentSampler(segmentSamplingRate);
diff --git a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/parser/standardization/SegmentStandardizationWorker.java b/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/parser/standardization/SegmentStandardizationWorker.java
index 92fc4a0..8464e06 100644
--- a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/parser/standardization/SegmentStandardizationWorker.java
+++ b/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/parser/standardization/SegmentStandardizationWorker.java
@@ -42,7 +42,7 @@ public class SegmentStandardizationWorker extends AbstractWorker<SegmentStandard
public SegmentStandardizationWorker(ModuleDefineHolder moduleDefineHolder,
DataStreamReader.CallBack<UpstreamSegment> segmentParse, String path, int offsetFileMaxSize,
- int dataFileMaxSize, boolean cleanWhenRestart, boolean isV6) throws IOException {
+ int dataFileMaxSize, boolean cleanWhenRestart) throws IOException {
super(moduleDefineHolder);
BufferStream.Builder<UpstreamSegment> builder = new BufferStream.Builder<>(path);
@@ -59,7 +59,7 @@ public class SegmentStandardizationWorker extends AbstractWorker<SegmentStandard
dataCarrier.consume(new Consumer(stream), 1, 200);
MetricsCreator metricsCreator = moduleDefineHolder.find(TelemetryModule.NAME).provider().getService(MetricsCreator.class);
- String metricNamePrefix = isV6 ? "v6_" : "v5_";
+ String metricNamePrefix = "v6_";
traceBufferFileIn = metricsCreator.createCounter(metricNamePrefix + "trace_buffer_file_in", "The number of trace segment into the buffer file",
MetricsTag.EMPTY_KEY, MetricsTag.EMPTY_VALUE);
}
diff --git a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/test/java/org/apache/skywalking/oap/server/receiver/trace/mock/AgentDataMock.java b/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/test/java/org/apache/skywalking/oap/server/receiver/trace/mock/AgentDataMock.java
deleted file mode 100644
index 8d882aa..0000000
--- a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/test/java/org/apache/skywalking/oap/server/receiver/trace/mock/AgentDataMock.java
+++ /dev/null
@@ -1,102 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-package org.apache.skywalking.oap.server.receiver.trace.mock;
-
-import io.grpc.ManagedChannel;
-import io.grpc.ManagedChannelBuilder;
-import io.grpc.stub.StreamObserver;
-import java.util.concurrent.TimeUnit;
-import org.apache.skywalking.apm.network.language.agent.Downstream;
-import org.apache.skywalking.apm.network.language.agent.TraceSegmentServiceGrpc;
-import org.apache.skywalking.apm.network.language.agent.UniqueId;
-import org.apache.skywalking.apm.network.language.agent.UpstreamSegment;
-
-/**
- * @author peng-yongsheng
- */
-public class AgentDataMock {
-
- private static boolean IS_COMPLETED = false;
-
- public static void main(String[] args) throws InterruptedException {
- ManagedChannel channel = ManagedChannelBuilder.forAddress("localhost", 11800).usePlaintext().build();
-
- RegisterMock registerMock = new RegisterMock(channel);
-
- StreamObserver<UpstreamSegment> streamObserver = createStreamObserver();
-
- UniqueId.Builder globalTraceId = UniqueIdBuilder.INSTANCE.create();
- long startTimestamp = System.currentTimeMillis();
- //long startTimestamp = new DateTime().minusDays(2).getMillis();
-
- // ServiceAMock
- ServiceAMock serviceAMock = new ServiceAMock(registerMock);
- serviceAMock.register();
-
- // ServiceBMock
- ServiceBMock serviceBMock = new ServiceBMock(registerMock);
- serviceBMock.register();
-
- // ServiceCMock
- ServiceCMock serviceCMock = new ServiceCMock(registerMock);
- serviceCMock.register();
-
- UniqueId.Builder serviceASegmentId = UniqueIdBuilder.INSTANCE.create();
- serviceAMock.mock(streamObserver, globalTraceId, serviceASegmentId, startTimestamp, true);
-
- UniqueId.Builder serviceBSegmentId = UniqueIdBuilder.INSTANCE.create();
- serviceBMock.mock(streamObserver, globalTraceId, serviceBSegmentId, serviceASegmentId, startTimestamp, true);
-
- UniqueId.Builder serviceCSegmentId = UniqueIdBuilder.INSTANCE.create();
- serviceCMock.mock(streamObserver, globalTraceId, serviceCSegmentId, serviceBSegmentId, startTimestamp, true);
-
- TimeUnit.SECONDS.sleep(10);
-
- for (int i = 0; i < 500; i++) {
- globalTraceId = UniqueIdBuilder.INSTANCE.create();
- serviceASegmentId = UniqueIdBuilder.INSTANCE.create();
- serviceBSegmentId = UniqueIdBuilder.INSTANCE.create();
- serviceCSegmentId = UniqueIdBuilder.INSTANCE.create();
- serviceAMock.mock(streamObserver, globalTraceId, serviceASegmentId, startTimestamp, true);
- serviceBMock.mock(streamObserver, globalTraceId, serviceBSegmentId, serviceASegmentId, startTimestamp, true);
- serviceCMock.mock(streamObserver, globalTraceId, serviceCSegmentId, serviceBSegmentId, startTimestamp, true);
- }
-
- streamObserver.onCompleted();
- while (!IS_COMPLETED) {
- TimeUnit.MILLISECONDS.sleep(500);
- }
- }
-
- private static StreamObserver<UpstreamSegment> createStreamObserver() {
- ManagedChannel channel = ManagedChannelBuilder.forAddress("localhost", 11800).usePlaintext().build();
- TraceSegmentServiceGrpc.TraceSegmentServiceStub stub = TraceSegmentServiceGrpc.newStub(channel);
- return stub.collect(new StreamObserver<Downstream>() {
- @Override public void onNext(Downstream downstream) {
- }
-
- @Override public void onError(Throwable throwable) {
- }
-
- @Override public void onCompleted() {
- IS_COMPLETED = true;
- }
- });
- }
-}
diff --git a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/test/java/org/apache/skywalking/oap/server/receiver/trace/mock/RegisterMock.java b/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/test/java/org/apache/skywalking/oap/server/receiver/trace/mock/RegisterMock.java
deleted file mode 100644
index 5ba649e..0000000
--- a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/test/java/org/apache/skywalking/oap/server/receiver/trace/mock/RegisterMock.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-package org.apache.skywalking.oap.server.receiver.trace.mock;
-
-import io.grpc.ManagedChannel;
-import java.util.concurrent.TimeUnit;
-import org.apache.skywalking.apm.network.language.agent.*;
-import org.slf4j.*;
-
-/**
- * @author peng-yongsheng
- */
-class RegisterMock {
-
- private static final Logger logger = LoggerFactory.getLogger(RegisterMock.class);
-
- private final ApplicationRegisterServiceGrpc.ApplicationRegisterServiceBlockingStub applicationRegisterServiceBlockingStub;
- private final InstanceDiscoveryServiceGrpc.InstanceDiscoveryServiceBlockingStub instanceDiscoveryServiceBlockingStub;
-
- RegisterMock(ManagedChannel channel) {
- applicationRegisterServiceBlockingStub = ApplicationRegisterServiceGrpc.newBlockingStub(channel);
- instanceDiscoveryServiceBlockingStub = InstanceDiscoveryServiceGrpc.newBlockingStub(channel);
- }
-
- int registerService(String serviceName) throws InterruptedException {
- Application.Builder application = Application.newBuilder();
- application.setApplicationCode(serviceName);
-
- ApplicationMapping applicationMapping;
- do {
- applicationMapping = applicationRegisterServiceBlockingStub.applicationCodeRegister(application.build());
- logger.debug("service id: {}", applicationMapping.getApplication().getValue());
- TimeUnit.MILLISECONDS.sleep(20);
- }
- while (applicationMapping.getApplication().getValue() == 0);
-
- return applicationMapping.getApplication().getValue();
- }
-
- int registerServiceInstance(int serviceId, String agentName) throws InterruptedException {
- ApplicationInstance.Builder instance = ApplicationInstance.newBuilder();
- instance.setApplicationId(serviceId);
- instance.setAgentUUID(agentName);
- instance.setRegisterTime(System.currentTimeMillis());
-
- OSInfo.Builder osInfo = OSInfo.newBuilder();
- osInfo.setHostname(agentName);
- osInfo.setOsName("MacOS XX");
- osInfo.setProcessNo(1001);
- osInfo.addIpv4S("10.0.0.3");
- osInfo.addIpv4S("10.0.0.4");
- instance.setOsinfo(osInfo);
-
- ApplicationInstanceMapping instanceMapping;
- do {
- instanceMapping = instanceDiscoveryServiceBlockingStub.registerInstance(instance.build());
- logger.debug("instance id: {}", instanceMapping.getApplicationInstanceId());
- TimeUnit.MILLISECONDS.sleep(20);
- }
- while (instanceMapping.getApplicationInstanceId() == 0);
-
- return instanceMapping.getApplicationInstanceId();
- }
-}
diff --git a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/test/java/org/apache/skywalking/oap/server/receiver/trace/mock/ServiceAMock.java b/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/test/java/org/apache/skywalking/oap/server/receiver/trace/mock/ServiceAMock.java
deleted file mode 100644
index dd6d25a..0000000
--- a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/test/java/org/apache/skywalking/oap/server/receiver/trace/mock/ServiceAMock.java
+++ /dev/null
@@ -1,116 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-package org.apache.skywalking.oap.server.receiver.trace.mock;
-
-import com.google.protobuf.ByteString;
-import io.grpc.stub.StreamObserver;
-import org.apache.skywalking.apm.network.language.agent.*;
-import org.apache.skywalking.apm.network.trace.component.ComponentsDefine;
-
-/**
- * @author peng-yongsheng
- */
-class ServiceAMock {
-
- static String REST_ENDPOINT = "/dubbox-case/case/dubbox-rest";
- static String DUBBO_ENDPOINT = "org.skywaking.apm.testcase.dubbo.services.GreetService.doBusiness()";
- static String DUBBO_ADDRESS = "DubboIPAddress:1000";
- private final RegisterMock registerMock;
- private static int SERVICE_ID;
- static int SERVICE_INSTANCE_ID;
-
- ServiceAMock(RegisterMock registerMock) {
- this.registerMock = registerMock;
- }
-
- void register() throws InterruptedException {
- SERVICE_ID = registerMock.registerService("dubbox-consumer");
- SERVICE_INSTANCE_ID = registerMock.registerServiceInstance(SERVICE_ID, "pengysA");
- }
-
- void mock(StreamObserver<UpstreamSegment> streamObserver, UniqueId.Builder traceId,
- UniqueId.Builder segmentId, long startTimestamp, boolean isPrepare) {
- UpstreamSegment.Builder upstreamSegment = UpstreamSegment.newBuilder();
- upstreamSegment.addGlobalTraceIds(traceId);
- upstreamSegment.setSegment(createSegment(startTimestamp, segmentId, isPrepare));
-
- streamObserver.onNext(upstreamSegment.build());
- }
-
- private ByteString createSegment(long startTimestamp, UniqueId.Builder segmentId, boolean isPrepare) {
- TraceSegmentObject.Builder segment = TraceSegmentObject.newBuilder();
- segment.setTraceSegmentId(segmentId);
- segment.setApplicationId(SERVICE_ID);
- segment.setApplicationInstanceId(SERVICE_INSTANCE_ID);
- segment.addSpans(createEntrySpan(startTimestamp, isPrepare));
- segment.addSpans(createLocalSpan(startTimestamp, isPrepare));
- segment.addSpans(createExitSpan(startTimestamp, isPrepare));
-
- return segment.build().toByteString();
- }
-
- private SpanObject.Builder createEntrySpan(long startTimestamp, boolean isPrepare) {
- SpanObject.Builder span = SpanObject.newBuilder();
- span.setSpanId(0);
- span.setSpanType(SpanType.Entry);
- span.setSpanLayer(SpanLayer.Http);
- span.setParentSpanId(-1);
- span.setStartTime(startTimestamp);
- span.setEndTime(startTimestamp + 6000);
- span.setComponentId(ComponentsDefine.TOMCAT.getId());
- if (isPrepare) {
- span.setOperationName(REST_ENDPOINT);
- } else {
- span.setOperationNameId(2);
- }
- span.setIsError(false);
- return span;
- }
-
- private SpanObject.Builder createLocalSpan(long startTimestamp, boolean isPrepare) {
- SpanObject.Builder span = SpanObject.newBuilder();
- span.setSpanId(1);
- span.setSpanType(SpanType.Local);
- span.setParentSpanId(0);
- span.setStartTime(startTimestamp + 100);
- span.setEndTime(startTimestamp + 500);
- span.setOperationName("org.apache.skywalking.Local.do");
- span.setIsError(false);
- return span;
- }
-
- private SpanObject.Builder createExitSpan(long startTimestamp, boolean isPrepare) {
- SpanObject.Builder span = SpanObject.newBuilder();
- span.setSpanId(2);
- span.setSpanType(SpanType.Exit);
- span.setSpanLayer(SpanLayer.RPCFramework);
- span.setParentSpanId(1);
- span.setStartTime(startTimestamp + 120);
- span.setEndTime(startTimestamp + 5800);
- span.setComponentId(ComponentsDefine.DUBBO.getId());
- span.setOperationName(DUBBO_ENDPOINT);
- if (isPrepare) {
- span.setPeer(DUBBO_ADDRESS);
- } else {
- span.setPeerId(2);
- }
- span.setIsError(false);
- return span;
- }
-}
diff --git a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/test/java/org/apache/skywalking/oap/server/receiver/trace/mock/ServiceBMock.java b/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/test/java/org/apache/skywalking/oap/server/receiver/trace/mock/ServiceBMock.java
deleted file mode 100644
index 73893ee..0000000
--- a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/test/java/org/apache/skywalking/oap/server/receiver/trace/mock/ServiceBMock.java
+++ /dev/null
@@ -1,150 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-package org.apache.skywalking.oap.server.receiver.trace.mock;
-
-import com.google.protobuf.ByteString;
-import io.grpc.stub.StreamObserver;
-import org.apache.skywalking.apm.network.language.agent.*;
-import org.apache.skywalking.apm.network.trace.component.ComponentsDefine;
-
-/**
- * @author peng-yongsheng
- */
-class ServiceBMock {
-
- private final RegisterMock registerMock;
- private static int SERVICE_ID;
- static int SERVICE_INSTANCE_ID;
- static String DUBBO_PROVIDER_ENDPOINT = "org.skywaking.apm.testcase.dubbo.services.GreetServiceImpl.doBusiness()";
- static String ROCKET_MQ_ENDPOINT = "org.apache.skywalking.RocketMQ";
- static String ROCKET_MQ_ADDRESS = "RocketMQAddress:2000";
-
- ServiceBMock(RegisterMock registerMock) {
- this.registerMock = registerMock;
- }
-
- void register() throws InterruptedException {
- SERVICE_ID = registerMock.registerService("dubbox-provider");
- SERVICE_INSTANCE_ID = registerMock.registerServiceInstance(SERVICE_ID, "pengysB");
- }
-
- void mock(StreamObserver<UpstreamSegment> streamObserver, UniqueId.Builder traceId,
- UniqueId.Builder segmentId, UniqueId.Builder parentTraceSegmentId, long startTimestamp, boolean isPrepare) {
- UpstreamSegment.Builder upstreamSegment = UpstreamSegment.newBuilder();
- upstreamSegment.addGlobalTraceIds(traceId);
- upstreamSegment.setSegment(createSegment(startTimestamp, segmentId, parentTraceSegmentId, isPrepare));
-
- streamObserver.onNext(upstreamSegment.build());
- }
-
- private ByteString createSegment(long startTimestamp, UniqueId.Builder segmentId,
- UniqueId.Builder parentTraceSegmentId, boolean isPrepare) {
- TraceSegmentObject.Builder segment = TraceSegmentObject.newBuilder();
- segment.setTraceSegmentId(segmentId);
- segment.setApplicationId(SERVICE_ID);
- segment.setApplicationInstanceId(SERVICE_INSTANCE_ID);
- segment.addSpans(createEntrySpan(startTimestamp, parentTraceSegmentId, isPrepare));
- segment.addSpans(createExitSpan(startTimestamp, isPrepare));
- segment.addSpans(createMQExitSpan(startTimestamp, isPrepare));
-
- return segment.build().toByteString();
- }
-
- private TraceSegmentReference.Builder createReference(UniqueId.Builder parentTraceSegmentId, boolean isPrepare) {
- TraceSegmentReference.Builder reference = TraceSegmentReference.newBuilder();
- reference.setParentTraceSegmentId(parentTraceSegmentId);
- reference.setParentApplicationInstanceId(ServiceAMock.SERVICE_INSTANCE_ID);
- reference.setParentSpanId(2);
- reference.setEntryApplicationInstanceId(ServiceAMock.SERVICE_INSTANCE_ID);
- reference.setRefType(RefType.CrossProcess);
-
- if (isPrepare) {
- reference.setParentServiceName(ServiceAMock.REST_ENDPOINT);
- reference.setNetworkAddress(ServiceAMock.DUBBO_ADDRESS);
- reference.setEntryServiceName(ServiceAMock.REST_ENDPOINT);
- } else {
- reference.setParentServiceId(2);
- reference.setNetworkAddressId(2);
- reference.setEntryServiceId(2);
- }
- return reference;
- }
-
- private SpanObject.Builder createEntrySpan(long startTimestamp, UniqueId.Builder uniqueId, boolean isPrepare) {
- SpanObject.Builder span = SpanObject.newBuilder();
- span.setSpanId(0);
- span.setSpanType(SpanType.Entry);
- span.setSpanLayer(SpanLayer.RPCFramework);
- span.setParentSpanId(-1);
- span.setStartTime(startTimestamp + 500);
- span.setEndTime(startTimestamp + 5000);
- span.setComponentId(ComponentsDefine.DUBBO.getId());
- span.setIsError(false);
- span.addRefs(createReference(uniqueId, isPrepare));
-
- if (isPrepare) {
- span.setOperationName(ServiceBMock.DUBBO_PROVIDER_ENDPOINT);
- } else {
- span.setOperationNameId(4);
- }
- return span;
- }
-
- private SpanObject.Builder createExitSpan(long startTimestamp, boolean isPrepare) {
- SpanObject.Builder span = SpanObject.newBuilder();
- span.setSpanId(1);
- span.setSpanType(SpanType.Exit);
- span.setSpanLayer(SpanLayer.Database);
- span.setParentSpanId(0);
- span.setStartTime(startTimestamp + 550);
- span.setEndTime(startTimestamp + 1500);
- span.setComponentId(ComponentsDefine.MONGO_DRIVER.getId());
- span.setIsError(true);
- span.addTags(KeyWithStringValue.newBuilder().setKey("db.statement").setValue("select * from database where complex = 1;").build());
- span.addTags(KeyWithStringValue.newBuilder().setKey("db.type").setValue("mongodb").build());
-
- span.setOperationName("mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]");
- if (isPrepare) {
- span.setPeer("localhost:27017");
- } else {
- span.setPeerId(3);
- }
- return span;
- }
-
- private SpanObject.Builder createMQExitSpan(long startTimestamp, boolean isPrepare) {
- SpanObject.Builder span = SpanObject.newBuilder();
- span.setSpanId(2);
- span.setSpanType(SpanType.Exit);
- span.setSpanLayer(SpanLayer.MQ);
- span.setParentSpanId(1);
- span.setStartTime(startTimestamp + 1100);
- span.setEndTime(startTimestamp + 1500);
- span.setComponentId(ComponentsDefine.ROCKET_MQ_PRODUCER.getId());
- span.setIsError(false);
-
- span.setOperationName(ROCKET_MQ_ENDPOINT);
- if (isPrepare) {
- span.setPeer(ROCKET_MQ_ADDRESS);
- } else {
- span.setPeerId(4);
- }
- return span;
- }
-}
diff --git a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/test/java/org/apache/skywalking/oap/server/receiver/trace/mock/ServiceCMock.java b/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/test/java/org/apache/skywalking/oap/server/receiver/trace/mock/ServiceCMock.java
deleted file mode 100644
index b1f537e..0000000
--- a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/test/java/org/apache/skywalking/oap/server/receiver/trace/mock/ServiceCMock.java
+++ /dev/null
@@ -1,103 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-package org.apache.skywalking.oap.server.receiver.trace.mock;
-
-import com.google.protobuf.ByteString;
-import io.grpc.stub.StreamObserver;
-import org.apache.skywalking.apm.network.language.agent.*;
-import org.apache.skywalking.apm.network.trace.component.ComponentsDefine;
-
-/**
- * @author peng-yongsheng
- */
-class ServiceCMock {
-
- private final RegisterMock registerMock;
- private static int SERVICE_ID;
- private static int SERVICE_INSTANCE_ID;
-
- ServiceCMock(RegisterMock registerMock) {
- this.registerMock = registerMock;
- }
-
- void register() throws InterruptedException {
- SERVICE_ID = registerMock.registerService("rocket-mq-consumer");
- SERVICE_INSTANCE_ID = registerMock.registerServiceInstance(SERVICE_ID, "pengysC");
- }
-
- void mock(StreamObserver<UpstreamSegment> streamObserver, UniqueId.Builder traceId,
- UniqueId.Builder segmentId, UniqueId.Builder parentTraceSegmentId, long startTimestamp, boolean isPrepare) {
- UpstreamSegment.Builder upstreamSegment = UpstreamSegment.newBuilder();
- upstreamSegment.addGlobalTraceIds(traceId);
- upstreamSegment.setSegment(createSegment(startTimestamp, segmentId, parentTraceSegmentId, isPrepare));
-
- streamObserver.onNext(upstreamSegment.build());
- }
-
- private ByteString createSegment(long startTimestamp, UniqueId.Builder segmentId,
- UniqueId.Builder parentTraceSegmentId, boolean isPrepare) {
- TraceSegmentObject.Builder segment = TraceSegmentObject.newBuilder();
- segment.setTraceSegmentId(segmentId);
- segment.setApplicationInstanceId(SERVICE_INSTANCE_ID);
- segment.setApplicationId(SERVICE_ID);
- segment.addSpans(createEntrySpan(startTimestamp, parentTraceSegmentId, isPrepare));
-
- return segment.build().toByteString();
- }
-
- private SpanObject.Builder createEntrySpan(long startTimestamp, UniqueId.Builder uniqueId, boolean isPrepare) {
- SpanObject.Builder span = SpanObject.newBuilder();
- span.setSpanId(0);
- span.setSpanType(SpanType.Entry);
- span.setSpanLayer(SpanLayer.MQ);
- span.setParentSpanId(-1);
- span.setStartTime(startTimestamp + 3000);
- span.setEndTime(startTimestamp + 5000);
- span.setComponentId(ComponentsDefine.ROCKET_MQ_CONSUMER.getId());
- span.setIsError(false);
- span.addRefs(createReference(uniqueId, isPrepare));
-
- if (isPrepare) {
- span.setOperationName(ServiceBMock.ROCKET_MQ_ENDPOINT);
- } else {
- span.setOperationNameId(5);
- }
- return span;
- }
-
- private TraceSegmentReference.Builder createReference(UniqueId.Builder parentTraceSegmentId, boolean isPrepare) {
- TraceSegmentReference.Builder reference = TraceSegmentReference.newBuilder();
- reference.setParentTraceSegmentId(parentTraceSegmentId);
- reference.setParentApplicationInstanceId(ServiceBMock.SERVICE_INSTANCE_ID);
- reference.setParentSpanId(2);
- reference.setEntryApplicationInstanceId(ServiceAMock.SERVICE_INSTANCE_ID);
- reference.setRefType(RefType.CrossProcess);
-
- if (isPrepare) {
- reference.setParentServiceName(ServiceBMock.DUBBO_PROVIDER_ENDPOINT);
- reference.setNetworkAddress(ServiceBMock.ROCKET_MQ_ADDRESS);
- reference.setEntryServiceName(ServiceAMock.REST_ENDPOINT);
- } else {
- reference.setParentServiceId(8);
- reference.setNetworkAddressId(4);
- reference.setEntryServiceId(2);
- }
- return reference;
- }
-}
diff --git a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/test/java/org/apache/skywalking/oap/server/receiver/trace/mock/UniqueIdBuilder.java b/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/test/java/org/apache/skywalking/oap/server/receiver/trace/mock/UniqueIdBuilder.java
deleted file mode 100644
index e64adff..0000000
--- a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/test/java/org/apache/skywalking/oap/server/receiver/trace/mock/UniqueIdBuilder.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-package org.apache.skywalking.oap.server.receiver.trace.mock;
-
-import java.util.concurrent.atomic.AtomicLong;
-import org.apache.skywalking.apm.network.language.agent.UniqueId;
-
-/**
- * @author peng-yongsheng
- */
-public enum UniqueIdBuilder {
- INSTANCE;
-
- private AtomicLong idPart = new AtomicLong(1);
-
- UniqueId.Builder create() {
- UniqueId.Builder uniqueId = UniqueId.newBuilder();
- uniqueId.addIdParts(idPart.getAndIncrement());
- uniqueId.addIdParts(idPart.getAndIncrement());
- uniqueId.addIdParts(idPart.getAndIncrement());
- return uniqueId;
- }
-}
diff --git a/test/plugin/mock-collector/src/main/java/org/apache/skywalking/plugin/test/mockcollector/Main.java b/test/plugin/mock-collector/src/main/java/org/apache/skywalking/plugin/test/mockcollector/Main.java
index a49b547..d0b0234 100644
--- a/test/plugin/mock-collector/src/main/java/org/apache/skywalking/plugin/test/mockcollector/Main.java
+++ b/test/plugin/mock-collector/src/main/java/org/apache/skywalking/plugin/test/mockcollector/Main.java
@@ -39,13 +39,8 @@ public class Main {
.maxConcurrentCallsPerConnection(12).maxMessageSize(16777216)
.addService(new MockRegisterService())
.addService(new MockInstancePingService())
- .addService(new MockJVMMetricsService())
- .addService(new MockTraceSegmentV1Service())
- .addService(new MockApplicationRegisterService())
.addService(new MockInstanceDiscoveryService())
- .addService(new MockJVMMetricsV1Service())
.addService(new MockNetworkAddressRegisterService())
- .addService(new MockServiceNameDiscoveryService())
.addService(new MockTraceSegmentService())
.addService(new MockJVMMetricReportService())
.build().start();
diff --git a/test/plugin/mock-collector/src/main/java/org/apache/skywalking/plugin/test/mockcollector/service/MockApplicationRegisterService.java b/test/plugin/mock-collector/src/main/java/org/apache/skywalking/plugin/test/mockcollector/service/MockApplicationRegisterService.java
deleted file mode 100644
index 0c38117..0000000
--- a/test/plugin/mock-collector/src/main/java/org/apache/skywalking/plugin/test/mockcollector/service/MockApplicationRegisterService.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.skywalking.plugin.test.mockcollector.service;
-
-import io.grpc.stub.StreamObserver;
-
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
-import org.apache.skywalking.apm.network.language.agent.Application;
-import org.apache.skywalking.apm.network.language.agent.ApplicationMapping;
-import org.apache.skywalking.apm.network.language.agent.ApplicationRegisterServiceGrpc;
-import org.apache.skywalking.apm.network.language.agent.KeyWithIntegerValue;
-import org.apache.skywalking.plugin.test.mockcollector.entity.RegistryItem;
-import org.apache.skywalking.plugin.test.mockcollector.entity.ValidateData;
-
-/**
- * Created by xin on 2017/7/11.
- */
-public class MockApplicationRegisterService extends ApplicationRegisterServiceGrpc.ApplicationRegisterServiceImplBase {
- private Logger logger = LogManager.getLogger(MockTraceSegmentService.class);
-
- @Override
- public void applicationCodeRegister(Application request, StreamObserver<ApplicationMapping> responseObserver) {
- logger.debug("receive application register.");
- String applicationCode = request.getApplicationCode();
- ApplicationMapping.Builder builder = ApplicationMapping.newBuilder();
-
- if (applicationCode.startsWith("localhost") || applicationCode.startsWith("127.0.0.1") || applicationCode.contains(":") || applicationCode.contains("/")) {
- responseObserver.onNext(builder.build());
- responseObserver.onCompleted();
- return;
- }
-
- Integer applicationId = Sequences.SERVICE_MAPPING.get(applicationCode);
- if (applicationId == null) {
- applicationId = Sequences.ENDPOINT_SEQUENCE.incrementAndGet();
- Sequences.SERVICE_MAPPING.put(applicationCode, applicationId);
- ValidateData.INSTANCE.getRegistryItem().registryApplication(new RegistryItem.Application(applicationCode,
- applicationId));
- }
-
- builder.setApplication(KeyWithIntegerValue.newBuilder().setKey(applicationCode).setValue(applicationId));
- responseObserver.onNext(builder.build());
- responseObserver.onCompleted();
- }
-}
diff --git a/test/plugin/mock-collector/src/main/java/org/apache/skywalking/plugin/test/mockcollector/service/MockJVMMetricsService.java b/test/plugin/mock-collector/src/main/java/org/apache/skywalking/plugin/test/mockcollector/service/MockJVMMetricsService.java
deleted file mode 100644
index 7f46678..0000000
--- a/test/plugin/mock-collector/src/main/java/org/apache/skywalking/plugin/test/mockcollector/service/MockJVMMetricsService.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.skywalking.plugin.test.mockcollector.service;
-
-import io.grpc.stub.StreamObserver;
-import org.apache.skywalking.apm.network.language.agent.Downstream;
-import org.apache.skywalking.apm.network.language.agent.JVMMetrics;
-import org.apache.skywalking.apm.network.language.agent.JVMMetricsServiceGrpc;
-
-/**
- * Created by xin on 2017/7/11.
- */
-public class MockJVMMetricsService extends JVMMetricsServiceGrpc.JVMMetricsServiceImplBase {
- @Override
- public void collect(JVMMetrics request, StreamObserver<Downstream> responseObserver) {
- responseObserver.onNext(Downstream.getDefaultInstance());
- responseObserver.onCompleted();
- }
-}
diff --git a/test/plugin/mock-collector/src/main/java/org/apache/skywalking/plugin/test/mockcollector/service/MockJVMMetricsV1Service.java b/test/plugin/mock-collector/src/main/java/org/apache/skywalking/plugin/test/mockcollector/service/MockJVMMetricsV1Service.java
deleted file mode 100644
index a45345e..0000000
--- a/test/plugin/mock-collector/src/main/java/org/apache/skywalking/plugin/test/mockcollector/service/MockJVMMetricsV1Service.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.skywalking.plugin.test.mockcollector.service;
-
-import io.grpc.stub.StreamObserver;
-import org.apache.skywalking.apm.network.language.agent.Downstream;
-import org.apache.skywalking.apm.network.language.agent.JVMMetrics;
-import org.apache.skywalking.apm.network.language.agent.JVMMetricsServiceGrpc;
-
-/**
- * Created by xin on 2017/7/11.
- */
-public class MockJVMMetricsV1Service extends JVMMetricsServiceGrpc.JVMMetricsServiceImplBase {
-
- @Override
- public void collect(JVMMetrics request, StreamObserver<Downstream> responseObserver) {
- responseObserver.onNext(Downstream.getDefaultInstance());
- responseObserver.onCompleted();
- }
-}
diff --git a/test/plugin/mock-collector/src/main/java/org/apache/skywalking/plugin/test/mockcollector/service/MockServiceNameDiscoveryService.java b/test/plugin/mock-collector/src/main/java/org/apache/skywalking/plugin/test/mockcollector/service/MockServiceNameDiscoveryService.java
deleted file mode 100644
index 52dce63..0000000
--- a/test/plugin/mock-collector/src/main/java/org/apache/skywalking/plugin/test/mockcollector/service/MockServiceNameDiscoveryService.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.skywalking.plugin.test.mockcollector.service;
-
-import io.grpc.stub.StreamObserver;
-import org.apache.skywalking.apm.network.language.agent.ServiceNameCollection;
-import org.apache.skywalking.apm.network.language.agent.ServiceNameDiscoveryServiceGrpc;
-import org.apache.skywalking.apm.network.language.agent.ServiceNameElement;
-import org.apache.skywalking.apm.network.language.agent.ServiceNameMappingCollection;
-import org.apache.skywalking.plugin.test.mockcollector.entity.RegistryItem;
-import org.apache.skywalking.plugin.test.mockcollector.entity.ValidateData;
-
-public class MockServiceNameDiscoveryService extends ServiceNameDiscoveryServiceGrpc.ServiceNameDiscoveryServiceImplBase {
-
- @Override
- public void discovery(ServiceNameCollection request,
- StreamObserver<ServiceNameMappingCollection> responseObserver) {
- for (ServiceNameElement element : request.getElementsList()) {
- ValidateData.INSTANCE.getRegistryItem().registryOperationName(new RegistryItem.OperationName(element.getApplicationId(),
- element.getServiceName()));
- }
- responseObserver.onNext(ServiceNameMappingCollection.getDefaultInstance());
- responseObserver.onCompleted();
- }
-}
diff --git a/test/plugin/mock-collector/src/main/java/org/apache/skywalking/plugin/test/mockcollector/service/MockTraceSegmentV1Service.java b/test/plugin/mock-collector/src/main/java/org/apache/skywalking/plugin/test/mockcollector/service/MockTraceSegmentV1Service.java
deleted file mode 100644
index 659c3b7..0000000
--- a/test/plugin/mock-collector/src/main/java/org/apache/skywalking/plugin/test/mockcollector/service/MockTraceSegmentV1Service.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.skywalking.plugin.test.mockcollector.service;
-
-import com.google.protobuf.InvalidProtocolBufferException;
-import io.grpc.stub.StreamObserver;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
-import org.apache.skywalking.apm.network.language.agent.*;
-import org.apache.skywalking.plugin.test.mockcollector.entity.Segment;
-import org.apache.skywalking.plugin.test.mockcollector.entity.ValidateData;
-import org.apache.skywalking.plugin.test.mockcollector.entity.Span;
-
-public class MockTraceSegmentV1Service extends TraceSegmentServiceGrpc.TraceSegmentServiceImplBase {
-
- private Logger logger = LogManager.getLogger(MockTraceSegmentService.class);
-
- @Override
- public StreamObserver<UpstreamSegment> collect(final StreamObserver<Downstream> responseObserver) {
- return new StreamObserver<UpstreamSegment>() {
- @Override public void onNext(UpstreamSegment value) {
- try {
- TraceSegmentObject traceSegmentObject = TraceSegmentObject.parseFrom(value.getSegment());
- Segment.SegmentBuilder segmentBuilder = Segment.builder().segmentId(traceSegmentObject.getTraceSegmentId());
- logger.debug("Receive segment: Application[{}], TraceSegmentId[{}]",
- traceSegmentObject.getApplicationId(),
- traceSegmentObject.getTraceSegmentId());
-
- for (SpanObject spanObject : traceSegmentObject.getSpansList()) {
- Span.SpanBuilder spanBuilder = Span.builder().operationName(spanObject.getOperationName()).parentSpanId(spanObject.getParentSpanId())
- .spanId(spanObject.getSpanId()).componentId(spanObject.getComponentId()).componentName(spanObject.getComponent())
- .spanLayer(spanObject.getSpanLayer().toString()).endTime(spanObject.getEndTime())
- .startTime(spanObject.getStartTime()).spanType(spanObject.getSpanType().toString())
- .peer(spanObject.getPeer()).peerId(spanObject.getPeerId()).operationId(spanObject.getOperationNameId());
-
- for (LogMessage logMessage : spanObject.getLogsList()) {
- spanBuilder.logEventV1(logMessage.getDataList());
- }
-
- for (KeyWithStringValue tags : spanObject.getTagsList()) {
- spanBuilder.tags(tags.getKey(), tags.getValue());
- }
-
- for (TraceSegmentReference ref : spanObject.getRefsList()) {
- spanBuilder.ref(new Span.SegmentRef(ref));
- }
-
- segmentBuilder.addSpan(spanBuilder);
- }
-
- ValidateData.INSTANCE.getSegmentItem().addSegmentItem(traceSegmentObject.getApplicationId(), segmentBuilder.build());
- } catch (InvalidProtocolBufferException e) {
- e.printStackTrace();
- }
- }
-
- @Override public void onError(Throwable t) {
-
- }
-
- @Override public void onCompleted() {
- responseObserver.onNext(Downstream.getDefaultInstance());
- responseObserver.onCompleted();
- }
- };
- }
-}