From 8a322e85596abf5c1412237ff044543e0d71b7da Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=90=B4=E6=99=9F=20Wu=20Sheng?= Date: Thu, 23 Dec 2021 09:56:33 +0800 Subject: [PATCH] Fix `Can't split endpoint id into 2 parts` bug for endpoint ID in the mesh's TCP case. (#8327) --- 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 c7c2676b9e..11530c091b 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 ID. 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 d3a3558cf0..bf839c9e7f 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()); -- GitLab