You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@skywalking.apache.org by wu...@apache.org on 2018/04/16 07:50:27 UTC

[incubator-skywalking] branch refactor/component-id updated: Support don't uplink componentId, but componentName in segment.

This is an automated email from the ASF dual-hosted git repository.

wusheng pushed a commit to branch refactor/component-id
in repository https://gitbox.apache.org/repos/asf/incubator-skywalking.git


The following commit(s) were added to refs/heads/refactor/component-id by this push:
     new 6df6045  Support don't uplink componentId, but componentName in segment.
6df6045 is described below

commit 6df6045d09fbae8dadceacfa07744618cfd2a89b
Author: wusheng <wu...@foxmail.com>
AuthorDate: Mon Apr 16 15:50:18 2018 +0800

    Support don't uplink componentId, but componentName in segment.
---
 .../segment-parser-define/pom.xml                    |  7 ++++++-
 .../parser/define/decorator/SegmentDecorator.java    |  7 ++++---
 .../parser/define/decorator/SpanDecorator.java       | 20 ++++++++++++++++----
 .../segment/parser/provider/parser/SegmentParse.java |  4 ++--
 4 files changed, 28 insertions(+), 10 deletions(-)

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
index 9c27dc9..cc4985e 100644
--- 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
@@ -35,5 +35,10 @@
             <artifactId>apm-network</artifactId>
             <version>${project.version}</version>
         </dependency>
+        <dependency>
+            <groupId>org.apache.skywalking</groupId>
+            <artifactId>collector-configuration-define</artifactId>
+            <version>${project.version}</version>
+        </dependency>
     </dependencies>
-</project>
\ No newline at end of file
+</project>
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/decorator/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
index 531aef8..0b85acd 100644
--- a/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
+++ 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
@@ -18,6 +18,7 @@
 
 package org.apache.skywalking.apm.collector.analysis.segment.parser.define.decorator;
 
+import org.apache.skywalking.apm.collector.core.module.ModuleManager;
 import org.apache.skywalking.apm.collector.core.util.ObjectUtils;
 import org.apache.skywalking.apm.network.proto.TraceSegmentObject;
 import org.apache.skywalking.apm.network.proto.UniqueId;
@@ -52,12 +53,12 @@ public class SegmentDecorator implements StandardBuilder {
         return segmentObject.getSpansCount();
     }
 
-    public SpanDecorator getSpans(int index) {
+    public SpanDecorator getSpans(int index, ModuleManager moduleManager) {
         if (ObjectUtils.isEmpty(spanDecorators[index])) {
             if (isOrigin) {
-                spanDecorators[index] = new SpanDecorator(segmentObject.getSpans(index), this);
+                spanDecorators[index] = new SpanDecorator(segmentObject.getSpans(index), this, moduleManager);
             } else {
-                spanDecorators[index] = new SpanDecorator(segmentBuilder.getSpansBuilder(index), this);
+                spanDecorators[index] = new SpanDecorator(segmentBuilder.getSpansBuilder(index), this, moduleManager);
             }
         }
         return spanDecorators[index];
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/decorator/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
index a504add..9d1a903 100644
--- a/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
+++ 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
@@ -18,6 +18,9 @@
 
 package org.apache.skywalking.apm.collector.analysis.segment.parser.define.decorator;
 
+import org.apache.skywalking.apm.collector.configuration.ConfigurationModule;
+import org.apache.skywalking.apm.collector.configuration.service.IComponentLibraryCatalogService;
+import org.apache.skywalking.apm.collector.core.module.ModuleManager;
 import org.apache.skywalking.apm.collector.core.util.ObjectUtils;
 import org.apache.skywalking.apm.network.proto.SpanLayer;
 import org.apache.skywalking.apm.network.proto.SpanObject;
@@ -33,18 +36,21 @@ public class SpanDecorator implements StandardBuilder {
     private SpanObject.Builder spanBuilder;
     private long startTimeMinuteTimeBucket = 0;
     private final ReferenceDecorator[] referenceDecorators;
+    private final IComponentLibraryCatalogService componentLibraryCatalogService;
 
-    public SpanDecorator(SpanObject spanObject, StandardBuilder standardBuilder) {
+    public SpanDecorator(SpanObject spanObject, StandardBuilder standardBuilder, ModuleManager moduleManager) {
         this.spanObject = spanObject;
         this.standardBuilder = standardBuilder;
         this.referenceDecorators = new ReferenceDecorator[spanObject.getRefsCount()];
+        this.componentLibraryCatalogService = moduleManager.find(ConfigurationModule.NAME).getService(IComponentLibraryCatalogService.class);
     }
 
-    public SpanDecorator(SpanObject.Builder spanBuilder, StandardBuilder standardBuilder) {
+    public SpanDecorator(SpanObject.Builder spanBuilder, StandardBuilder standardBuilder, ModuleManager moduleManager) {
         this.spanBuilder = spanBuilder;
         this.standardBuilder = standardBuilder;
         this.isOrigin = false;
         this.referenceDecorators = new ReferenceDecorator[spanBuilder.getRefsCount()];
+        this.componentLibraryCatalogService = moduleManager.find(ConfigurationModule.NAME).getService(IComponentLibraryCatalogService.class);
     }
 
     public int getSpanId() {
@@ -120,11 +126,17 @@ public class SpanDecorator implements StandardBuilder {
     }
 
     public int getComponentId() {
+        int componentId = 0;
         if (isOrigin) {
-            return spanObject.getComponentId();
+            componentId = spanObject.getComponentId();
         } else {
-            return spanBuilder.getComponentId();
+            componentId = spanBuilder.getComponentId();
         }
+
+        if(componentId == 0){
+            componentId = componentLibraryCatalogService.getComponentId(getComponent());
+        }
+        return componentId;
     }
 
     public String getComponent() {
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/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
index a7b5f2b..8d5d8f3 100644
--- 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/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
@@ -125,7 +125,7 @@ public class SegmentParse {
 
         int entrySpanCount = 0;
         for (int i = 0; i < segmentDecorator.getSpansCount(); i++) {
-            SpanDecorator spanDecorator = segmentDecorator.getSpans(i);
+            SpanDecorator spanDecorator = segmentDecorator.getSpans(i, moduleManager);
 
             if (!SpanIdExchanger.getInstance(moduleManager).exchange(spanDecorator, applicationId)) {
                 return false;
@@ -148,7 +148,7 @@ public class SegmentParse {
         }
 
         for (int i = 0; i < segmentDecorator.getSpansCount(); i++) {
-            SpanDecorator spanDecorator = segmentDecorator.getSpans(i);
+            SpanDecorator spanDecorator = segmentDecorator.getSpans(i, moduleManager);
 
             if (spanDecorator.getSpanId() == 0) {
                 timeBucket = TimeBucketUtils.INSTANCE.getMinuteTimeBucket(spanDecorator.getStartTime());

-- 
To stop receiving notification emails like this one, please contact
wusheng@apache.org.