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

kezhenxu94 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/skywalking.git


The following commit(s) were added to refs/heads/master by this push:
     new 735ee00b99 Mesh: fix only last rule works when multiple rules are 
defined in metadata-service-mapping.yaml (#9205)
735ee00b99 is described below

commit 735ee00b991b34a73a747802de107e098aa86869
Author: kezhenxu94 <[email protected]>
AuthorDate: Sat Jun 11 21:06:11 2022 +0800

    Mesh: fix only last rule works when multiple rules are defined in 
metadata-service-mapping.yaml (#9205)
---
 docs/en/changes/changes.md                                     |  1 +
 .../oap/server/receiver/envoy/als/mx/FieldsHelper.java         |  1 +
 .../oap/server/receiver/envoy/als/mx/FieldsHelperTest.java     | 10 +++++++---
 .../src/test/resources/field-helper.msg                        |  2 +-
 4 files changed, 10 insertions(+), 4 deletions(-)

diff --git a/docs/en/changes/changes.md b/docs/en/changes/changes.md
index 5a0a5d92b5..4f468592aa 100644
--- a/docs/en/changes/changes.md
+++ b/docs/en/changes/changes.md
@@ -6,6 +6,7 @@
 
 * Add more entities for Zipkin to improve performance.
 * ElasticSearch: scroll id should be updated when scrolling as it may change.
+* Mesh: fix only last rule works when multiple rules are defined in 
metadata-service-mapping.yaml.
 
 #### Documentation
 
diff --git 
a/oap-server/server-receiver-plugin/envoy-metrics-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/envoy/als/mx/FieldsHelper.java
 
b/oap-server/server-receiver-plugin/envoy-metrics-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/envoy/als/mx/FieldsHelper.java
index 567870015b..29b227ddac 100644
--- 
a/oap-server/server-receiver-plugin/envoy-metrics-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/envoy/als/mx/FieldsHelper.java
+++ 
b/oap-server/server-receiver-plugin/envoy-metrics-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/envoy/als/mx/FieldsHelper.java
@@ -168,6 +168,7 @@ public enum FieldsHelper {
                         continue;
                     }
                     values[i] = value.getStringValue();
+                    break;
                 }
             }
             final String value = 
Strings.lenientFormat(serviceNameFormat.format, values);
diff --git 
a/oap-server/server-receiver-plugin/envoy-metrics-receiver-plugin/src/test/java/org/apache/skywalking/oap/server/receiver/envoy/als/mx/FieldsHelperTest.java
 
b/oap-server/server-receiver-plugin/envoy-metrics-receiver-plugin/src/test/java/org/apache/skywalking/oap/server/receiver/envoy/als/mx/FieldsHelperTest.java
index 448b343512..d456cc4da4 100644
--- 
a/oap-server/server-receiver-plugin/envoy-metrics-receiver-plugin/src/test/java/org/apache/skywalking/oap/server/receiver/envoy/als/mx/FieldsHelperTest.java
+++ 
b/oap-server/server-receiver-plugin/envoy-metrics-receiver-plugin/src/test/java/org/apache/skywalking/oap/server/receiver/envoy/als/mx/FieldsHelperTest.java
@@ -32,8 +32,7 @@ import org.junit.runners.Parameterized;
 import org.powermock.reflect.Whitebox;
 
 import static 
org.apache.skywalking.oap.server.receiver.envoy.als.k8s.K8SALSServiceMeshHTTPAnalysisTest.getResourceAsStream;
-import static org.hamcrest.CoreMatchers.equalTo;
-import static org.junit.Assert.assertThat;
+import static org.assertj.core.api.Assertions.assertThat;
 
 @RunWith(Parameterized.class)
 public class FieldsHelperTest {
@@ -50,6 +49,11 @@ public class FieldsHelperTest {
     @Parameterized.Parameters(name = "{index}: {0}")
     public static Collection<Object[]> data() {
         return Arrays.asList(new Object[][] {
+            {
+                "serviceName: 
${LABELS.\"service.istio.io/canonical-name\",LABELS.\"app.kubernetes.io/name\",LABELS.app}\nserviceInstanceName:
 ${NAME}",
+                "productpage",
+                "productpage-v1-65576bb7bf-4mzsp"
+            },
             {
                 "serviceName: 
${LABELS.\"service.istio.io/canonical-name\"}\nserviceInstanceName: ${NAME}",
                 "productpage",
@@ -99,7 +103,7 @@ public class FieldsHelperTest {
                 requestBuilder.getIdentifier().getNode().getMetadata(),
                 info
             );
-            assertThat(info.getServiceName(), equalTo(expectedServiceName));
+            assertThat(info.getServiceName()).isEqualTo(expectedServiceName);
         }
     }
 }
diff --git 
a/oap-server/server-receiver-plugin/envoy-metrics-receiver-plugin/src/test/resources/field-helper.msg
 
b/oap-server/server-receiver-plugin/envoy-metrics-receiver-plugin/src/test/resources/field-helper.msg
index fe5132ddac..d1901fb3c2 100644
--- 
a/oap-server/server-receiver-plugin/envoy-metrics-receiver-plugin/src/test/resources/field-helper.msg
+++ 
b/oap-server/server-receiver-plugin/envoy-metrics-receiver-plugin/src/test/resources/field-helper.msg
@@ -60,7 +60,7 @@
           "service.istio.io/canonical-name": "productpage",
           "version": "v1",
           "security.istio.io/tlsMode": "istio",
-          "app": "productpage",
+          "app": "whatever-differ-from-productpage",
           "service.istio.io/canonical-revision": "v1",
           "pod-template-hash": "65576bb7bf",
           "istio.io/rev": "default"

Reply via email to