From 4a88cf38075d5e075709f47f8cd8d70e4527b9b7 Mon Sep 17 00:00:00 2001 From: aderm Date: Mon, 7 Oct 2019 16:06:34 +0800 Subject: [PATCH 1/5] =?UTF-8?q?=E6=8F=90=E5=8F=96=E5=85=AC=E5=85=B1?= =?UTF-8?q?=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jdbc/hikaricp/JDBCHikariCPClient.java | 55 ++++++++----------- 1 file changed, 23 insertions(+), 32 deletions(-) diff --git a/oap-server/server-library/library-client/src/main/java/org/apache/skywalking/oap/server/library/client/jdbc/hikaricp/JDBCHikariCPClient.java b/oap-server/server-library/library-client/src/main/java/org/apache/skywalking/oap/server/library/client/jdbc/hikaricp/JDBCHikariCPClient.java index 158e9185e8a9..5539097f1552 100644 --- a/oap-server/server-library/library-client/src/main/java/org/apache/skywalking/oap/server/library/client/jdbc/hikaricp/JDBCHikariCPClient.java +++ b/oap-server/server-library/library-client/src/main/java/org/apache/skywalking/oap/server/library/client/jdbc/hikaricp/JDBCHikariCPClient.java @@ -86,22 +86,7 @@ public boolean execute(Connection connection, String sql, Object... params) thro PreparedStatement statement = null; try { statement = connection.prepareStatement(sql); - if (params != null) { - for (int i = 0; i < params.length; i++) { - Object param = params[i]; - if (param instanceof String) { - statement.setString(i + 1, (String)param); - } else if (param instanceof Integer) { - statement.setInt(i + 1, (int)param); - } else if (param instanceof Double) { - statement.setDouble(i + 1, (double)param); - } else if (param instanceof Long) { - statement.setLong(i + 1, (long)param); - } else { - throw new JDBCClientException("Unsupported data type, type=" + param.getClass().getName()); - } - } - } + setStatementParam(statement, params); result = statement.execute(); statement.closeOnCompletion(); } catch (SQLException e) { @@ -123,22 +108,7 @@ public ResultSet executeQuery(Connection connection, String sql, Object... param PreparedStatement statement = null; try { statement = connection.prepareStatement(sql); - if (params != null) { - for (int i = 0; i < params.length; i++) { - Object param = params[i]; - if (param instanceof String) { - statement.setString(i + 1, (String)param); - } else if (param instanceof Integer) { - statement.setInt(i + 1, (int)param); - } else if (param instanceof Double) { - statement.setDouble(i + 1, (double)param); - } else if (param instanceof Long) { - statement.setLong(i + 1, (long)param); - } else { - throw new JDBCClientException("Unsupported data type, type=" + param.getClass().getName()); - } - } - } + setStatementParam(statement, params); rs = statement.executeQuery(); statement.closeOnCompletion(); } catch (SQLException e) { @@ -153,4 +123,25 @@ public ResultSet executeQuery(Connection connection, String sql, Object... param return rs; } + + private void setStatementParam(PreparedStatement statement, Object[] params) + throws SQLException, JDBCClientException { + if (params != null) { + for (int i = 0; i < params.length; i++) { + Object param = params[i]; + if (param instanceof String) { + statement.setString(i + 1, (String) param); + } else if (param instanceof Integer) { + statement.setInt(i + 1, (int) param); + } else if (param instanceof Double) { + statement.setDouble(i + 1, (double) param); + } else if (param instanceof Long) { + statement.setLong(i + 1, (long) param); + } else { + throw new JDBCClientException( + "Unsupported data type, type=" + param.getClass().getName()); + } + } + } + } } From e845494df94ac10f8e6ce89dc6b03d209ca3eb4d Mon Sep 17 00:00:00 2001 From: aderm Date: Mon, 14 Oct 2019 14:59:11 +0800 Subject: [PATCH 2/5] add postgresql sql pararm show --- .../apm/agent/core/conf/Config.java | 2 +- .../jdbc/define/StatementEnhanceInfos.java | 16 +++++++++ ...redStatementExecuteMethodsInterceptor.java | 2 +- ...reparedStatementSetterInstrumentation.java | 36 +++++++++++++++++++ .../src/main/resources/skywalking-plugin.def | 1 + apm-webapp/pom.xml | 2 +- skywalking-ui | 2 +- 7 files changed, 57 insertions(+), 4 deletions(-) create mode 100644 apm-sniffer/apm-sdk-plugin/postgresql-8.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/jdbc/postgresql/define/PgPreparedStatementSetterInstrumentation.java diff --git a/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/conf/Config.java b/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/conf/Config.java index c8e04593ce9c..9deb3920bc8d 100755 --- a/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/conf/Config.java +++ b/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/conf/Config.java @@ -263,7 +263,7 @@ public static class MySQL { * If set to true, the parameters of the sql (typically {@link java.sql.PreparedStatement}) would be * collected. */ - public static boolean TRACE_SQL_PARAMETERS = false; + public static boolean TRACE_SQL_PARAMETERS = true; /** * For the sake of performance, SkyWalking won't save the entire parameters string into the tag, but only * the first {@code SQL_PARAMETERS_MAX_LENGTH} characters. diff --git a/apm-sniffer/apm-sdk-plugin/jdbc-commons/src/main/java/org/apache/skywalking/apm/plugin/jdbc/define/StatementEnhanceInfos.java b/apm-sniffer/apm-sdk-plugin/jdbc-commons/src/main/java/org/apache/skywalking/apm/plugin/jdbc/define/StatementEnhanceInfos.java index 3ec22a4692c2..ad79296bea69 100644 --- a/apm-sniffer/apm-sdk-plugin/jdbc-commons/src/main/java/org/apache/skywalking/apm/plugin/jdbc/define/StatementEnhanceInfos.java +++ b/apm-sniffer/apm-sdk-plugin/jdbc-commons/src/main/java/org/apache/skywalking/apm/plugin/jdbc/define/StatementEnhanceInfos.java @@ -73,6 +73,22 @@ public void setParameter(int index, final Object parameter) { parameters[index] = parameter; } + public String getFullSql() { + StringBuilder resultSql = new StringBuilder(); + int index = 0; + int startPos = 0; + int findPos = 0; + while ((findPos = sql.indexOf("?", startPos)) > 0) { + resultSql.append(sql.substring(startPos, findPos)); + resultSql.append("'"); + resultSql.append(parameters[index++]); + resultSql.append("'"); + startPos = findPos + 1; + } + resultSql.append(sql.substring(startPos)); + return resultSql.toString(); + } + public Object[] getParameters() { return parameters; } diff --git a/apm-sniffer/apm-sdk-plugin/postgresql-8.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/jdbc/postgresql/PreparedStatementExecuteMethodsInterceptor.java b/apm-sniffer/apm-sdk-plugin/postgresql-8.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/jdbc/postgresql/PreparedStatementExecuteMethodsInterceptor.java index 6ad648c24253..8bafc4c1da16 100644 --- a/apm-sniffer/apm-sdk-plugin/postgresql-8.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/jdbc/postgresql/PreparedStatementExecuteMethodsInterceptor.java +++ b/apm-sniffer/apm-sdk-plugin/postgresql-8.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/jdbc/postgresql/PreparedStatementExecuteMethodsInterceptor.java @@ -45,7 +45,7 @@ public final void beforeMethod(EnhancedInstance objInst, Method method, Object[] AbstractSpan span = ContextManager.createExitSpan(buildOperationName(connectInfo, method.getName(), cacheObject.getStatementName()), connectInfo.getDatabasePeer()); Tags.DB_TYPE.set(span, "sql"); Tags.DB_INSTANCE.set(span, connectInfo.getDatabaseName()); - Tags.DB_STATEMENT.set(span, cacheObject.getSql()); + Tags.DB_STATEMENT.set(span, cacheObject.getFullSql()); span.setComponent(connectInfo.getComponent()); SpanLayer.asDB(span); diff --git a/apm-sniffer/apm-sdk-plugin/postgresql-8.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/jdbc/postgresql/define/PgPreparedStatementSetterInstrumentation.java b/apm-sniffer/apm-sdk-plugin/postgresql-8.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/jdbc/postgresql/define/PgPreparedStatementSetterInstrumentation.java new file mode 100644 index 000000000000..0a36d84254d1 --- /dev/null +++ b/apm-sniffer/apm-sdk-plugin/postgresql-8.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/jdbc/postgresql/define/PgPreparedStatementSetterInstrumentation.java @@ -0,0 +1,36 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package org.apache.skywalking.apm.plugin.jdbc.postgresql.define; + +import org.apache.skywalking.apm.agent.core.plugin.interceptor.InstanceMethodsInterceptPoint; +import org.apache.skywalking.apm.plugin.jdbc.PSSetterDefinitionOfJDBCInstrumentation; + +/** + * @author aderm + */ +public class PgPreparedStatementSetterInstrumentation extends PgPreparedStatementInstrumentation { + + @Override + public final InstanceMethodsInterceptPoint[] getInstanceMethodsInterceptPoints() { + return new InstanceMethodsInterceptPoint[] { + new PSSetterDefinitionOfJDBCInstrumentation(false) + }; + } + +} diff --git a/apm-sniffer/apm-sdk-plugin/postgresql-8.x-plugin/src/main/resources/skywalking-plugin.def b/apm-sniffer/apm-sdk-plugin/postgresql-8.x-plugin/src/main/resources/skywalking-plugin.def index c1e3e0de6f27..e744f204fcfe 100644 --- a/apm-sniffer/apm-sdk-plugin/postgresql-8.x-plugin/src/main/resources/skywalking-plugin.def +++ b/apm-sniffer/apm-sdk-plugin/postgresql-8.x-plugin/src/main/resources/skywalking-plugin.def @@ -22,3 +22,4 @@ postgresql-8.x=org.apache.skywalking.apm.plugin.jdbc.postgresql.define.AbstractJ postgresql-8.x=org.apache.skywalking.apm.plugin.jdbc.postgresql.define.PgCallableStatementInstrumentation postgresql-8.x=org.apache.skywalking.apm.plugin.jdbc.postgresql.define.PgPreparedStatementInstrumentation postgresql-8.x=org.apache.skywalking.apm.plugin.jdbc.postgresql.define.PgStatementInstrumentation +postgresql-8.x=org.apache.skywalking.apm.plugin.jdbc.postgresql.define.PgPreparedStatementSetterInstrumentation diff --git a/apm-webapp/pom.xml b/apm-webapp/pom.xml index 727acafa93c0..6856b58c437a 100644 --- a/apm-webapp/pom.xml +++ b/apm-webapp/pom.xml @@ -139,7 +139,7 @@ npm - install --registry=https://registry.npmjs.org/ + install --registry=https://registry.npm.taobao.org/ diff --git a/skywalking-ui b/skywalking-ui index e8b96044c887..70cfda2c10f3 160000 --- a/skywalking-ui +++ b/skywalking-ui @@ -1 +1 @@ -Subproject commit e8b96044c8876c67327e913833de1a61a44319c1 +Subproject commit 70cfda2c10f3e8e3ff334f1f56fc488cc89018ab From 7bbe3de9fb5611af43364e45856245ad1f222992 Mon Sep 17 00:00:00 2001 From: aderm Date: Mon, 14 Oct 2019 15:05:16 +0800 Subject: [PATCH 3/5] revert webapp npmjs site --- apm-webapp/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apm-webapp/pom.xml b/apm-webapp/pom.xml index 6856b58c437a..727acafa93c0 100644 --- a/apm-webapp/pom.xml +++ b/apm-webapp/pom.xml @@ -139,7 +139,7 @@ npm - install --registry=https://registry.npm.taobao.org/ + install --registry=https://registry.npmjs.org/ From 8a0b357a6dbab913bfd736a554fa1528c2b44f6e Mon Sep 17 00:00:00 2001 From: aderm Date: Mon, 14 Oct 2019 15:38:16 +0800 Subject: [PATCH 4/5] Add postgresql show config --- .../skywalking/apm/agent/core/conf/Config.java | 15 +++++++++++++++ .../PSSetterDefinitionOfJDBCInstrumentation.java | 7 +++++++ 2 files changed, 22 insertions(+) diff --git a/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/conf/Config.java b/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/conf/Config.java index 9deb3920bc8d..6ca753715029 100755 --- a/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/conf/Config.java +++ b/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/conf/Config.java @@ -259,6 +259,21 @@ public static class Toolkit { } public static class MySQL { + /** + * If set to true, the parameters of the sql (typically {@link java.sql.PreparedStatement}) would be + * collected. + */ + public static boolean TRACE_SQL_PARAMETERS = false; + /** + * For the sake of performance, SkyWalking won't save the entire parameters string into the tag, but only + * the first {@code SQL_PARAMETERS_MAX_LENGTH} characters. + * + * Set a negative number to save the complete parameter string to the tag. + */ + public static int SQL_PARAMETERS_MAX_LENGTH = 512; + } + + public static class PostgreSQL { /** * If set to true, the parameters of the sql (typically {@link java.sql.PreparedStatement}) would be * collected. diff --git a/apm-sniffer/apm-sdk-plugin/jdbc-commons/src/main/java/org/apache/skywalking/apm/plugin/jdbc/PSSetterDefinitionOfJDBCInstrumentation.java b/apm-sniffer/apm-sdk-plugin/jdbc-commons/src/main/java/org/apache/skywalking/apm/plugin/jdbc/PSSetterDefinitionOfJDBCInstrumentation.java index fb7a4c060b07..f7655029e0a8 100644 --- a/apm-sniffer/apm-sdk-plugin/jdbc-commons/src/main/java/org/apache/skywalking/apm/plugin/jdbc/PSSetterDefinitionOfJDBCInstrumentation.java +++ b/apm-sniffer/apm-sdk-plugin/jdbc-commons/src/main/java/org/apache/skywalking/apm/plugin/jdbc/PSSetterDefinitionOfJDBCInstrumentation.java @@ -52,6 +52,13 @@ public ElementMatcher getMethodsMatcher() { } } + if (Config.Plugin.PostgreSQL.TRACE_SQL_PARAMETERS) { + final Set setters = ignorable ? PS_IGNORABLE_SETTERS : PS_SETTERS; + for (String setter : setters) { + matcher = matcher.or(named(setter)); + } + } + return matcher; } From a4c25d72c08608100176c152877a1a9a5a9c5d7e Mon Sep 17 00:00:00 2001 From: aderm Date: Tue, 15 Oct 2019 00:16:53 +0800 Subject: [PATCH 5/5] add pg sql show --- .../apm/agent/core/conf/Config.java | 15 +++++++++++ ...SetterDefinitionOfJDBCInstrumentation.java | 7 +++++ .../jdbc/define/StatementEnhanceInfos.java | 16 +++++++++++ ...redStatementExecuteMethodsInterceptor.java | 2 +- ...reparedStatementSetterInstrumentation.java | 27 +++++++++++++++++++ .../src/main/resources/skywalking-plugin.def | 1 + 6 files changed, 67 insertions(+), 1 deletion(-) create mode 100644 apm-sniffer/apm-sdk-plugin/postgresql-8.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/jdbc/postgresql/define/PgPreparedStatementSetterInstrumentation.java diff --git a/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/conf/Config.java b/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/conf/Config.java index c8e04593ce9c..4e358b745562 100755 --- a/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/conf/Config.java +++ b/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/conf/Config.java @@ -273,6 +273,21 @@ public static class MySQL { public static int SQL_PARAMETERS_MAX_LENGTH = 512; } + public static class PostgreSQL { + /** + * If set to true, the parameters of the sql (typically {@link java.sql.PreparedStatement}) would be + * collected. + */ + public static boolean TRACE_SQL_PARAMETERS = false; + /** + * For the sake of performance, SkyWalking won't save the entire parameters string into the tag, but only + * the first {@code SQL_PARAMETERS_MAX_LENGTH} characters. + * + * Set a negative number to save the complete parameter string to the tag. + */ + public static int SQL_PARAMETERS_MAX_LENGTH = 512; + } + public static class SolrJ { /** * If true, trace all the query parameters(include deleteByIds and deleteByQuery) in Solr query request, diff --git a/apm-sniffer/apm-sdk-plugin/jdbc-commons/src/main/java/org/apache/skywalking/apm/plugin/jdbc/PSSetterDefinitionOfJDBCInstrumentation.java b/apm-sniffer/apm-sdk-plugin/jdbc-commons/src/main/java/org/apache/skywalking/apm/plugin/jdbc/PSSetterDefinitionOfJDBCInstrumentation.java index fb7a4c060b07..f7655029e0a8 100644 --- a/apm-sniffer/apm-sdk-plugin/jdbc-commons/src/main/java/org/apache/skywalking/apm/plugin/jdbc/PSSetterDefinitionOfJDBCInstrumentation.java +++ b/apm-sniffer/apm-sdk-plugin/jdbc-commons/src/main/java/org/apache/skywalking/apm/plugin/jdbc/PSSetterDefinitionOfJDBCInstrumentation.java @@ -52,6 +52,13 @@ public ElementMatcher getMethodsMatcher() { } } + if (Config.Plugin.PostgreSQL.TRACE_SQL_PARAMETERS) { + final Set setters = ignorable ? PS_IGNORABLE_SETTERS : PS_SETTERS; + for (String setter : setters) { + matcher = matcher.or(named(setter)); + } + } + return matcher; } diff --git a/apm-sniffer/apm-sdk-plugin/jdbc-commons/src/main/java/org/apache/skywalking/apm/plugin/jdbc/define/StatementEnhanceInfos.java b/apm-sniffer/apm-sdk-plugin/jdbc-commons/src/main/java/org/apache/skywalking/apm/plugin/jdbc/define/StatementEnhanceInfos.java index 3ec22a4692c2..ad79296bea69 100644 --- a/apm-sniffer/apm-sdk-plugin/jdbc-commons/src/main/java/org/apache/skywalking/apm/plugin/jdbc/define/StatementEnhanceInfos.java +++ b/apm-sniffer/apm-sdk-plugin/jdbc-commons/src/main/java/org/apache/skywalking/apm/plugin/jdbc/define/StatementEnhanceInfos.java @@ -73,6 +73,22 @@ public void setParameter(int index, final Object parameter) { parameters[index] = parameter; } + public String getFullSql() { + StringBuilder resultSql = new StringBuilder(); + int index = 0; + int startPos = 0; + int findPos = 0; + while ((findPos = sql.indexOf("?", startPos)) > 0) { + resultSql.append(sql.substring(startPos, findPos)); + resultSql.append("'"); + resultSql.append(parameters[index++]); + resultSql.append("'"); + startPos = findPos + 1; + } + resultSql.append(sql.substring(startPos)); + return resultSql.toString(); + } + public Object[] getParameters() { return parameters; } diff --git a/apm-sniffer/apm-sdk-plugin/postgresql-8.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/jdbc/postgresql/PreparedStatementExecuteMethodsInterceptor.java b/apm-sniffer/apm-sdk-plugin/postgresql-8.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/jdbc/postgresql/PreparedStatementExecuteMethodsInterceptor.java index 6ad648c24253..8bafc4c1da16 100644 --- a/apm-sniffer/apm-sdk-plugin/postgresql-8.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/jdbc/postgresql/PreparedStatementExecuteMethodsInterceptor.java +++ b/apm-sniffer/apm-sdk-plugin/postgresql-8.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/jdbc/postgresql/PreparedStatementExecuteMethodsInterceptor.java @@ -45,7 +45,7 @@ public final void beforeMethod(EnhancedInstance objInst, Method method, Object[] AbstractSpan span = ContextManager.createExitSpan(buildOperationName(connectInfo, method.getName(), cacheObject.getStatementName()), connectInfo.getDatabasePeer()); Tags.DB_TYPE.set(span, "sql"); Tags.DB_INSTANCE.set(span, connectInfo.getDatabaseName()); - Tags.DB_STATEMENT.set(span, cacheObject.getSql()); + Tags.DB_STATEMENT.set(span, cacheObject.getFullSql()); span.setComponent(connectInfo.getComponent()); SpanLayer.asDB(span); diff --git a/apm-sniffer/apm-sdk-plugin/postgresql-8.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/jdbc/postgresql/define/PgPreparedStatementSetterInstrumentation.java b/apm-sniffer/apm-sdk-plugin/postgresql-8.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/jdbc/postgresql/define/PgPreparedStatementSetterInstrumentation.java new file mode 100644 index 000000000000..bd86486ffb1a --- /dev/null +++ b/apm-sniffer/apm-sdk-plugin/postgresql-8.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/jdbc/postgresql/define/PgPreparedStatementSetterInstrumentation.java @@ -0,0 +1,27 @@ +/* + * + * Copyright (C) 2016-2017 HIIRI Inc.All Rights Reserved. + * + * ProjectName:apm + * + * Description: + * + * History: + * Version Author Date Operation + * 1.0 xuzs 2019/10/15 上午12:03 Create + */ +package org.apache.skywalking.apm.plugin.jdbc.postgresql.define; + +import org.apache.skywalking.apm.agent.core.plugin.interceptor.InstanceMethodsInterceptPoint; +import org.apache.skywalking.apm.plugin.jdbc.PSSetterDefinitionOfJDBCInstrumentation; + +public class PgPreparedStatementSetterInstrumentation extends PgPreparedStatementInstrumentation { + + @Override + public final InstanceMethodsInterceptPoint[] getInstanceMethodsInterceptPoints() { + return new InstanceMethodsInterceptPoint[] { + new PSSetterDefinitionOfJDBCInstrumentation(false) + }; + } + +} diff --git a/apm-sniffer/apm-sdk-plugin/postgresql-8.x-plugin/src/main/resources/skywalking-plugin.def b/apm-sniffer/apm-sdk-plugin/postgresql-8.x-plugin/src/main/resources/skywalking-plugin.def index c1e3e0de6f27..e744f204fcfe 100644 --- a/apm-sniffer/apm-sdk-plugin/postgresql-8.x-plugin/src/main/resources/skywalking-plugin.def +++ b/apm-sniffer/apm-sdk-plugin/postgresql-8.x-plugin/src/main/resources/skywalking-plugin.def @@ -22,3 +22,4 @@ postgresql-8.x=org.apache.skywalking.apm.plugin.jdbc.postgresql.define.AbstractJ postgresql-8.x=org.apache.skywalking.apm.plugin.jdbc.postgresql.define.PgCallableStatementInstrumentation postgresql-8.x=org.apache.skywalking.apm.plugin.jdbc.postgresql.define.PgPreparedStatementInstrumentation postgresql-8.x=org.apache.skywalking.apm.plugin.jdbc.postgresql.define.PgStatementInstrumentation +postgresql-8.x=org.apache.skywalking.apm.plugin.jdbc.postgresql.define.PgPreparedStatementSetterInstrumentation