You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@skywalking.apache.org by wu...@apache.org on 2019/03/08 06:45:18 UTC

[incubator-skywalking] 01/01: Bug fix.

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

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

commit 9db79d9ce98a288d2bd0f9294e9638cafa14c7e6
Author: Wu Sheng <wu...@foxmail.com>
AuthorDate: Fri Mar 8 14:45:04 2019 +0800

    Bug fix.
---
 .../src/main/resources/generator-scope-meta.yml    | 32 ++++++------
 .../server/core/source/EnvoyInstanceMetric.java    |  1 -
 .../server/core/source/ServiceInstanceCLRCPU.java  |  2 +-
 .../server/core/source/ServiceInstanceCLRGC.java   |  2 +-
 .../core/source/ServiceInstanceCLRThread.java      |  2 +-
 .../server/core/source/ServiceInstanceJVMCPU.java  |  2 +-
 .../server/core/source/ServiceInstanceJVMGC.java   |  2 +-
 .../core/source/ServiceInstanceJVMMemory.java      |  2 +-
 .../core/source/ServiceInstanceJVMMemoryPool.java  |  2 +-
 .../receiver/envoy/MetricServiceGRPCHandler.java   |  1 -
 .../handler/JVMMetricReportServiceHandler.java     | 10 ++--
 .../provider/handler/JVMMetricsServiceHandler.java | 11 ++--
 .../jvm/provider/handler/JVMSourceDispatcher.java  | 61 ++++++++++++----------
 13 files changed, 63 insertions(+), 67 deletions(-)

diff --git a/oap-server/generated-analysis/src/main/resources/generator-scope-meta.yml b/oap-server/generated-analysis/src/main/resources/generator-scope-meta.yml
index 603a766..a93ca4a 100644
--- a/oap-server/generated-analysis/src/main/resources/generator-scope-meta.yml
+++ b/oap-server/generated-analysis/src/main/resources/generator-scope-meta.yml
@@ -52,8 +52,8 @@ scopes:
       columnName: entity_id
       typeName: java.lang.String
       ID: true
-    - fieldName: serviceInstanceId
-      columnName: service_instance_id
+    - fieldName: serviceId
+      columnName: service_id
       typeName: int
       ID: false
   - name: ServiceInstanceJVMMemory
@@ -62,8 +62,8 @@ scopes:
       columnName: entity_id
       typeName: java.lang.String
       ID: true
-    - fieldName: serviceInstanceId
-      columnName: service_instance_id
+    - fieldName: serviceId
+      columnName: service_id
       typeName: int
       ID: false
   - name: ServiceInstanceJVMMemoryPool
@@ -72,8 +72,8 @@ scopes:
       columnName: entity_id
       typeName: java.lang.String
       ID: true
-    - fieldName: serviceInstanceId
-      columnName: service_instance_id
+    - fieldName: serviceId
+      columnName: service_id
       typeName: int
       ID: false
   - name: ServiceInstanceJVMGC
@@ -82,8 +82,8 @@ scopes:
       columnName: entity_id
       typeName: java.lang.String
       ID: true
-    - fieldName: serviceInstanceId
-      columnName: service_instance_id
+    - fieldName: serviceId
+      columnName: service_id
       typeName: int
       ID: false
   - name: ServiceRelation
@@ -140,8 +140,8 @@ scopes:
         columnName: entity_id
         typeName: java.lang.String
         ID: true
-      - fieldName: serviceInstanceId
-        columnName: service_instance_id
+      - fieldName: serviceId
+        columnName: service_id
         typeName: int
         ID: false
   - name: ServiceInstanceCLRGC
@@ -150,8 +150,8 @@ scopes:
         columnName: entity_id
         typeName: java.lang.String
         ID: true
-      - fieldName: serviceInstanceId
-        columnName: service_instance_id
+      - fieldName: serviceId
+        columnName: service_id
         typeName: int
         ID: false
   - name: ServiceInstanceCLRThread
@@ -160,8 +160,8 @@ scopes:
         columnName: entity_id
         typeName: java.lang.String
         ID: true
-      - fieldName: serviceInstanceId
-        columnName: service_instance_id
+      - fieldName: serviceId
+        columnName: service_id
         typeName: int
         ID: false
   - name: EnvoyInstanceMetric
@@ -170,7 +170,7 @@ scopes:
       columnName: entity_id
       typeName: java.lang.String
       ID: true
