diff --git a/CHANGES.md b/CHANGES.md index eefe475bcb..f9dcab4ab5 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -11,6 +11,7 @@ Release Notes. * Support collecting dubbo thread pool metrics * Bump up byte-buddy to 1.12.19 * Upgrade agent test tools +* [Breaking Change] Compatible with 3.x and 4.x RabbitMQ Client, rename `rabbitmq-5.x-plugin` to `rabbitmq-plugin` #### Documentation diff --git a/apm-sniffer/apm-sdk-plugin/pom.xml b/apm-sniffer/apm-sdk-plugin/pom.xml index e124d77fdb..9105865094 100644 --- a/apm-sniffer/apm-sdk-plugin/pom.xml +++ b/apm-sniffer/apm-sdk-plugin/pom.xml @@ -70,7 +70,7 @@ elasticsearch-6.x-plugin elasticsearch-7.x-plugin undertow-plugins - rabbitmq-5.x-plugin + rabbitmq-plugin dubbo-conflict-patch canal-1.x-plugin dubbo-2.7.x-plugin diff --git a/apm-sniffer/apm-sdk-plugin/rabbitmq-5.x-plugin/pom.xml b/apm-sniffer/apm-sdk-plugin/rabbitmq-plugin/pom.xml similarity index 95% rename from apm-sniffer/apm-sdk-plugin/rabbitmq-5.x-plugin/pom.xml rename to apm-sniffer/apm-sdk-plugin/rabbitmq-plugin/pom.xml index b86547d6d3..ff1143aecd 100644 --- a/apm-sniffer/apm-sdk-plugin/rabbitmq-5.x-plugin/pom.xml +++ b/apm-sniffer/apm-sdk-plugin/rabbitmq-plugin/pom.xml @@ -25,8 +25,8 @@ 4.0.0 - apm-rabbitmq-5.x-plugin - rabbitmq-5.x-plugin + apm-rabbitmq-plugin + rabbitmq-plugin jar diff --git a/apm-sniffer/apm-sdk-plugin/rabbitmq-5.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/rabbitmq/ChannelNConstructorInterceptor.java b/apm-sniffer/apm-sdk-plugin/rabbitmq-plugin/src/main/java/org/apache/skywalking/apm/plugin/rabbitmq/ChannelNConstructorInterceptor.java similarity index 100% rename from apm-sniffer/apm-sdk-plugin/rabbitmq-5.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/rabbitmq/ChannelNConstructorInterceptor.java rename to apm-sniffer/apm-sdk-plugin/rabbitmq-plugin/src/main/java/org/apache/skywalking/apm/plugin/rabbitmq/ChannelNConstructorInterceptor.java diff --git a/apm-sniffer/apm-sdk-plugin/rabbitmq-5.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/rabbitmq/RabbitMQConsumerInterceptor.java b/apm-sniffer/apm-sdk-plugin/rabbitmq-plugin/src/main/java/org/apache/skywalking/apm/plugin/rabbitmq/RabbitMQConsumerInterceptor.java similarity index 100% rename from apm-sniffer/apm-sdk-plugin/rabbitmq-5.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/rabbitmq/RabbitMQConsumerInterceptor.java rename to apm-sniffer/apm-sdk-plugin/rabbitmq-plugin/src/main/java/org/apache/skywalking/apm/plugin/rabbitmq/RabbitMQConsumerInterceptor.java diff --git a/apm-sniffer/apm-sdk-plugin/rabbitmq-5.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/rabbitmq/RabbitMQProducerInterceptor.java b/apm-sniffer/apm-sdk-plugin/rabbitmq-plugin/src/main/java/org/apache/skywalking/apm/plugin/rabbitmq/RabbitMQProducerInterceptor.java similarity index 100% rename from apm-sniffer/apm-sdk-plugin/rabbitmq-5.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/rabbitmq/RabbitMQProducerInterceptor.java rename to apm-sniffer/apm-sdk-plugin/rabbitmq-plugin/src/main/java/org/apache/skywalking/apm/plugin/rabbitmq/RabbitMQProducerInterceptor.java diff --git a/apm-sniffer/apm-sdk-plugin/rabbitmq-5.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/rabbitmq/TracerConsumer.java b/apm-sniffer/apm-sdk-plugin/rabbitmq-plugin/src/main/java/org/apache/skywalking/apm/plugin/rabbitmq/TracerConsumer.java similarity index 100% rename from apm-sniffer/apm-sdk-plugin/rabbitmq-5.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/rabbitmq/TracerConsumer.java rename to apm-sniffer/apm-sdk-plugin/rabbitmq-plugin/src/main/java/org/apache/skywalking/apm/plugin/rabbitmq/TracerConsumer.java diff --git a/apm-sniffer/apm-sdk-plugin/rabbitmq-5.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/rabbitmq/define/ChannelNInstrumentation.java b/apm-sniffer/apm-sdk-plugin/rabbitmq-plugin/src/main/java/org/apache/skywalking/apm/plugin/rabbitmq/define/ChannelNInstrumentation.java similarity index 97% rename from apm-sniffer/apm-sdk-plugin/rabbitmq-5.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/rabbitmq/define/ChannelNInstrumentation.java rename to apm-sniffer/apm-sdk-plugin/rabbitmq-plugin/src/main/java/org/apache/skywalking/apm/plugin/rabbitmq/define/ChannelNInstrumentation.java index 5beceafbd4..86737aa6fb 100644 --- a/apm-sniffer/apm-sdk-plugin/rabbitmq-5.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/rabbitmq/define/ChannelNInstrumentation.java +++ b/apm-sniffer/apm-sdk-plugin/rabbitmq-plugin/src/main/java/org/apache/skywalking/apm/plugin/rabbitmq/define/ChannelNInstrumentation.java @@ -45,7 +45,7 @@ public ConstructorInterceptPoint[] getConstructorsInterceptPoints() { new ConstructorInterceptPoint() { @Override public ElementMatcher getConstructorMatcher() { - return takesArgumentWithType(3, "com.rabbitmq.client.MetricsCollector"); + return takesArgumentWithType(0, "com.rabbitmq.client.impl.AMQConnection"); } @Override diff --git a/apm-sniffer/apm-sdk-plugin/rabbitmq-5.x-plugin/src/main/resources/skywalking-plugin.def b/apm-sniffer/apm-sdk-plugin/rabbitmq-plugin/src/main/resources/skywalking-plugin.def similarity index 90% rename from apm-sniffer/apm-sdk-plugin/rabbitmq-5.x-plugin/src/main/resources/skywalking-plugin.def rename to apm-sniffer/apm-sdk-plugin/rabbitmq-plugin/src/main/resources/skywalking-plugin.def index c4987531b7..e48affc8f9 100644 --- a/apm-sniffer/apm-sdk-plugin/rabbitmq-5.x-plugin/src/main/resources/skywalking-plugin.def +++ b/apm-sniffer/apm-sdk-plugin/rabbitmq-plugin/src/main/resources/skywalking-plugin.def @@ -14,4 +14,4 @@ # See the License for the specific language governing permissions and # limitations under the License. -rabbitmq-5.x=org.apache.skywalking.apm.plugin.rabbitmq.define.ChannelNInstrumentation \ No newline at end of file +rabbitmq=org.apache.skywalking.apm.plugin.rabbitmq.define.ChannelNInstrumentation \ No newline at end of file diff --git a/apm-sniffer/apm-sdk-plugin/rabbitmq-5.x-plugin/src/test/java/org/apache/skywalking/apm/plugin/rabbitmq/ChannelNConstructorInterceptorTest.java b/apm-sniffer/apm-sdk-plugin/rabbitmq-plugin/src/test/java/org/apache/skywalking/apm/plugin/rabbitmq/ChannelNConstructorInterceptorTest.java similarity index 100% rename from apm-sniffer/apm-sdk-plugin/rabbitmq-5.x-plugin/src/test/java/org/apache/skywalking/apm/plugin/rabbitmq/ChannelNConstructorInterceptorTest.java rename to apm-sniffer/apm-sdk-plugin/rabbitmq-plugin/src/test/java/org/apache/skywalking/apm/plugin/rabbitmq/ChannelNConstructorInterceptorTest.java diff --git a/apm-sniffer/apm-sdk-plugin/rabbitmq-5.x-plugin/src/test/java/org/apache/skywalking/apm/plugin/rabbitmq/RabbitMQConsumerInterceptorTest.java b/apm-sniffer/apm-sdk-plugin/rabbitmq-plugin/src/test/java/org/apache/skywalking/apm/plugin/rabbitmq/RabbitMQConsumerInterceptorTest.java similarity index 100% rename from apm-sniffer/apm-sdk-plugin/rabbitmq-5.x-plugin/src/test/java/org/apache/skywalking/apm/plugin/rabbitmq/RabbitMQConsumerInterceptorTest.java rename to apm-sniffer/apm-sdk-plugin/rabbitmq-plugin/src/test/java/org/apache/skywalking/apm/plugin/rabbitmq/RabbitMQConsumerInterceptorTest.java diff --git a/apm-sniffer/apm-sdk-plugin/rabbitmq-5.x-plugin/src/test/java/org/apache/skywalking/apm/plugin/rabbitmq/RabbitMQProducerInterceptorTest.java b/apm-sniffer/apm-sdk-plugin/rabbitmq-plugin/src/test/java/org/apache/skywalking/apm/plugin/rabbitmq/RabbitMQProducerInterceptorTest.java similarity index 100% rename from apm-sniffer/apm-sdk-plugin/rabbitmq-5.x-plugin/src/test/java/org/apache/skywalking/apm/plugin/rabbitmq/RabbitMQProducerInterceptorTest.java rename to apm-sniffer/apm-sdk-plugin/rabbitmq-plugin/src/test/java/org/apache/skywalking/apm/plugin/rabbitmq/RabbitMQProducerInterceptorTest.java diff --git a/docs/en/setup/service-agent/java-agent/Plugin-list.md b/docs/en/setup/service-agent/java-agent/Plugin-list.md index 706f040ce8..748cd380cc 100644 --- a/docs/en/setup/service-agent/java-agent/Plugin-list.md +++ b/docs/en/setup/service-agent/java-agent/Plugin-list.md @@ -75,7 +75,7 @@ - pulsar-2.2-2.7 - quasar - quartz-scheduler-2.x -- rabbitmq-5.x +- rabbitmq - redisson-3.x - resteasy-server-3.x - resteasy-server-4.x diff --git a/docs/en/setup/service-agent/java-agent/Supported-list.md b/docs/en/setup/service-agent/java-agent/Supported-list.md index 0d43e9424e..1d616863ae 100644 --- a/docs/en/setup/service-agent/java-agent/Supported-list.md +++ b/docs/en/setup/service-agent/java-agent/Supported-list.md @@ -69,7 +69,7 @@ metrics based on the tracing data. * [Kafka](http://kafka.apache.org) 0.11.0.0 -> 2.8.0 * [Spring-Kafka](https://github.com/spring-projects/spring-kafka) Spring Kafka Consumer 1.3.x -> 2.3.x (2.0.x and 2.1.x not tested and not recommended by [the official document](https://spring.io/projects/spring-kafka)) * [ActiveMQ](https://github.com/apache/activemq) 5.10.0 -> 5.15.4 - * [RabbitMQ](https://www.rabbitmq.com/) 5.x + * [RabbitMQ](https://www.rabbitmq.com/) 3.x-> 5.x * [Pulsar](http://pulsar.apache.org) 2.2.x -> 2.9.x * [NATS](https://github.com/nats-io/nats.java) 2.14.x -> 2.15.x * Aliyun ONS 1.x (Optional¹) diff --git a/test/plugin/scenarios/rabbitmq-scenario/src/main/java/org/apache/skywalking/apm/testcase/rabbitmq/controller/CaseController.java b/test/plugin/scenarios/rabbitmq-scenario/src/main/java/org/apache/skywalking/apm/testcase/rabbitmq/controller/CaseController.java index 817c6e400f..12c62288ac 100644 --- a/test/plugin/scenarios/rabbitmq-scenario/src/main/java/org/apache/skywalking/apm/testcase/rabbitmq/controller/CaseController.java +++ b/test/plugin/scenarios/rabbitmq-scenario/src/main/java/org/apache/skywalking/apm/testcase/rabbitmq/controller/CaseController.java @@ -22,7 +22,10 @@ import com.rabbitmq.client.Channel; import com.rabbitmq.client.Connection; import com.rabbitmq.client.ConnectionFactory; -import com.rabbitmq.client.DeliverCallback; +import com.rabbitmq.client.DefaultConsumer; +import com.rabbitmq.client.Envelope; + +import java.io.IOException; import java.nio.charset.StandardCharsets; import java.util.concurrent.CountDownLatch; import java.util.concurrent.TimeUnit; @@ -78,13 +81,16 @@ public String rabbitmqCase() { LOGGER.info("Message has been published-------------->" + MESSAGE); final CountDownLatch waitForConsume = new CountDownLatch(1); - DeliverCallback deliverCallback = (consumerTag, delivery) -> { - String message = new String(delivery.getBody(), StandardCharsets.UTF_8); - LOGGER.info("Message received-------------->" + message); - waitForConsume.countDown(); + DefaultConsumer callback = new DefaultConsumer(channel) { + @Override + public void handleDelivery(String consumerTag, Envelope envelope, AMQP.BasicProperties properties, byte[] body) throws IOException { + String message = new String(body, "UTF-8"); + LOGGER.info("Message received-------------->" + message); + waitForConsume.countDown(); + } }; - channel.basicConsume(QUEUE_NAME, true, deliverCallback, consumerTag -> { - }); + + channel.basicConsume(QUEUE_NAME, true, callback); waitForConsume.await(5000L, TimeUnit.MILLISECONDS); LOGGER.info("Message Consumed-------------->"); diff --git a/test/plugin/scenarios/rabbitmq-scenario/support-version.list b/test/plugin/scenarios/rabbitmq-scenario/support-version.list index 0c77c7a519..a42c4d4e14 100644 --- a/test/plugin/scenarios/rabbitmq-scenario/support-version.list +++ b/test/plugin/scenarios/rabbitmq-scenario/support-version.list @@ -14,9 +14,9 @@ # See the License for the specific language governing permissions and # limitations under the License. -5.5.1 -5.4.3 -5.3.0 -5.2.0 -5.1.2 +5.16.0 5.0.0 +4.12.0 +4.0.0 +3.6.6 +3.0.0