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 2021/12/23 00:35:49 UTC

[skywalking] 01/01: Fix `Can't split endpoint id into 2 parts` bug for endpoint ID in the mesh's TCP case.

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

wusheng pushed a commit to branch tcp-metric-bug
in repository https://gitbox.apache.org/repos/asf/skywalking.git

commit ad030ecef47ab147e9577afdd0954f27874e4ba4
Author: Wu Sheng <wu...@foxmail.com>
AuthorDate: Thu Dec 23 08:35:26 2021 +0800

    Fix `Can't split endpoint id into 2 parts` bug for endpoint ID in the mesh's TCP case.
---
 CHANGES.md                                                          | 6 ++++--
 .../aop/server/receiver/mesh/TelemetryDataDispatcher.java           | 5 ++++-
 2 files changed, 8 insertions(+), 3 deletions(-)

diff --git a/CHANGES.md b/CHANGES.md
index c7c2676..837d9cb 100644
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -7,8 +7,8 @@ Release Notes.
 
 #### Project
 
-* Upgrade log4j2 to 2.17.0 for CVE-2021-44228, CVE-2021-45046 and CVE-2021-45105. This CVE only effects on JDK if JNDI is opened in
-  default. Notice, using JVM option `-Dlog4j2.formatMsgNoLookups=true` or setting
+* Upgrade log4j2 to 2.17.0 for CVE-2021-44228, CVE-2021-45046 and CVE-2021-45105. This CVE only effects on JDK if JNDI
+  is opened in default. Notice, using JVM option `-Dlog4j2.formatMsgNoLookups=true` or setting
   the `LOG4J_FORMAT_MSG_NO_LOOKUPS=”true”` environment variable also avoids CVEs.
 * Upgrade maven-wrapper to 3.1.0, maven to 3.8.4 for performance improvements and ARM more native support.
 
@@ -18,6 +18,8 @@ Release Notes.
 * Bump up Armeria version to fix CVE.
 * Polish ETCD cluster config environment variables.
 * Add the analysis of metrics in Satellite MetricsService.
+* Fix `Can't split endpoint id into 2 parts` bug for endpoint. In the TCP in service mesh observability, endpoint name
+  doesn't exist in TCP traffic.
 
 #### UI
 
diff --git a/oap-server/server-receiver-plugin/skywalking-mesh-receiver-plugin/src/main/java/org/apache/skywalking/aop/server/receiver/mesh/TelemetryDataDispatcher.java b/oap-server/server-receiver-plugin/skywalking-mesh-receiver-plugin/src/main/java/org/apache/skywalking/aop/server/receiver/mesh/TelemetryDataDispatcher.java
index d3a3558..bf839c9 100644
--- a/oap-server/server-receiver-plugin/skywalking-mesh-receiver-plugin/src/main/java/org/apache/skywalking/aop/server/receiver/mesh/TelemetryDataDispatcher.java
+++ b/oap-server/server-receiver-plugin/skywalking-mesh-receiver-plugin/src/main/java/org/apache/skywalking/aop/server/receiver/mesh/TelemetryDataDispatcher.java
@@ -21,7 +21,6 @@ package org.apache.skywalking.aop.server.receiver.mesh;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.skywalking.apm.network.servicemesh.v3.Protocol;
 import org.apache.skywalking.apm.network.servicemesh.v3.ServiceMeshMetric;
-import org.apache.skywalking.oap.server.library.util.StringUtil;
 import org.apache.skywalking.oap.server.core.Const;
 import org.apache.skywalking.oap.server.core.CoreModule;
 import org.apache.skywalking.oap.server.core.analysis.NodeType;
@@ -37,6 +36,7 @@ import org.apache.skywalking.oap.server.core.source.ServiceInstanceRelation;
 import org.apache.skywalking.oap.server.core.source.ServiceRelation;
 import org.apache.skywalking.oap.server.core.source.SourceReceiver;
 import org.apache.skywalking.oap.server.library.module.ModuleManager;
+import org.apache.skywalking.oap.server.library.util.StringUtil;
 import org.apache.skywalking.oap.server.telemetry.TelemetryModule;
 import org.apache.skywalking.oap.server.telemetry.api.CounterMetrics;
 import org.apache.skywalking.oap.server.telemetry.api.HistogramMetrics;
@@ -226,6 +226,9 @@ public class TelemetryDataDispatcher {
     }
 
     private static void toEndpoint(ServiceMeshMetric.Builder metrics, long minuteTimeBucket) {
+        if (StringUtil.isEmpty(metrics.getEndpoint())) {
+            return;
+        }
         Endpoint endpoint = new Endpoint();
         endpoint.setTimeBucket(minuteTimeBucket);
         endpoint.setName(metrics.getEndpoint());