From 37a880e903e60e1088f79d71962388d1a6b4160e Mon Sep 17 00:00:00 2001 From: lvxiao Date: Fri, 23 Dec 2022 13:09:52 +0800 Subject: [PATCH] [fix] In the higher version of mysql-connector-java 8x, there is an error in the value of db.instance. (#427) --- CHANGES.md | 1 + .../v8/define/ConnectionInstrumentation.java | 16 ++++++++++++++++ 2 files changed, 17 insertions(+) diff --git a/CHANGES.md b/CHANGES.md index 9c4cdb3b9..717dae383 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -19,6 +19,7 @@ Release Notes. * Add [Micrometer Observation](https://github.com/micrometer-metrics/micrometer/) support * Add tags `mq.message.keys` and `mq.message.tags` for RocketMQ producer span * Clean the trace context which injected into Pulsar MessageImpl after the instance recycled +* Fix In the higher version of mysql-connector-java 8x, there is an error in the value of db.instance. #### Documentation diff --git a/apm-sniffer/apm-sdk-plugin/mysql-8.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/jdbc/mysql/v8/define/ConnectionInstrumentation.java b/apm-sniffer/apm-sdk-plugin/mysql-8.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/jdbc/mysql/v8/define/ConnectionInstrumentation.java index c464e2b2a..a79c92251 100644 --- a/apm-sniffer/apm-sdk-plugin/mysql-8.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/jdbc/mysql/v8/define/ConnectionInstrumentation.java +++ b/apm-sniffer/apm-sdk-plugin/mysql-8.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/jdbc/mysql/v8/define/ConnectionInstrumentation.java @@ -115,6 +115,22 @@ public class ConnectionInstrumentation extends AbstractMysqlInstrumentation { return org.apache.skywalking.apm.plugin.jdbc.mysql.Constants.SET_CATALOG_INTERCEPTOR; } + @Override + public boolean isOverrideArgs() { + return false; + } + }, + new InstanceMethodsInterceptPoint() { + @Override + public ElementMatcher getMethodsMatcher() { + return named("setDatabase"); + } + + @Override + public String getMethodsInterceptor() { + return org.apache.skywalking.apm.plugin.jdbc.mysql.Constants.SET_CATALOG_INTERCEPTOR; + } + @Override public boolean isOverrideArgs() { return false;