-    - fieldName: serviceInstanceId
-      columnName: service_instance_id
+    - fieldName: serviceId
+      columnName: service_id
       typeName: int
       ID: false
\ No newline at end of file
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/EnvoyInstanceMetric.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/EnvoyInstanceMetric.java
index f2c0dff..0a5eafb 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/EnvoyInstanceMetric.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/EnvoyInstanceMetric.java
@@ -44,7 +44,6 @@ public class EnvoyInstanceMetric extends Source {
      */
     @Getter @Setter private int id;
     @Getter @Setter private int serviceId;
-    @Getter @Setter private int serviceInstanceId;
     @Getter @Setter private String name;
     @Getter @Setter private String serviceName;
     @Getter @Setter private String metricName;
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/ServiceInstanceCLRCPU.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/ServiceInstanceCLRCPU.java
index f5fe55b..0ae797a 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/ServiceInstanceCLRCPU.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/ServiceInstanceCLRCPU.java
@@ -39,6 +39,6 @@ public class ServiceInstanceCLRCPU extends Source {
     @Getter @Setter private int id;
     @Getter @Setter private String name;
     @Getter @Setter private String serviceName;
-    @Getter @Setter private int serviceInstanceId;
+    @Getter @Setter private int serviceId;
     @Getter @Setter private double usePercent;
 }
\ No newline at end of file
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/ServiceInstanceCLRGC.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/ServiceInstanceCLRGC.java
index d87253b..904f2f9 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/ServiceInstanceCLRGC.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/ServiceInstanceCLRGC.java
@@ -39,7 +39,7 @@ public class ServiceInstanceCLRGC extends Source {
     @Getter @Setter private int id;
     @Getter @Setter private String name;
     @Getter @Setter private String serviceName;
-    @Getter @Setter private int serviceInstanceId;
+    @Getter @Setter private int serviceId;
     @Getter @Setter private int gen0CollectCount;
     @Getter @Setter private int gen1CollectCount;
     @Getter @Setter private int gen2CollectCount;
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/ServiceInstanceCLRThread.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/ServiceInstanceCLRThread.java
index 877be59..6f1e54c 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/ServiceInstanceCLRThread.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/ServiceInstanceCLRThread.java
@@ -39,7 +39,7 @@ public class ServiceInstanceCLRThread extends Source {
     @Getter @Setter private int id;
     @Getter @Setter private String name;
     @Getter @Setter private String serviceName;
-    @Getter @Setter private int serviceInstanceId;
+    @Getter @Setter private int serviceId;
     @Getter @Setter private long availableCompletionPortThreads;
     @Getter @Setter private long availableWorkerThreads;
     @Getter @Setter private long maxCompletionPortThreads;
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/ServiceInstanceJVMCPU.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/ServiceInstanceJVMCPU.java
index bbf0b49..6195d7b 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/ServiceInstanceJVMCPU.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/ServiceInstanceJVMCPU.java
@@ -38,6 +38,6 @@ public class ServiceInstanceJVMCPU extends Source {
     @Getter @Setter private int id;
     @Getter @Setter private String name;
     @Getter @Setter private String serviceName;
-    @Getter @Setter private int serviceInstanceId;
+    @Getter @Setter private int serviceId;
     @Getter @Setter private double usePercent;
 }
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/ServiceInstanceJVMGC.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/ServiceInstanceJVMGC.java
index 0c005bc..c76acd3 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/ServiceInstanceJVMGC.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/ServiceInstanceJVMGC.java
@@ -38,7 +38,7 @@ public class ServiceInstanceJVMGC extends Source {
     @Getter @Setter private int id;
     @Getter @Setter private String name;
     @Getter @Setter private String serviceName;
-    @Getter @Setter private int serviceInstanceId;
+    @Getter @Setter private int serviceId;
     @Getter @Setter private GCPhrase phrase;
     @Getter @Setter private long time;
     @Getter @Setter private long count;
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/ServiceInstanceJVMMemory.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/ServiceInstanceJVMMemory.java
index 9688f56..889265b 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/ServiceInstanceJVMMemory.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/ServiceInstanceJVMMemory.java
@@ -38,7 +38,7 @@ public class ServiceInstanceJVMMemory extends Source {
     @Getter @Setter private int id;
     @Getter @Setter private String name;
     @Getter @Setter private String serviceName;
-    @Getter @Setter private int serviceInstanceId;
+    @Getter @Setter private int serviceId;
     @Getter @Setter private boolean heapStatus;
     @Getter @Setter private long init;
     @Getter @Setter private long max;
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/ServiceInstanceJVMMemoryPool.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/ServiceInstanceJVMMemoryPool.java
index 2e00932..289c6e7 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/ServiceInstanceJVMMemoryPool.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/ServiceInstanceJVMMemoryPool.java
@@ -38,7 +38,7 @@ public class ServiceInstanceJVMMemoryPool extends Source {
     @Getter @Setter private int id;
     @Getter @Setter private String name;
     @Getter @Setter private String serviceName;
-    @Getter @Setter private int serviceInstanceId;
+    @Getter @Setter private int serviceId;
     @Getter @Setter private MemoryPoolType poolType;
     @Getter @Setter private long init;
     @Getter @Setter private long max;
diff --git a/oap-server/server-receiver-plugin/envoy-metrics-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/envoy/MetricServiceGRPCHandler.java b/oap-server/server-receiver-plugin/envoy-metrics-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/envoy/MetricServiceGRPCHandler.java
index 48083d2..5ccaa88 100644
--- a/oap-server/server-receiver-plugin/envoy-metrics-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/envoy/MetricServiceGRPCHandler.java
+++ b/oap-server/server-receiver-plugin/envoy-metrics-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/envoy/MetricServiceGRPCHandler.java
@@ -113,7 +113,6 @@ public class MetricServiceGRPCHandler extends MetricsServiceGrpc.MetricsServiceI
                                         metricSource.setServiceId(serviceId);
                                         metricSource.setServiceName(serviceName);
                                         metricSource.setId(serviceInstanceId);
-                                        metricSource.setServiceInstanceId(serviceInstanceId);
                                         metricSource.setName(serviceInstanceName);
                                         metricSource.setMetricName(metricFamily.getName());
                                         metricSource.setValue(value);
diff --git a/oap-server/server-receiver-plugin/skywalking-jvm-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/jvm/provider/handler/JVMMetricReportServiceHandler.java b/oap-server/server-receiver-plugin/skywalking-jvm-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/jvm/provider/handler/JVMMetricReportServiceHandler.java
index b4852fd..eb40f90 100644
--- a/oap-server/server-receiver-plugin/skywalking-jvm-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/jvm/provider/handler/JVMMetricReportServiceHandler.java
+++ b/oap-server/server-receiver-plugin/skywalking-jvm-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/jvm/provider/handler/JVMMetricReportServiceHandler.java
@@ -20,15 +20,11 @@ package org.apache.skywalking.oap.server.receiver.jvm.provider.handler;
 
 import io.grpc.stub.StreamObserver;
 import org.apache.skywalking.apm.network.common.Commands;
-import org.apache.skywalking.apm.network.language.agent.v2.JVMMetricCollection;
-import org.apache.skywalking.apm.network.language.agent.v2.JVMMetricReportServiceGrpc;
-import org.apache.skywalking.oap.server.core.CoreModule;
-import org.apache.skywalking.oap.server.core.source.SourceReceiver;
+import org.apache.skywalking.apm.network.language.agent.v2.*;
 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.library.util.TimeBucketUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+import org.slf4j.*;
 
 public class JVMMetricReportServiceHandler extends JVMMetricReportServiceGrpc.JVMMetricReportServiceImplBase implements GRPCHandler {
 
@@ -37,7 +33,7 @@ public class JVMMetricReportServiceHandler extends JVMMetricReportServiceGrpc.JV
     private final JVMSourceDispatcher jvmSourceDispatcher;
 
     public JVMMetricReportServiceHandler(ModuleManager moduleManager) {
-        this.jvmSourceDispatcher = new JVMSourceDispatcher(moduleManager.find(CoreModule.NAME).provider().getService(SourceReceiver.class));
+        this.jvmSourceDispatcher = new JVMSourceDispatcher(moduleManager);
     }
 
     @Override public void collect(JVMMetricCollection request, StreamObserver<Commands> responseObserver) {
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
index b5ac978..ed8afdf 100644
--- 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
@@ -19,16 +19,11 @@
 package org.apache.skywalking.oap.server.receiver.jvm.provider.handler;
 
 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;
-import org.apache.skywalking.oap.server.core.CoreModule;
-import org.apache.skywalking.oap.server.core.source.SourceReceiver;
+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.library.util.TimeBucketUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+import org.slf4j.*;
 
 /**
  * @author peng-yongsheng
@@ -40,7 +35,7 @@ public class JVMMetricsServiceHandler extends JVMMetricsServiceGrpc.JVMMetricsSe
     private final JVMSourceDispatcher jvmSourceDispatcher;
 
     public JVMMetricsServiceHandler(ModuleManager moduleManager) {
-        this.jvmSourceDispatcher = new JVMSourceDispatcher(moduleManager.find(CoreModule.NAME).provider().getService(SourceReceiver.class));
+        this.jvmSourceDispatcher = new JVMSourceDispatcher(moduleManager);
     }
 
     @Override public void collect(JVMMetrics request, StreamObserver<Downstream> responseObserver) {
diff --git a/oap-server/server-receiver-plugin/skywalking-jvm-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/jvm/provider/handler/JVMSourceDispatcher.java b/oap-server/server-receiver-plugin/skywalking-jvm-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/jvm/provider/handler/JVMSourceDispatcher.java
index ab5926c..a977d10 100644
--- a/oap-server/server-receiver-plugin/skywalking-jvm-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/jvm/provider/handler/JVMSourceDispatcher.java
+++ b/oap-server/server-receiver-plugin/skywalking-jvm-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/jvm/provider/handler/JVMSourceDispatcher.java
@@ -19,54 +19,61 @@
 package org.apache.skywalking.oap.server.receiver.jvm.provider.handler;
 
 import java.util.List;
-import org.apache.skywalking.apm.network.language.agent.CPU;
-import org.apache.skywalking.apm.network.language.agent.GC;
-import org.apache.skywalking.apm.network.language.agent.JVMMetric;
-import org.apache.skywalking.apm.network.language.agent.Memory;
-import org.apache.skywalking.apm.network.language.agent.MemoryPool;
-import org.apache.skywalking.oap.server.core.Const;
+import org.apache.skywalking.apm.network.language.agent.*;
+import org.apache.skywalking.oap.server.core.*;
+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.source.GCPhrase;
-import org.apache.skywalking.oap.server.core.source.MemoryPoolType;
-import org.apache.skywalking.oap.server.core.source.ServiceInstanceJVMCPU;
-import org.apache.skywalking.oap.server.core.source.ServiceInstanceJVMGC;
-import org.apache.skywalking.oap.server.core.source.ServiceInstanceJVMMemory;
-import org.apache.skywalking.oap.server.core.source.ServiceInstanceJVMMemoryPool;
-import org.apache.skywalking.oap.server.core.source.SourceReceiver;
+import org.apache.skywalking.oap.server.core.source.*;
+import org.apache.skywalking.oap.server.library.module.ModuleManager;
+import org.slf4j.*;
 
 /**
  * @author wusheng
  */
 public class JVMSourceDispatcher {
-    private SourceReceiver sourceReceiver;
+    private static final Logger logger = LoggerFactory.getLogger(JVMSourceDispatcher.class);
+    private final SourceReceiver sourceReceiver;
+    private final ServiceInstanceInventoryCache instanceInventoryCache;
 
-    public JVMSourceDispatcher(SourceReceiver sourceReceiver) {
-        this.sourceReceiver = sourceReceiver;
+    public JVMSourceDispatcher(ModuleManager moduleManager) {
+        this.sourceReceiver = moduleManager.find(CoreModule.NAME).provider().getService(SourceReceiver.class);
+        instanceInventoryCache = moduleManager.find(CoreModule.NAME).provider().getService(ServiceInstanceInventoryCache.class);
     }
 
     void sendMetric(int serviceInstanceId, long minuteTimeBucket, JVMMetric metric) {
-        this.sendToCpuMetricProcess(serviceInstanceId, minuteTimeBucket, metric.getCpu());
-        this.sendToMemoryMetricProcess(serviceInstanceId, minuteTimeBucket, metric.getMemoryList());
-        this.sendToMemoryPoolMetricProcess(serviceInstanceId, minuteTimeBucket, metric.getMemoryPoolList());
-        this.sendToGCMetricProcess(serviceInstanceId, minuteTimeBucket, metric.getGcList());
+        ServiceInstanceInventory serviceInstanceInventory = instanceInventoryCache.get(serviceInstanceId);
+        int serviceId;
+        if (serviceInstanceInventory == null) {
+            serviceId = serviceInstanceInventory.getServiceId();
+        } else {
+            logger.warn("Can't found service by service instance id from cache, service instance id is: {}", serviceInstanceId);
+            return;
+        }
+
+        this.sendToCpuMetricProcess(serviceId, serviceInstanceId, minuteTimeBucket, metric.getCpu());
+        this.sendToMemoryMetricProcess(serviceId, serviceInstanceId, minuteTimeBucket, metric.getMemoryList());
+        this.sendToMemoryPoolMetricProcess(serviceId, serviceInstanceId, minuteTimeBucket, metric.getMemoryPoolList());
+        this.sendToGCMetricProcess(serviceId, serviceInstanceId, minuteTimeBucket, metric.getGcList());
     }
 
-    private void sendToCpuMetricProcess(int serviceInstanceId, long timeBucket, CPU cpu) {
+    private void sendToCpuMetricProcess(int serviceId, int serviceInstanceId, long timeBucket, CPU cpu) {
         ServiceInstanceJVMCPU serviceInstanceJVMCPU = new ServiceInstanceJVMCPU();
         serviceInstanceJVMCPU.setId(serviceInstanceId);
         serviceInstanceJVMCPU.setName(Const.EMPTY_STRING);
-        serviceInstanceJVMCPU.setServiceInstanceId(serviceInstanceId);
+        serviceInstanceJVMCPU.setServiceId(serviceId);
         serviceInstanceJVMCPU.setServiceName(Const.EMPTY_STRING);
         serviceInstanceJVMCPU.setUsePercent(cpu.getUsagePercent());
         serviceInstanceJVMCPU.setTimeBucket(timeBucket);
         sourceReceiver.receive(serviceInstanceJVMCPU);
     }
 
-    private void sendToGCMetricProcess(int serviceInstanceId, long timeBucket, List<GC> gcs) {
+    private void sendToGCMetricProcess(int serviceId, int serviceInstanceId, long timeBucket, List<GC> gcs) {
         gcs.forEach(gc -> {
             ServiceInstanceJVMGC serviceInstanceJVMGC = new ServiceInstanceJVMGC();
             serviceInstanceJVMGC.setId(serviceInstanceId);
             serviceInstanceJVMGC.setName(Const.EMPTY_STRING);
-            serviceInstanceJVMGC.setServiceInstanceId(serviceInstanceId);
+            serviceInstanceJVMGC.setServiceId(serviceId);
             serviceInstanceJVMGC.setServiceName(Const.EMPTY_STRING);
 
             switch (gc.getPhrase()) {
@@ -85,12 +92,12 @@ public class JVMSourceDispatcher {
         });
     }
 
-    private void sendToMemoryMetricProcess(int serviceInstanceId, long timeBucket, List<Memory> memories) {
+    private void sendToMemoryMetricProcess(int serviceId, int serviceInstanceId, long timeBucket, List<Memory> memories) {
         memories.forEach(memory -> {
             ServiceInstanceJVMMemory serviceInstanceJVMMemory = new ServiceInstanceJVMMemory();
             serviceInstanceJVMMemory.setId(serviceInstanceId);
             serviceInstanceJVMMemory.setName(Const.EMPTY_STRING);
-            serviceInstanceJVMMemory.setServiceInstanceId(serviceInstanceId);
+            serviceInstanceJVMMemory.setServiceId(serviceId);
             serviceInstanceJVMMemory.setServiceName(Const.EMPTY_STRING);
             serviceInstanceJVMMemory.setHeapStatus(memory.getIsHeap());
             serviceInstanceJVMMemory.setInit(memory.getInit());
@@ -102,14 +109,14 @@ public class JVMSourceDispatcher {
         });
     }
 
-    private void sendToMemoryPoolMetricProcess(int serviceInstanceId, long timeBucket,
+    private void sendToMemoryPoolMetricProcess(int serviceId, int serviceInstanceId, long timeBucket,
         List<MemoryPool> memoryPools) {
 
         memoryPools.forEach(memoryPool -> {
             ServiceInstanceJVMMemoryPool serviceInstanceJVMMemoryPool = new ServiceInstanceJVMMemoryPool();
             serviceInstanceJVMMemoryPool.setId(serviceInstanceId);
             serviceInstanceJVMMemoryPool.setName(Const.EMPTY_STRING);
-            serviceInstanceJVMMemoryPool.setServiceInstanceId(serviceInstanceId);
+            serviceInstanceJVMMemoryPool.setServiceId(serviceId);
             serviceInstanceJVMMemoryPool.setServiceName(Const.EMPTY_STRING);
 
             switch (memoryPool.getType()) {