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

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


The following commit(s) were added to refs/heads/main by this push:
     new a4c3c85258 Add tags `mq.message.keys` and `mq.message.tags` for 
RocketMQ producer span (#404)
a4c3c85258 is described below

commit a4c3c85258a7ebac11e95c6d4592822aa5661327
Author: Stephen Ni <[email protected]>
AuthorDate: Sat Dec 3 23:46:05 2022 +0800

    Add tags `mq.message.keys` and `mq.message.tags` for RocketMQ producer span 
(#404)
---
 CHANGES.md                                                    |  1 +
 .../apm/plugin/rocketMQ/v3/MessageSendInterceptor.java        |  9 +++++++++
 .../apm/plugin/rocketMQ/v4/MessageSendInterceptor.java        |  9 +++++++++
 .../scenarios/rocketmq-scenario/config/expectedData.yaml      |  2 ++
 test/plugin/scenarios/rocketmq-scenario/pom.xml               |  2 ++
 .../apm/testcase/rocketmq/controller/CaseController.java      | 11 ++---------
 6 files changed, 25 insertions(+), 9 deletions(-)

diff --git a/CHANGES.md b/CHANGES.md
index 376dbd9ee2..ab70ca9621 100644
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -16,6 +16,7 @@ Release Notes.
 * Report the agent version to OAP as an instance attribute
 * Polish jedis-4.x-plugin to change command to lowercase, which is consistent 
with jedis-2.x-3.x-plugin
 * Add 
micronauthttpclient,micronauthttpserver,memcached,ehcache,guavacache,jedis,redisson
 plugin config properties to agent.config
+* Add tags `mq.message.keys` and `mq.message.tags` for RocketMQ producer span
 
 #### Documentation
 
diff --git 
a/apm-sniffer/apm-sdk-plugin/rocketMQ-3.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/rocketMQ/v3/MessageSendInterceptor.java
 
b/apm-sniffer/apm-sdk-plugin/rocketMQ-3.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/rocketMQ/v3/MessageSendInterceptor.java
index 2313bcf49d..42898d3577 100644
--- 
a/apm-sniffer/apm-sdk-plugin/rocketMQ-3.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/rocketMQ/v3/MessageSendInterceptor.java
+++ 
b/apm-sniffer/apm-sdk-plugin/rocketMQ-3.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/rocketMQ/v3/MessageSendInterceptor.java
@@ -59,6 +59,15 @@ public class MessageSendInterceptor implements 
InstanceMethodsAroundInterceptor
         span.setComponent(ComponentsDefine.ROCKET_MQ_PRODUCER);
         Tags.MQ_BROKER.set(span, (String) allArguments[0]);
         Tags.MQ_TOPIC.set(span, message.getTopic());
+        String keys = message.getKeys();
+        if (StringUtil.isNotBlank(keys)) {
+            span.tag(Tags.ofKey("mq.message.keys"), keys);
+        }
+        String tags = message.getTags();
+        if (StringUtil.isNotBlank(tags)) {
+            span.tag(Tags.ofKey("mq.message.tags"), tags);
+        }
+
         contextCarrier.extensionInjector().injectSendingTimestamp();
         SpanLayer.asMQ(span);
 
diff --git 
a/apm-sniffer/apm-sdk-plugin/rocketMQ-4.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/rocketMQ/v4/MessageSendInterceptor.java
 
b/apm-sniffer/apm-sdk-plugin/rocketMQ-4.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/rocketMQ/v4/MessageSendInterceptor.java
index b27e438f6b..acb175b747 100644
--- 
a/apm-sniffer/apm-sdk-plugin/rocketMQ-4.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/rocketMQ/v4/MessageSendInterceptor.java
+++ 
b/apm-sniffer/apm-sdk-plugin/rocketMQ-4.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/rocketMQ/v4/MessageSendInterceptor.java
@@ -59,6 +59,15 @@ public class MessageSendInterceptor implements 
InstanceMethodsAroundInterceptor
         span.setComponent(ComponentsDefine.ROCKET_MQ_PRODUCER);
         Tags.MQ_BROKER.set(span, (String) allArguments[0]);
         Tags.MQ_TOPIC.set(span, message.getTopic());
+        String keys = message.getKeys();
+        if (StringUtil.isNotBlank(keys)) {
+            span.tag(Tags.ofKey("mq.message.keys"), keys);
+        }
+        String tags = message.getTags();
+        if (StringUtil.isNotBlank(tags)) {
+            span.tag(Tags.ofKey("mq.message.tags"), tags);
+        }
+
         contextCarrier.extensionInjector().injectSendingTimestamp();
         SpanLayer.asMQ(span);
 
diff --git a/test/plugin/scenarios/rocketmq-scenario/config/expectedData.yaml 
b/test/plugin/scenarios/rocketmq-scenario/config/expectedData.yaml
index 3d669b5f2d..9eeff18822 100644
--- a/test/plugin/scenarios/rocketmq-scenario/config/expectedData.yaml
+++ b/test/plugin/scenarios/rocketmq-scenario/config/expectedData.yaml
@@ -32,6 +32,8 @@ segmentItems:
             tags:
               - {key: mq.broker, value: not null}
               - {key: mq.topic, value: TopicTest}
+              - {key: mq.message.keys, value: KeyA}
+              - {key: mq.message.tags, value: TagA}
             skipAnalysis: 'false'
           - operationName: GET:/case/rocketmq-scenario
             parentSpanId: -1
diff --git a/test/plugin/scenarios/rocketmq-scenario/pom.xml 
b/test/plugin/scenarios/rocketmq-scenario/pom.xml
index 71cec225a5..91358a0001 100644
--- a/test/plugin/scenarios/rocketmq-scenario/pom.xml
+++ b/test/plugin/scenarios/rocketmq-scenario/pom.xml
@@ -30,6 +30,7 @@
     <properties>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
         <compiler.version>1.8</compiler.version>
+        <maven-compiler-plugin.version>3.8.1</maven-compiler-plugin.version>
         <test.framework.version>4.9.4</test.framework.version>
         <spring.boot.version>2.1.6.RELEASE</spring.boot.version>
         <lombok.version>1.18.20</lombok.version>
@@ -97,6 +98,7 @@
             </plugin>
             <plugin>
                 <artifactId>maven-compiler-plugin</artifactId>
+                <version>${maven-compiler-plugin.version}</version>
                 <configuration>
                     <source>${compiler.version}</source>
                     <target>${compiler.version}</target>
diff --git 
a/test/plugin/scenarios/rocketmq-scenario/src/main/java/test/apache/skywalking/apm/testcase/rocketmq/controller/CaseController.java
 
b/test/plugin/scenarios/rocketmq-scenario/src/main/java/test/apache/skywalking/apm/testcase/rocketmq/controller/CaseController.java
index 3ce019c59d..ab96fd6a7c 100644
--- 
a/test/plugin/scenarios/rocketmq-scenario/src/main/java/test/apache/skywalking/apm/testcase/rocketmq/controller/CaseController.java
+++ 
b/test/plugin/scenarios/rocketmq-scenario/src/main/java/test/apache/skywalking/apm/testcase/rocketmq/controller/CaseController.java
@@ -59,9 +59,10 @@ public class CaseController {
 
             // send msg
             Message msg = new Message("TopicTest",
-                    "TagA",
                     ("Hello RocketMQ sendMsg " + new 
Date()).getBytes(RemotingHelper.DEFAULT_CHARSET)
             );
+            msg.setTags("TagA");
+            msg.setKeys("KeyA");
             SendResult sendResult = producer.send(msg);
             System.out.printf("%s send msg: %s%n", new Date(), sendResult);
             
@@ -102,14 +103,6 @@ public class CaseController {
         producer.setNamesrvAddr(namerServer);
         producer.start();
         System.out.printf("HealthCheck Provider Started.%n");
-
-        // send msg
-        Message msg = new Message("HealthCheckTopicTest",
-                "TagA",
-                ("Hello RocketMQ sendMsg " + new 
Date()).getBytes(RemotingHelper.DEFAULT_CHARSET)
-        );
-        SendResult sendResult = producer.send(msg);
-        System.out.printf("healthCheck %s send msg: %s%n", new Date(), 
sendResult);
         return SUCCESS;
     }
 

Reply via email to