diff --git a/apm-collector/apm-collector-agent/agent-grpc/agent-grpc-define/pom.xml b/apm-collector/apm-collector-agent/agent-grpc/agent-grpc-define/pom.xml index cc1cc4269b0a0a2478d642f301120a29a9599962..6f3835bfc119eb40c9c84f83da3f49d949784a2b 100644 --- a/apm-collector/apm-collector-agent/agent-grpc/agent-grpc-define/pom.xml +++ b/apm-collector/apm-collector-agent/agent-grpc/agent-grpc-define/pom.xml @@ -28,6 +28,5 @@ 4.0.0 agent-grpc-define - - + jar \ No newline at end of file diff --git a/apm-collector/apm-collector-agent/agent-grpc/agent-grpc-provider/pom.xml b/apm-collector/apm-collector-agent/agent-grpc/agent-grpc-provider/pom.xml index 111390e65bad147c5d1ee5fbca43fe999e9507f1..a4fe82e07aea2b7f7850254e54cd0ae037370c6c 100644 --- a/apm-collector/apm-collector-agent/agent-grpc/agent-grpc-provider/pom.xml +++ b/apm-collector/apm-collector-agent/agent-grpc/agent-grpc-provider/pom.xml @@ -50,5 +50,10 @@ collector-grpc-manager-define ${project.version} + + org.apache.skywalking + segment-parser-define + ${project.version} + \ No newline at end of file diff --git a/apm-collector/apm-collector-agent/agent-grpc/agent-grpc-provider/src/main/java/org/apache/skywalking/apm/collector/agent/grpc/provider/AgentModuleGRPCProvider.java b/apm-collector/apm-collector-agent/agent-grpc/agent-grpc-provider/src/main/java/org/apache/skywalking/apm/collector/agent/grpc/provider/AgentModuleGRPCProvider.java index d349b3ef616ecec6145e67288875b5cfeb27d7d7..e76c9d61029b5074374a012ee4a557cff6815fa5 100644 --- a/apm-collector/apm-collector-agent/agent-grpc/agent-grpc-provider/src/main/java/org/apache/skywalking/apm/collector/agent/grpc/provider/AgentModuleGRPCProvider.java +++ b/apm-collector/apm-collector-agent/agent-grpc/agent-grpc-provider/src/main/java/org/apache/skywalking/apm/collector/agent/grpc/provider/AgentModuleGRPCProvider.java @@ -27,6 +27,7 @@ import org.apache.skywalking.apm.collector.agent.grpc.provider.handler.ServiceNa import org.apache.skywalking.apm.collector.agent.grpc.provider.handler.TraceSegmentServiceHandler; import org.apache.skywalking.apm.collector.agent.grpc.provider.handler.naming.AgentGRPCNamingHandler; import org.apache.skywalking.apm.collector.agent.grpc.provider.handler.naming.AgentGRPCNamingListener; +import org.apache.skywalking.apm.collector.analysis.segment.parser.define.AnalysisSegmentParserModule; import org.apache.skywalking.apm.collector.cluster.ClusterModule; import org.apache.skywalking.apm.collector.cluster.service.ModuleListenerService; import org.apache.skywalking.apm.collector.cluster.service.ModuleRegisterService; @@ -85,7 +86,7 @@ public class AgentModuleGRPCProvider extends ModuleProvider { } @Override public String[] requiredModules() { - return new String[] {ClusterModule.NAME, NamingModule.NAME, GRPCManagerModule.NAME}; + return new String[] {ClusterModule.NAME, NamingModule.NAME, GRPCManagerModule.NAME, AnalysisSegmentParserModule.NAME}; } private void addHandlers(Server gRPCServer) { diff --git a/apm-collector/apm-collector-agent/agent-grpc/agent-grpc-provider/src/main/java/org/apache/skywalking/apm/collector/agent/grpc/provider/handler/TraceSegmentServiceHandler.java b/apm-collector/apm-collector-agent/agent-grpc/agent-grpc-provider/src/main/java/org/apache/skywalking/apm/collector/agent/grpc/provider/handler/TraceSegmentServiceHandler.java index 52bead8c8c18a1ad802152c6df20ee25f69f4b95..809bd65abfc6c62d418522a6c88b01a9bcf14fe9 100644 --- a/apm-collector/apm-collector-agent/agent-grpc/agent-grpc-provider/src/main/java/org/apache/skywalking/apm/collector/agent/grpc/provider/handler/TraceSegmentServiceHandler.java +++ b/apm-collector/apm-collector-agent/agent-grpc/agent-grpc-provider/src/main/java/org/apache/skywalking/apm/collector/agent/grpc/provider/handler/TraceSegmentServiceHandler.java @@ -16,12 +16,11 @@ * */ - package org.apache.skywalking.apm.collector.agent.grpc.provider.handler; import io.grpc.stub.StreamObserver; -import org.apache.skywalking.apm.collector.agent.stream.AgentStreamModule; -import org.apache.skywalking.apm.collector.agent.stream.service.trace.ITraceSegmentService; +import org.apache.skywalking.apm.collector.analysis.segment.parser.define.AnalysisSegmentParserModule; +import org.apache.skywalking.apm.collector.analysis.segment.parser.define.service.ISegmentParseService; import org.apache.skywalking.apm.collector.core.module.ModuleManager; import org.apache.skywalking.apm.collector.server.grpc.GRPCHandler; import org.apache.skywalking.apm.network.proto.Downstream; @@ -37,17 +36,17 @@ public class TraceSegmentServiceHandler extends TraceSegmentServiceGrpc.TraceSeg private final Logger logger = LoggerFactory.getLogger(TraceSegmentServiceHandler.class); - private final ITraceSegmentService traceSegmentService; + private final ISegmentParseService segmentParseService; public TraceSegmentServiceHandler(ModuleManager moduleManager) { - this.traceSegmentService = moduleManager.find(AgentStreamModule.NAME).getService(ITraceSegmentService.class); + this.segmentParseService = moduleManager.find(AnalysisSegmentParserModule.NAME).getService(ISegmentParseService.class); } @Override public StreamObserver collect(StreamObserver responseObserver) { return new StreamObserver() { @Override public void onNext(UpstreamSegment segment) { logger.debug("receive segment"); - traceSegmentService.send(segment); + segmentParseService.parse(segment, ISegmentParseService.Source.Agent); } @Override public void onError(Throwable throwable) { diff --git a/apm-collector/apm-collector-analysis/analysis-segment-parser/pom.xml b/apm-collector/apm-collector-analysis/analysis-segment-parser/pom.xml new file mode 100644 index 0000000000000000000000000000000000000000..e37496181fbd4502eab2fb299f68679fb073dca3 --- /dev/null +++ b/apm-collector/apm-collector-analysis/analysis-segment-parser/pom.xml @@ -0,0 +1,36 @@ + + + + + + apm-collector-analysis + org.apache.skywalking + 5.0.0-alpha + + 4.0.0 + + analysis-segment-parser + pom + + segment-parser-define + segment-parser-provider + + \ No newline at end of file diff --git a/apm-collector/apm-collector-analysis/analysis-segment-parser/segment-parser-define/pom.xml b/apm-collector/apm-collector-analysis/analysis-segment-parser/segment-parser-define/pom.xml new file mode 100644 index 0000000000000000000000000000000000000000..b11ad2445987b2da3295288c1073e100e4289af8 --- /dev/null +++ b/apm-collector/apm-collector-analysis/analysis-segment-parser/segment-parser-define/pom.xml @@ -0,0 +1,40 @@ + + + + + + analysis-segment-parser + org.apache.skywalking + 5.0.0-alpha + + 4.0.0 + + segment-parser-define + jar + + + + org.apache.skywalking + apm-network + ${project.version} + + + \ No newline at end of file diff --git a/apm-collector/apm-collector-analysis/analysis-segment-parser/segment-parser-define/src/main/java/org/apache/skywalking/apm/collector/analysis/segment/parser/define/AnalysisSegmentParserModule.java b/apm-collector/apm-collector-analysis/analysis-segment-parser/segment-parser-define/src/main/java/org/apache/skywalking/apm/collector/analysis/segment/parser/define/AnalysisSegmentParserModule.java new file mode 100644 index 0000000000000000000000000000000000000000..003ada677e9deb2eb1d5953679d73943d43e3889 --- /dev/null +++ b/apm-collector/apm-collector-analysis/analysis-segment-parser/segment-parser-define/src/main/java/org/apache/skywalking/apm/collector/analysis/segment/parser/define/AnalysisSegmentParserModule.java @@ -0,0 +1,39 @@ +/* + * 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.collector.analysis.segment.parser.define; + +import org.apache.skywalking.apm.collector.analysis.segment.parser.define.service.ISegmentParseService; +import org.apache.skywalking.apm.collector.analysis.segment.parser.define.service.ISegmentParserListenerRegister; +import org.apache.skywalking.apm.collector.core.module.Module; + +/** + * @author peng-yongsheng + */ +public class AnalysisSegmentParserModule extends Module { + + public static final String NAME = "analysis_segment_parser"; + + @Override public String name() { + return NAME; + } + + @Override public Class[] services() { + return new Class[] {ISegmentParseService.class, ISegmentParserListenerRegister.class}; + } +} diff --git a/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/apache/skywalking/apm/collector/agent/stream/parser/standardization/ReferenceDecorator.java b/apm-collector/apm-collector-analysis/analysis-segment-parser/segment-parser-define/src/main/java/org/apache/skywalking/apm/collector/analysis/segment/parser/define/decorator/ReferenceDecorator.java similarity index 98% rename from apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/apache/skywalking/apm/collector/agent/stream/parser/standardization/ReferenceDecorator.java rename to apm-collector/apm-collector-analysis/analysis-segment-parser/segment-parser-define/src/main/java/org/apache/skywalking/apm/collector/analysis/segment/parser/define/decorator/ReferenceDecorator.java index f1abfa51e5fe069a1e9f9f62a00f5b3041ab9c3f..1c005c796a8e86aabe72c0c93d5fcee4edaa5863 100644 --- a/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/apache/skywalking/apm/collector/agent/stream/parser/standardization/ReferenceDecorator.java +++ b/apm-collector/apm-collector-analysis/analysis-segment-parser/segment-parser-define/src/main/java/org/apache/skywalking/apm/collector/analysis/segment/parser/define/decorator/ReferenceDecorator.java @@ -17,7 +17,7 @@ */ -package org.apache.skywalking.apm.collector.agent.stream.parser.standardization; +package org.apache.skywalking.apm.collector.analysis.segment.parser.define.decorator; import org.apache.skywalking.apm.network.proto.RefType; import org.apache.skywalking.apm.network.proto.TraceSegmentReference; diff --git a/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/apache/skywalking/apm/collector/agent/stream/parser/standardization/SegmentDecorator.java b/apm-collector/apm-collector-analysis/analysis-segment-parser/segment-parser-define/src/main/java/org/apache/skywalking/apm/collector/analysis/segment/parser/define/decorator/SegmentDecorator.java similarity index 96% rename from apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/apache/skywalking/apm/collector/agent/stream/parser/standardization/SegmentDecorator.java rename to apm-collector/apm-collector-analysis/analysis-segment-parser/segment-parser-define/src/main/java/org/apache/skywalking/apm/collector/analysis/segment/parser/define/decorator/SegmentDecorator.java index 71b8cf57d840e14a001dd239a7cc52347b3ae2b2..b7a0586b5c5ffeedc5905b7e962a95fe29e9d344 100644 --- a/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/apache/skywalking/apm/collector/agent/stream/parser/standardization/SegmentDecorator.java +++ b/apm-collector/apm-collector-analysis/analysis-segment-parser/segment-parser-define/src/main/java/org/apache/skywalking/apm/collector/analysis/segment/parser/define/decorator/SegmentDecorator.java @@ -17,7 +17,7 @@ */ -package org.apache.skywalking.apm.collector.agent.stream.parser.standardization; +package org.apache.skywalking.apm.collector.analysis.segment.parser.define.decorator; import org.apache.skywalking.apm.network.proto.TraceSegmentObject; import org.apache.skywalking.apm.network.proto.UniqueId; diff --git a/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/apache/skywalking/apm/collector/agent/stream/parser/standardization/SpanDecorator.java b/apm-collector/apm-collector-analysis/analysis-segment-parser/segment-parser-define/src/main/java/org/apache/skywalking/apm/collector/analysis/segment/parser/define/decorator/SpanDecorator.java similarity index 98% rename from apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/apache/skywalking/apm/collector/agent/stream/parser/standardization/SpanDecorator.java rename to apm-collector/apm-collector-analysis/analysis-segment-parser/segment-parser-define/src/main/java/org/apache/skywalking/apm/collector/analysis/segment/parser/define/decorator/SpanDecorator.java index e106032903166a69985d38e6484ab5ff672870cd..ce1f69d02aa4b16a997e5737a619d9360e50612e 100644 --- a/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/apache/skywalking/apm/collector/agent/stream/parser/standardization/SpanDecorator.java +++ b/apm-collector/apm-collector-analysis/analysis-segment-parser/segment-parser-define/src/main/java/org/apache/skywalking/apm/collector/analysis/segment/parser/define/decorator/SpanDecorator.java @@ -17,7 +17,7 @@ */ -package org.apache.skywalking.apm.collector.agent.stream.parser.standardization; +package org.apache.skywalking.apm.collector.analysis.segment.parser.define.decorator; import org.apache.skywalking.apm.network.proto.SpanLayer; import org.apache.skywalking.apm.network.proto.SpanObject; diff --git a/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/apache/skywalking/apm/collector/agent/stream/parser/standardization/StandardBuilder.java b/apm-collector/apm-collector-analysis/analysis-segment-parser/segment-parser-define/src/main/java/org/apache/skywalking/apm/collector/analysis/segment/parser/define/decorator/StandardBuilder.java similarity index 91% rename from apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/apache/skywalking/apm/collector/agent/stream/parser/standardization/StandardBuilder.java rename to apm-collector/apm-collector-analysis/analysis-segment-parser/segment-parser-define/src/main/java/org/apache/skywalking/apm/collector/analysis/segment/parser/define/decorator/StandardBuilder.java index 4746c943d68995307f99b1bb9400c2cf63cb3b83..11ccda5d159ba660af8bc5f723511e062978c81e 100644 --- a/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/apache/skywalking/apm/collector/agent/stream/parser/standardization/StandardBuilder.java +++ b/apm-collector/apm-collector-analysis/analysis-segment-parser/segment-parser-define/src/main/java/org/apache/skywalking/apm/collector/analysis/segment/parser/define/decorator/StandardBuilder.java @@ -17,7 +17,7 @@ */ -package org.apache.skywalking.apm.collector.agent.stream.parser.standardization; +package org.apache.skywalking.apm.collector.analysis.segment.parser.define.decorator; /** * @author peng-yongsheng diff --git a/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/apache/skywalking/apm/collector/agent/stream/parser/EntrySpanListener.java b/apm-collector/apm-collector-analysis/analysis-segment-parser/segment-parser-define/src/main/java/org/apache/skywalking/apm/collector/analysis/segment/parser/define/listener/EntrySpanListener.java similarity index 84% rename from apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/apache/skywalking/apm/collector/agent/stream/parser/EntrySpanListener.java rename to apm-collector/apm-collector-analysis/analysis-segment-parser/segment-parser-define/src/main/java/org/apache/skywalking/apm/collector/analysis/segment/parser/define/listener/EntrySpanListener.java index b945743d438cf435dc99b854ca0f56a2ef23e370..4e23f44dd9736bb60529d7f5deb01c170c031524 100644 --- a/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/apache/skywalking/apm/collector/agent/stream/parser/EntrySpanListener.java +++ b/apm-collector/apm-collector-analysis/analysis-segment-parser/segment-parser-define/src/main/java/org/apache/skywalking/apm/collector/analysis/segment/parser/define/listener/EntrySpanListener.java @@ -16,14 +16,13 @@ * */ +package org.apache.skywalking.apm.collector.analysis.segment.parser.define.listener; -package org.apache.skywalking.apm.collector.agent.stream.parser; - -import org.apache.skywalking.apm.collector.agent.stream.parser.standardization.SpanDecorator; +import org.apache.skywalking.apm.collector.analysis.segment.parser.define.decorator.SpanDecorator; /** * @author peng-yongsheng */ public interface EntrySpanListener extends SpanListener { void parseEntry(SpanDecorator spanDecorator, int applicationId, int instanceId, String segmentId); -} +} \ No newline at end of file diff --git a/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/apache/skywalking/apm/collector/agent/stream/parser/ExitSpanListener.java b/apm-collector/apm-collector-analysis/analysis-segment-parser/segment-parser-define/src/main/java/org/apache/skywalking/apm/collector/analysis/segment/parser/define/listener/ExitSpanListener.java similarity index 84% rename from apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/apache/skywalking/apm/collector/agent/stream/parser/ExitSpanListener.java rename to apm-collector/apm-collector-analysis/analysis-segment-parser/segment-parser-define/src/main/java/org/apache/skywalking/apm/collector/analysis/segment/parser/define/listener/ExitSpanListener.java index efec50cb1bf467cbf3a869c0d6e90af1bb5a93e5..5f468db668e4ef75cd2af9fc2ede425180ad8448 100644 --- a/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/apache/skywalking/apm/collector/agent/stream/parser/ExitSpanListener.java +++ b/apm-collector/apm-collector-analysis/analysis-segment-parser/segment-parser-define/src/main/java/org/apache/skywalking/apm/collector/analysis/segment/parser/define/listener/ExitSpanListener.java @@ -16,10 +16,9 @@ * */ +package org.apache.skywalking.apm.collector.analysis.segment.parser.define.listener; -package org.apache.skywalking.apm.collector.agent.stream.parser; - -import org.apache.skywalking.apm.collector.agent.stream.parser.standardization.SpanDecorator; +import org.apache.skywalking.apm.collector.analysis.segment.parser.define.decorator.SpanDecorator; /** * @author peng-yongsheng diff --git a/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/apache/skywalking/apm/collector/agent/stream/parser/FirstSpanListener.java b/apm-collector/apm-collector-analysis/analysis-segment-parser/segment-parser-define/src/main/java/org/apache/skywalking/apm/collector/analysis/segment/parser/define/listener/FirstSpanListener.java similarity index 84% rename from apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/apache/skywalking/apm/collector/agent/stream/parser/FirstSpanListener.java rename to apm-collector/apm-collector-analysis/analysis-segment-parser/segment-parser-define/src/main/java/org/apache/skywalking/apm/collector/analysis/segment/parser/define/listener/FirstSpanListener.java index 57f6457ec5162188b18b5b6d83ba4262fd0a07de..c56a6cb5d2daf8aa8b8965ca9927966f92b2bcd6 100644 --- a/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/apache/skywalking/apm/collector/agent/stream/parser/FirstSpanListener.java +++ b/apm-collector/apm-collector-analysis/analysis-segment-parser/segment-parser-define/src/main/java/org/apache/skywalking/apm/collector/analysis/segment/parser/define/listener/FirstSpanListener.java @@ -16,10 +16,9 @@ * */ +package org.apache.skywalking.apm.collector.analysis.segment.parser.define.listener; -package org.apache.skywalking.apm.collector.agent.stream.parser; - -import org.apache.skywalking.apm.collector.agent.stream.parser.standardization.SpanDecorator; +import org.apache.skywalking.apm.collector.analysis.segment.parser.define.decorator.SpanDecorator; /** * @author peng-yongsheng diff --git a/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/apache/skywalking/apm/collector/agent/stream/parser/GlobalTraceIdsListener.java b/apm-collector/apm-collector-analysis/analysis-segment-parser/segment-parser-define/src/main/java/org/apache/skywalking/apm/collector/analysis/segment/parser/define/listener/GlobalTraceIdsListener.java similarity index 92% rename from apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/apache/skywalking/apm/collector/agent/stream/parser/GlobalTraceIdsListener.java rename to apm-collector/apm-collector-analysis/analysis-segment-parser/segment-parser-define/src/main/java/org/apache/skywalking/apm/collector/analysis/segment/parser/define/listener/GlobalTraceIdsListener.java index b7e088dccbeadd3eb87214a0ffd21639cf4a08da..ee70b86189ae8144ecc52ce683fafed41215c8c7 100644 --- a/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/apache/skywalking/apm/collector/agent/stream/parser/GlobalTraceIdsListener.java +++ b/apm-collector/apm-collector-analysis/analysis-segment-parser/segment-parser-define/src/main/java/org/apache/skywalking/apm/collector/analysis/segment/parser/define/listener/GlobalTraceIdsListener.java @@ -16,8 +16,7 @@ * */ - -package org.apache.skywalking.apm.collector.agent.stream.parser; +package org.apache.skywalking.apm.collector.analysis.segment.parser.define.listener; import org.apache.skywalking.apm.network.proto.UniqueId; diff --git a/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/apache/skywalking/apm/collector/agent/stream/parser/LocalSpanListener.java b/apm-collector/apm-collector-analysis/analysis-segment-parser/segment-parser-define/src/main/java/org/apache/skywalking/apm/collector/analysis/segment/parser/define/listener/LocalSpanListener.java similarity index 84% rename from apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/apache/skywalking/apm/collector/agent/stream/parser/LocalSpanListener.java rename to apm-collector/apm-collector-analysis/analysis-segment-parser/segment-parser-define/src/main/java/org/apache/skywalking/apm/collector/analysis/segment/parser/define/listener/LocalSpanListener.java index 9c7cdbbd951602c48a2b04108b614305a8e45dce..6eceae55b3b6cfa351dd338f20324bcd68ed2600 100644 --- a/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/apache/skywalking/apm/collector/agent/stream/parser/LocalSpanListener.java +++ b/apm-collector/apm-collector-analysis/analysis-segment-parser/segment-parser-define/src/main/java/org/apache/skywalking/apm/collector/analysis/segment/parser/define/listener/LocalSpanListener.java @@ -16,10 +16,9 @@ * */ +package org.apache.skywalking.apm.collector.analysis.segment.parser.define.listener; -package org.apache.skywalking.apm.collector.agent.stream.parser; - -import org.apache.skywalking.apm.collector.agent.stream.parser.standardization.SpanDecorator; +import org.apache.skywalking.apm.collector.analysis.segment.parser.define.decorator.SpanDecorator; /** * @author peng-yongsheng diff --git a/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/apache/skywalking/apm/collector/agent/stream/parser/SpanListener.java b/apm-collector/apm-collector-analysis/analysis-segment-parser/segment-parser-define/src/main/java/org/apache/skywalking/apm/collector/analysis/segment/parser/define/listener/SpanListener.java similarity index 91% rename from apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/apache/skywalking/apm/collector/agent/stream/parser/SpanListener.java rename to apm-collector/apm-collector-analysis/analysis-segment-parser/segment-parser-define/src/main/java/org/apache/skywalking/apm/collector/analysis/segment/parser/define/listener/SpanListener.java index 9e52d0ac0e76072dbec2ce153696055fde80274c..3fd744ed139801416c0244e872dfd3e382f8368e 100644 --- a/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/apache/skywalking/apm/collector/agent/stream/parser/SpanListener.java +++ b/apm-collector/apm-collector-analysis/analysis-segment-parser/segment-parser-define/src/main/java/org/apache/skywalking/apm/collector/analysis/segment/parser/define/listener/SpanListener.java @@ -16,8 +16,7 @@ * */ - -package org.apache.skywalking.apm.collector.agent.stream.parser; +package org.apache.skywalking.apm.collector.analysis.segment.parser.define.listener; /** * @author peng-yongsheng diff --git a/apm-collector/apm-collector-analysis/analysis-segment-parser/segment-parser-define/src/main/java/org/apache/skywalking/apm/collector/analysis/segment/parser/define/service/ISegmentParseService.java b/apm-collector/apm-collector-analysis/analysis-segment-parser/segment-parser-define/src/main/java/org/apache/skywalking/apm/collector/analysis/segment/parser/define/service/ISegmentParseService.java new file mode 100644 index 0000000000000000000000000000000000000000..2547cc64a17bafda3028590e52d9de4aaad68ca6 --- /dev/null +++ b/apm-collector/apm-collector-analysis/analysis-segment-parser/segment-parser-define/src/main/java/org/apache/skywalking/apm/collector/analysis/segment/parser/define/service/ISegmentParseService.java @@ -0,0 +1,33 @@ +/* + * 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.collector.analysis.segment.parser.define.service; + +import org.apache.skywalking.apm.collector.core.module.Service; +import org.apache.skywalking.apm.network.proto.UpstreamSegment; + +/** + * @author peng-yongsheng + */ +public interface ISegmentParseService extends Service { + void parse(UpstreamSegment segment, Source source); + + enum Source { + Agent, Buffer + } +} diff --git a/apm-collector/apm-collector-analysis/analysis-segment-parser/segment-parser-define/src/main/java/org/apache/skywalking/apm/collector/analysis/segment/parser/define/service/ISegmentParserListenerRegister.java b/apm-collector/apm-collector-analysis/analysis-segment-parser/segment-parser-define/src/main/java/org/apache/skywalking/apm/collector/analysis/segment/parser/define/service/ISegmentParserListenerRegister.java new file mode 100644 index 0000000000000000000000000000000000000000..b1a6ce9b3f94a3ee1cba4da8eb379e07f27c12cd --- /dev/null +++ b/apm-collector/apm-collector-analysis/analysis-segment-parser/segment-parser-define/src/main/java/org/apache/skywalking/apm/collector/analysis/segment/parser/define/service/ISegmentParserListenerRegister.java @@ -0,0 +1,29 @@ +/* + * 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.collector.analysis.segment.parser.define.service; + +import org.apache.skywalking.apm.collector.analysis.segment.parser.define.listener.SpanListener; +import org.apache.skywalking.apm.collector.core.module.Service; + +/** + * @author peng-yongsheng + */ +public interface ISegmentParserListenerRegister extends Service { + void register(SpanListener spanListener); +} diff --git a/apm-collector/apm-collector-analysis/analysis-segment-parser/segment-parser-define/src/main/resources/META-INF/services/org.apache.skywalking.apm.collector.core.module.Module b/apm-collector/apm-collector-analysis/analysis-segment-parser/segment-parser-define/src/main/resources/META-INF/services/org.apache.skywalking.apm.collector.core.module.Module new file mode 100644 index 0000000000000000000000000000000000000000..8fb3ff2097d6a59b9c7e82f76728ff10706ea44b --- /dev/null +++ b/apm-collector/apm-collector-analysis/analysis-segment-parser/segment-parser-define/src/main/resources/META-INF/services/org.apache.skywalking.apm.collector.core.module.Module @@ -0,0 +1,19 @@ +# +# 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. +# +# + +org.apache.skywalking.apm.collector.analysis.segment.parser.define.AnalysisSegmentParserModule \ No newline at end of file diff --git a/apm-collector/apm-collector-analysis/analysis-segment-parser/segment-parser-provider/pom.xml b/apm-collector/apm-collector-analysis/analysis-segment-parser/segment-parser-provider/pom.xml new file mode 100644 index 0000000000000000000000000000000000000000..e987c1abf3ae60286f94fa625484014637841142 --- /dev/null +++ b/apm-collector/apm-collector-analysis/analysis-segment-parser/segment-parser-provider/pom.xml @@ -0,0 +1,40 @@ + + + + + + analysis-segment-parser + org.apache.skywalking + 5.0.0-alpha + + 4.0.0 + + segment-parser-provider + jar + + + + org.apache.skywalking + segment-parser-define + ${project.version} + + + \ No newline at end of file diff --git a/apm-collector/apm-collector-analysis/analysis-segment-parser/segment-parser-provider/src/main/java/org/apache/skywalking/apm/collector/analysis/segment/parser/provider/AnalysisTraceParseModuleProvider.java b/apm-collector/apm-collector-analysis/analysis-segment-parser/segment-parser-provider/src/main/java/org/apache/skywalking/apm/collector/analysis/segment/parser/provider/AnalysisTraceParseModuleProvider.java new file mode 100644 index 0000000000000000000000000000000000000000..f47ca2179fa7aa2e34a9492977f1ec82b62c0d58 --- /dev/null +++ b/apm-collector/apm-collector-analysis/analysis-segment-parser/segment-parser-provider/src/main/java/org/apache/skywalking/apm/collector/analysis/segment/parser/provider/AnalysisTraceParseModuleProvider.java @@ -0,0 +1,65 @@ +/* + * 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.collector.analysis.segment.parser.provider; + +import java.util.Properties; +import org.apache.skywalking.apm.collector.analysis.segment.parser.define.AnalysisSegmentParserModule; +import org.apache.skywalking.apm.collector.analysis.segment.parser.define.service.ISegmentParseService; +import org.apache.skywalking.apm.collector.analysis.segment.parser.define.service.ISegmentParserListenerRegister; +import org.apache.skywalking.apm.collector.analysis.segment.parser.provider.parser.SegmentParserListenerManager; +import org.apache.skywalking.apm.collector.analysis.segment.parser.provider.service.SegmentParseService; +import org.apache.skywalking.apm.collector.analysis.segment.parser.provider.service.SegmentParserListenerRegister; +import org.apache.skywalking.apm.collector.core.module.Module; +import org.apache.skywalking.apm.collector.core.module.ModuleProvider; +import org.apache.skywalking.apm.collector.core.module.ServiceNotProvidedException; + +/** + * @author peng-yongsheng + */ +public class AnalysisTraceParseModuleProvider extends ModuleProvider { + + public static final String NAME = "default"; + private SegmentParserListenerManager listenerManager; + + @Override public String name() { + return NAME; + } + + @Override public Class module() { + return AnalysisSegmentParserModule.class; + } + + @Override public void prepare(Properties config) throws ServiceNotProvidedException { + this.listenerManager = new SegmentParserListenerManager(); + this.registerServiceImplementation(ISegmentParserListenerRegister.class, new SegmentParserListenerRegister(listenerManager)); + this.registerServiceImplementation(ISegmentParseService.class, new SegmentParseService(getManager(), listenerManager)); + } + + @Override public void start(Properties config) throws ServiceNotProvidedException { + + } + + @Override public void notifyAfterCompleted() throws ServiceNotProvidedException { + + } + + @Override public String[] requiredModules() { + return new String[0]; + } +} diff --git a/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/apache/skywalking/apm/collector/agent/stream/parser/SegmentParse.java b/apm-collector/apm-collector-analysis/analysis-segment-parser/segment-parser-provider/src/main/java/org/apache/skywalking/apm/collector/analysis/segment/parser/provider/parser/SegmentParse.java similarity index 73% rename from apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/apache/skywalking/apm/collector/agent/stream/parser/SegmentParse.java rename to apm-collector/apm-collector-analysis/analysis-segment-parser/segment-parser-provider/src/main/java/org/apache/skywalking/apm/collector/analysis/segment/parser/provider/parser/SegmentParse.java index 76bb577e01066b072d52ace01aff059b36955292..60998e3c7bfd6cba7833772072091ce41695dbca 100644 --- a/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/apache/skywalking/apm/collector/agent/stream/parser/SegmentParse.java +++ b/apm-collector/apm-collector-analysis/analysis-segment-parser/segment-parser-provider/src/main/java/org/apache/skywalking/apm/collector/analysis/segment/parser/provider/parser/SegmentParse.java @@ -16,33 +16,29 @@ * */ - -package org.apache.skywalking.apm.collector.agent.stream.parser; +package org.apache.skywalking.apm.collector.analysis.segment.parser.provider.parser; import com.google.protobuf.InvalidProtocolBufferException; -import java.util.ArrayList; import java.util.List; -import org.apache.skywalking.apm.collector.agent.stream.parser.standardization.ReferenceIdExchanger; -import org.apache.skywalking.apm.collector.agent.stream.parser.standardization.SegmentDecorator; -import org.apache.skywalking.apm.collector.agent.stream.worker.trace.service.ServiceEntrySpanListener; -import org.apache.skywalking.apm.collector.core.graph.GraphManager; -import org.apache.skywalking.apm.collector.agent.stream.graph.TraceStreamGraph; -import org.apache.skywalking.apm.collector.agent.stream.parser.standardization.ReferenceDecorator; -import org.apache.skywalking.apm.collector.agent.stream.parser.standardization.SegmentStandardization; -import org.apache.skywalking.apm.collector.agent.stream.parser.standardization.SpanDecorator; -import org.apache.skywalking.apm.collector.agent.stream.parser.standardization.SpanIdExchanger; -import org.apache.skywalking.apm.collector.agent.stream.worker.trace.application.ApplicationComponentSpanListener; -import org.apache.skywalking.apm.collector.agent.stream.worker.trace.application.ApplicationMappingSpanListener; -import org.apache.skywalking.apm.collector.agent.stream.worker.trace.application.ApplicationReferenceMetricSpanListener; -import org.apache.skywalking.apm.collector.agent.stream.worker.trace.global.GlobalTraceSpanListener; -import org.apache.skywalking.apm.collector.agent.stream.worker.trace.instance.InstanceMetricSpanListener; -import org.apache.skywalking.apm.collector.agent.stream.worker.trace.segment.SegmentCostSpanListener; -import org.apache.skywalking.apm.collector.agent.stream.worker.trace.service.ServiceReferenceMetricSpanListener; +import javax.swing.text.Segment; +import org.apache.skywalking.apm.collector.analysis.segment.parser.define.decorator.ReferenceDecorator; +import org.apache.skywalking.apm.collector.analysis.segment.parser.define.decorator.SegmentDecorator; +import org.apache.skywalking.apm.collector.analysis.segment.parser.define.decorator.SpanDecorator; +import org.apache.skywalking.apm.collector.analysis.segment.parser.define.listener.EntrySpanListener; +import org.apache.skywalking.apm.collector.analysis.segment.parser.define.listener.ExitSpanListener; +import org.apache.skywalking.apm.collector.analysis.segment.parser.define.listener.FirstSpanListener; +import org.apache.skywalking.apm.collector.analysis.segment.parser.define.listener.GlobalTraceIdsListener; +import org.apache.skywalking.apm.collector.analysis.segment.parser.define.listener.LocalSpanListener; +import org.apache.skywalking.apm.collector.analysis.segment.parser.define.listener.SpanListener; +import org.apache.skywalking.apm.collector.analysis.segment.parser.define.service.ISegmentParseService; +import org.apache.skywalking.apm.collector.analysis.segment.parser.provider.parser.standardization.ReferenceIdExchanger; +import org.apache.skywalking.apm.collector.analysis.segment.parser.provider.parser.standardization.SegmentStandardization; +import org.apache.skywalking.apm.collector.analysis.segment.parser.provider.parser.standardization.SpanIdExchanger; import org.apache.skywalking.apm.collector.core.UnexpectedException; import org.apache.skywalking.apm.collector.core.graph.Graph; +import org.apache.skywalking.apm.collector.core.graph.GraphManager; import org.apache.skywalking.apm.collector.core.module.ModuleManager; import org.apache.skywalking.apm.collector.core.util.TimeBucketUtils; -import org.apache.skywalking.apm.collector.storage.table.segment.Segment; import org.apache.skywalking.apm.network.proto.SpanType; import org.apache.skywalking.apm.network.proto.TraceSegmentObject; import org.apache.skywalking.apm.network.proto.UniqueId; @@ -57,25 +53,17 @@ public class SegmentParse { private final Logger logger = LoggerFactory.getLogger(SegmentParse.class); - private final List spanListeners; private final ModuleManager moduleManager; + private final SegmentParserListenerManager listenerManager; private String segmentId; private long timeBucket = 0; - public SegmentParse(ModuleManager moduleManager) { + public SegmentParse(ModuleManager moduleManager, SegmentParserListenerManager listenerManager) { this.moduleManager = moduleManager; - this.spanListeners = new ArrayList<>(); - this.spanListeners.add(new ApplicationComponentSpanListener()); - this.spanListeners.add(new ApplicationMappingSpanListener()); - this.spanListeners.add(new ApplicationReferenceMetricSpanListener(moduleManager)); - this.spanListeners.add(new SegmentCostSpanListener(moduleManager)); - this.spanListeners.add(new GlobalTraceSpanListener()); - this.spanListeners.add(new ServiceEntrySpanListener(moduleManager)); - this.spanListeners.add(new ServiceReferenceMetricSpanListener()); - this.spanListeners.add(new InstanceMetricSpanListener()); + this.listenerManager = listenerManager; } - public boolean parse(UpstreamSegment segment, Source source) { + public boolean parse(UpstreamSegment segment, ISegmentParseService.Source source) { try { List traceIds = segment.getGlobalTraceIdsList(); TraceSegmentObject segmentObject = TraceSegmentObject.parseFrom(segment.getSegment()); @@ -85,7 +73,7 @@ public class SegmentParse { if (!preBuild(traceIds, segmentDecorator)) { logger.debug("This segment id exchange not success, write to buffer file, id: {}", segmentId); - if (source.equals(Source.Agent)) { + if (source.equals(ISegmentParseService.Source.Agent)) { writeToBufferFile(segmentId, segment); } return false; @@ -184,12 +172,12 @@ public class SegmentParse { } private void notifyListenerToBuild() { - spanListeners.forEach(SpanListener::build); + listenerManager.getSpanListeners().forEach(SpanListener::build); } private void notifyExitListener(SpanDecorator spanDecorator, int applicationId, int applicationInstanceId, String segmentId) { - for (SpanListener listener : spanListeners) { + for (SpanListener listener : listenerManager.getSpanListeners()) { if (listener instanceof ExitSpanListener) { ((ExitSpanListener)listener).parseExit(spanDecorator, applicationId, applicationInstanceId, segmentId); } @@ -198,7 +186,7 @@ public class SegmentParse { private void notifyEntryListener(SpanDecorator spanDecorator, int applicationId, int applicationInstanceId, String segmentId) { - for (SpanListener listener : spanListeners) { + for (SpanListener listener : listenerManager.getSpanListeners()) { if (listener instanceof EntrySpanListener) { ((EntrySpanListener)listener).parseEntry(spanDecorator, applicationId, applicationInstanceId, segmentId); } @@ -207,7 +195,7 @@ public class SegmentParse { private void notifyLocalListener(SpanDecorator spanDecorator, int applicationId, int applicationInstanceId, String segmentId) { - for (SpanListener listener : spanListeners) { + for (SpanListener listener : listenerManager.getSpanListeners()) { if (listener instanceof LocalSpanListener) { ((LocalSpanListener)listener).parseLocal(spanDecorator, applicationId, applicationInstanceId, segmentId); } @@ -216,7 +204,7 @@ public class SegmentParse { private void notifyFirstListener(SpanDecorator spanDecorator, int applicationId, int applicationInstanceId, String segmentId) { - for (SpanListener listener : spanListeners) { + for (SpanListener listener : listenerManager.getSpanListeners()) { if (listener instanceof FirstSpanListener) { ((FirstSpanListener)listener).parseFirst(spanDecorator, applicationId, applicationInstanceId, segmentId); } @@ -224,14 +212,10 @@ public class SegmentParse { } private void notifyGlobalsListener(UniqueId uniqueId) { - for (SpanListener listener : spanListeners) { + for (SpanListener listener : listenerManager.getSpanListeners()) { if (listener instanceof GlobalTraceIdsListener) { ((GlobalTraceIdsListener)listener).parseGlobalTraceId(uniqueId); } } } - - public enum Source { - Agent, Buffer - } } diff --git a/apm-collector/apm-collector-analysis/analysis-segment-parser/segment-parser-provider/src/main/java/org/apache/skywalking/apm/collector/analysis/segment/parser/provider/parser/SegmentParserListenerManager.java b/apm-collector/apm-collector-analysis/analysis-segment-parser/segment-parser-provider/src/main/java/org/apache/skywalking/apm/collector/analysis/segment/parser/provider/parser/SegmentParserListenerManager.java new file mode 100644 index 0000000000000000000000000000000000000000..86c1ba1f3c7598cac479d5c0f1bf29ea014076f5 --- /dev/null +++ b/apm-collector/apm-collector-analysis/analysis-segment-parser/segment-parser-provider/src/main/java/org/apache/skywalking/apm/collector/analysis/segment/parser/provider/parser/SegmentParserListenerManager.java @@ -0,0 +1,43 @@ +/* + * 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.collector.analysis.segment.parser.provider.parser; + +import java.util.ArrayList; +import java.util.List; +import org.apache.skywalking.apm.collector.analysis.segment.parser.define.listener.SpanListener; + +/** + * @author peng-yongsheng + */ +public class SegmentParserListenerManager { + + private List spanListeners; + + public SegmentParserListenerManager() { + this.spanListeners = new ArrayList<>(); + } + + public void add(SpanListener spanListener) { + spanListeners.add(spanListener); + } + + public List getSpanListeners() { + return spanListeners; + } +} diff --git a/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/apache/skywalking/apm/collector/agent/stream/parser/standardization/IdExchanger.java b/apm-collector/apm-collector-analysis/analysis-segment-parser/segment-parser-provider/src/main/java/org/apache/skywalking/apm/collector/analysis/segment/parser/provider/parser/standardization/IdExchanger.java similarity index 82% rename from apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/apache/skywalking/apm/collector/agent/stream/parser/standardization/IdExchanger.java rename to apm-collector/apm-collector-analysis/analysis-segment-parser/segment-parser-provider/src/main/java/org/apache/skywalking/apm/collector/analysis/segment/parser/provider/parser/standardization/IdExchanger.java index 8da1228357f4b20e9bb75d6a2ec8c8fc31e7fdc7..6bf7148c7e829c02e33c39cff92e18f401b72737 100644 --- a/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/apache/skywalking/apm/collector/agent/stream/parser/standardization/IdExchanger.java +++ b/apm-collector/apm-collector-analysis/analysis-segment-parser/segment-parser-provider/src/main/java/org/apache/skywalking/apm/collector/analysis/segment/parser/provider/parser/standardization/IdExchanger.java @@ -17,7 +17,9 @@ */ -package org.apache.skywalking.apm.collector.agent.stream.parser.standardization; +package org.apache.skywalking.apm.collector.analysis.segment.parser.provider.parser.standardization; + +import org.apache.skywalking.apm.collector.analysis.segment.parser.define.decorator.StandardBuilder; /** * @author peng-yongsheng diff --git a/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/apache/skywalking/apm/collector/agent/stream/parser/standardization/ReferenceIdExchanger.java b/apm-collector/apm-collector-analysis/analysis-segment-parser/segment-parser-provider/src/main/java/org/apache/skywalking/apm/collector/analysis/segment/parser/provider/parser/standardization/ReferenceIdExchanger.java similarity index 96% rename from apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/apache/skywalking/apm/collector/agent/stream/parser/standardization/ReferenceIdExchanger.java rename to apm-collector/apm-collector-analysis/analysis-segment-parser/segment-parser-provider/src/main/java/org/apache/skywalking/apm/collector/analysis/segment/parser/provider/parser/standardization/ReferenceIdExchanger.java index 872f011c4c1177388e03fa5dcc6a5caf4714c43a..2fbfcf1214904d8afd6adf2f8231252d4f4ae5a7 100644 --- a/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/apache/skywalking/apm/collector/agent/stream/parser/standardization/ReferenceIdExchanger.java +++ b/apm-collector/apm-collector-analysis/analysis-segment-parser/segment-parser-provider/src/main/java/org/apache/skywalking/apm/collector/analysis/segment/parser/provider/parser/standardization/ReferenceIdExchanger.java @@ -17,8 +17,9 @@ */ -package org.apache.skywalking.apm.collector.agent.stream.parser.standardization; +package org.apache.skywalking.apm.collector.analysis.segment.parser.provider.parser.standardization; +import org.apache.skywalking.apm.collector.analysis.segment.parser.define.decorator.ReferenceDecorator; import org.apache.skywalking.apm.collector.core.util.Const; import org.apache.skywalking.apm.collector.agent.stream.worker.register.ApplicationIDService; import org.apache.skywalking.apm.collector.agent.stream.worker.register.ServiceNameService; diff --git a/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/apache/skywalking/apm/collector/agent/stream/parser/standardization/SegmentStandardization.java b/apm-collector/apm-collector-analysis/analysis-segment-parser/segment-parser-provider/src/main/java/org/apache/skywalking/apm/collector/analysis/segment/parser/provider/parser/standardization/SegmentStandardization.java similarity index 93% rename from apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/apache/skywalking/apm/collector/agent/stream/parser/standardization/SegmentStandardization.java rename to apm-collector/apm-collector-analysis/analysis-segment-parser/segment-parser-provider/src/main/java/org/apache/skywalking/apm/collector/analysis/segment/parser/provider/parser/standardization/SegmentStandardization.java index 256facbc40d1318eaa8f6a4fcc997fb4a717f375..08717ce40dcdf7b920b593c466d23992a4770cf1 100644 --- a/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/apache/skywalking/apm/collector/agent/stream/parser/standardization/SegmentStandardization.java +++ b/apm-collector/apm-collector-analysis/analysis-segment-parser/segment-parser-provider/src/main/java/org/apache/skywalking/apm/collector/analysis/segment/parser/provider/parser/standardization/SegmentStandardization.java @@ -17,7 +17,7 @@ */ -package org.apache.skywalking.apm.collector.agent.stream.parser.standardization; +package org.apache.skywalking.apm.collector.analysis.segment.parser.provider.parser.standardization; import org.apache.skywalking.apm.collector.core.data.EndOfBatchQueueMessage; import org.apache.skywalking.apm.network.proto.UpstreamSegment; diff --git a/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/apache/skywalking/apm/collector/agent/stream/parser/standardization/SegmentStandardizationWorker.java b/apm-collector/apm-collector-analysis/analysis-segment-parser/segment-parser-provider/src/main/java/org/apache/skywalking/apm/collector/analysis/segment/parser/provider/parser/standardization/SegmentStandardizationWorker.java similarity index 96% rename from apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/apache/skywalking/apm/collector/agent/stream/parser/standardization/SegmentStandardizationWorker.java rename to apm-collector/apm-collector-analysis/analysis-segment-parser/segment-parser-provider/src/main/java/org/apache/skywalking/apm/collector/analysis/segment/parser/provider/parser/standardization/SegmentStandardizationWorker.java index fe08b8726d35e38081043b27ad4045e6dff16067..12b6206d6e288bf12094196aaceb79bd6dcbce88 100644 --- a/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/apache/skywalking/apm/collector/agent/stream/parser/standardization/SegmentStandardizationWorker.java +++ b/apm-collector/apm-collector-analysis/analysis-segment-parser/segment-parser-provider/src/main/java/org/apache/skywalking/apm/collector/analysis/segment/parser/provider/parser/standardization/SegmentStandardizationWorker.java @@ -17,7 +17,7 @@ */ -package org.apache.skywalking.apm.collector.agent.stream.parser.standardization; +package org.apache.skywalking.apm.collector.analysis.segment.parser.provider.parser.standardization; import java.util.concurrent.Executors; import java.util.concurrent.TimeUnit; diff --git a/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/apache/skywalking/apm/collector/agent/stream/parser/standardization/SpanIdExchanger.java b/apm-collector/apm-collector-analysis/analysis-segment-parser/segment-parser-provider/src/main/java/org/apache/skywalking/apm/collector/analysis/segment/parser/provider/parser/standardization/SpanIdExchanger.java similarity index 94% rename from apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/apache/skywalking/apm/collector/agent/stream/parser/standardization/SpanIdExchanger.java rename to apm-collector/apm-collector-analysis/analysis-segment-parser/segment-parser-provider/src/main/java/org/apache/skywalking/apm/collector/analysis/segment/parser/provider/parser/standardization/SpanIdExchanger.java index e7774fcf510ad81594b17d41de4f9f078fb75b44..876c58f81db41f60772fc4f31f46edc1ee89110c 100644 --- a/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/apache/skywalking/apm/collector/agent/stream/parser/standardization/SpanIdExchanger.java +++ b/apm-collector/apm-collector-analysis/analysis-segment-parser/segment-parser-provider/src/main/java/org/apache/skywalking/apm/collector/analysis/segment/parser/provider/parser/standardization/SpanIdExchanger.java @@ -16,11 +16,11 @@ * */ - -package org.apache.skywalking.apm.collector.agent.stream.parser.standardization; +package org.apache.skywalking.apm.collector.analysis.segment.parser.provider.parser.standardization; import org.apache.skywalking.apm.collector.agent.stream.worker.register.ApplicationIDService; import org.apache.skywalking.apm.collector.agent.stream.worker.register.ServiceNameService; +import org.apache.skywalking.apm.collector.analysis.segment.parser.define.decorator.SpanDecorator; import org.apache.skywalking.apm.collector.core.module.ModuleManager; import org.apache.skywalking.apm.collector.core.util.Const; import org.apache.skywalking.apm.collector.core.util.StringUtils; diff --git a/apm-collector/apm-collector-analysis/analysis-segment-parser/segment-parser-provider/src/main/java/org/apache/skywalking/apm/collector/analysis/segment/parser/provider/service/SegmentParseService.java b/apm-collector/apm-collector-analysis/analysis-segment-parser/segment-parser-provider/src/main/java/org/apache/skywalking/apm/collector/analysis/segment/parser/provider/service/SegmentParseService.java new file mode 100644 index 0000000000000000000000000000000000000000..c848fe4ea52785270306bdb543516e63488f499a --- /dev/null +++ b/apm-collector/apm-collector-analysis/analysis-segment-parser/segment-parser-provider/src/main/java/org/apache/skywalking/apm/collector/analysis/segment/parser/provider/service/SegmentParseService.java @@ -0,0 +1,44 @@ +/* + * 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.collector.analysis.segment.parser.provider.service; + +import org.apache.skywalking.apm.collector.analysis.segment.parser.define.service.ISegmentParseService; +import org.apache.skywalking.apm.collector.analysis.segment.parser.provider.parser.SegmentParse; +import org.apache.skywalking.apm.collector.analysis.segment.parser.provider.parser.SegmentParserListenerManager; +import org.apache.skywalking.apm.collector.core.module.ModuleManager; +import org.apache.skywalking.apm.network.proto.UpstreamSegment; + +/** + * @author peng-yongsheng + */ +public class SegmentParseService implements ISegmentParseService { + + private final ModuleManager moduleManager; + private final SegmentParserListenerManager listenerManager; + + public SegmentParseService(ModuleManager moduleManager, SegmentParserListenerManager listenerManager) { + this.moduleManager = moduleManager; + this.listenerManager = listenerManager; + } + + @Override public void parse(UpstreamSegment segment, Source source) { + SegmentParse segmentParse = new SegmentParse(moduleManager, listenerManager); + segmentParse.parse(segment, source); + } +} diff --git a/apm-collector/apm-collector-analysis/analysis-segment-parser/segment-parser-provider/src/main/java/org/apache/skywalking/apm/collector/analysis/segment/parser/provider/service/SegmentParserListenerRegister.java b/apm-collector/apm-collector-analysis/analysis-segment-parser/segment-parser-provider/src/main/java/org/apache/skywalking/apm/collector/analysis/segment/parser/provider/service/SegmentParserListenerRegister.java new file mode 100644 index 0000000000000000000000000000000000000000..2a903d067cb299d6cd37d59c91e2d31ce2518e1a --- /dev/null +++ b/apm-collector/apm-collector-analysis/analysis-segment-parser/segment-parser-provider/src/main/java/org/apache/skywalking/apm/collector/analysis/segment/parser/provider/service/SegmentParserListenerRegister.java @@ -0,0 +1,39 @@ +/* + * 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.collector.analysis.segment.parser.provider.service; + +import org.apache.skywalking.apm.collector.analysis.segment.parser.define.listener.SpanListener; +import org.apache.skywalking.apm.collector.analysis.segment.parser.define.service.ISegmentParserListenerRegister; +import org.apache.skywalking.apm.collector.analysis.segment.parser.provider.parser.SegmentParserListenerManager; + +/** + * @author peng-yongsheng + */ +public class SegmentParserListenerRegister implements ISegmentParserListenerRegister { + + private final SegmentParserListenerManager listenerManager; + + public SegmentParserListenerRegister(SegmentParserListenerManager listenerManager) { + this.listenerManager = listenerManager; + } + + @Override public void register(SpanListener spanListener) { + this.listenerManager.add(spanListener); + } +} diff --git a/apm-collector/apm-collector-analysis/analysis-segment-parser/segment-parser-provider/src/main/resources/META-INF/services/org.apache.skywalking.apm.collector.core.module.ModuleProvider b/apm-collector/apm-collector-analysis/analysis-segment-parser/segment-parser-provider/src/main/resources/META-INF/services/org.apache.skywalking.apm.collector.core.module.ModuleProvider new file mode 100644 index 0000000000000000000000000000000000000000..d33d1248ffb005781c41e86fd09f52b4100966af --- /dev/null +++ b/apm-collector/apm-collector-analysis/analysis-segment-parser/segment-parser-provider/src/main/resources/META-INF/services/org.apache.skywalking.apm.collector.core.module.ModuleProvider @@ -0,0 +1,37 @@ +# +# 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. +# +# + +# +# 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. +# +# + +org.apache.skywalking.apm.collector.analysis.segment.parser.provider.AnalysisTraceParseModuleProvider \ No newline at end of file diff --git a/apm-collector/apm-collector-analysis/pom.xml b/apm-collector/apm-collector-analysis/pom.xml index 397062a434218d49f14a30fade8369480fe14560..cfab3c96e5f448a3f484ba2dd1a9671ce6796f18 100644 --- a/apm-collector/apm-collector-analysis/pom.xml +++ b/apm-collector/apm-collector-analysis/pom.xml @@ -28,6 +28,16 @@ 4.0.0 apm-collector-analysis + pom + + analysis-segment-parser + - + + + org.apache.skywalking + apm-collector-core + ${project.version} + + \ No newline at end of file