You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by me...@apache.org on 2020/12/09 08:04:31 UTC
[shardingsphere] branch master updated: metrics refactor (#8544)
This is an automated email from the ASF dual-hosted git repository.
menghaoran pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shardingsphere.git
The following commit(s) were added to refs/heads/master by this push:
new f9a80ae metrics refactor (#8544)
f9a80ae is described below
commit f9a80ae6353e705aa2d43dfbaf20dba086844c62
Author: xiaoyu <54...@qq.com>
AuthorDate: Wed Dec 9 16:04:17 2020 +0800
metrics refactor (#8544)
---
.../agent/core/ShardingSphereTransformer.java | 6 ++--
.../agent/core/common/AgentPathBuilder.java | 6 ++--
.../agent/core/plugin/AgentPluginLoader.java | 37 ++++++++++----------
.../advice/ConstructorMethodInterceptor.java | 2 +-
.../plugin/advice/MethodAroundInterceptor.java | 39 +++++++++++-----------
.../core/plugin/advice/MethodInvocationResult.java | 26 +++------------
.../core/plugin/advice/OverrideArgsInvoker.java | 3 +-
.../advice/StaticMethodAroundInterceptor.java | 35 +++++++++----------
.../api/prometheus/PrometheusMetricsRegister.java | 6 ++--
.../bootstrap/CommandExecutorTaskAdvice.java | 2 +-
.../metrics/bootstrap/MethodNameConstant.java | 1 -
...RouterAdvice.java => SQLRouteEngineAdvice.java} | 12 ++++---
.../agent/metrics/bootstrap/TransactionAdvice.java | 4 +--
.../definition/MetricsPluginDefinition.java | 8 ++---
14 files changed, 87 insertions(+), 100 deletions(-)
diff --git a/shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/ShardingSphereTransformer.java b/shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/ShardingSphereTransformer.java
index 49486fb..289c23f 100644
--- a/shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/ShardingSphereTransformer.java
+++ b/shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/ShardingSphereTransformer.java
@@ -64,7 +64,7 @@ public class ShardingSphereTransformer implements AgentBuilder.Transformer {
final ConstructorMethodInterceptor interceptor = new ConstructorMethodInterceptor(agentPluginLoader.getOrCreateInstance(point.getAdvice()));
newBuilder = newBuilder.constructor(point.getConstructorMatcher()).intercept(SuperMethodCall.INSTANCE.andThen(MethodDelegation.withDefaultConfiguration().to(interceptor)));
// CHECKSTYLE:OFF
- } catch (Throwable e) {
+ } catch (final Throwable e) {
// CHECKSTYLE:ON
log.error("Failed to load advice class: {}", point.getAdvice(), e);
}
@@ -74,7 +74,7 @@ public class ShardingSphereTransformer implements AgentBuilder.Transformer {
final StaticMethodAroundInterceptor interceptor = new StaticMethodAroundInterceptor(agentPluginLoader.getOrCreateInstance(point.getAdvice()));
newBuilder = newBuilder.method(point.getMethodsMatcher()).intercept(MethodDelegation.withDefaultConfiguration().to(interceptor));
// CHECKSTYLE:OFF
- } catch (Throwable e) {
+ } catch (final Throwable e) {
// CHECKSTYLE:ON
log.error("Failed to load advice class: {}", point.getAdvice(), e);
}
@@ -84,7 +84,7 @@ public class ShardingSphereTransformer implements AgentBuilder.Transformer {
final MethodAroundInterceptor interceptor = new MethodAroundInterceptor(agentPluginLoader.getOrCreateInstance(point.getAdvice()));
newBuilder = newBuilder.method(point.getMethodMatcher()).intercept(MethodDelegation.withDefaultConfiguration().to(interceptor));
// CHECKSTYLE:OFF
- } catch (Throwable e) {
+ } catch (final Throwable e) {
// CHECKSTYLE:ON
log.error("Failed to load advice class: {}", point.getAdvice(), e);
}
diff --git a/shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/common/AgentPathBuilder.java b/shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/common/AgentPathBuilder.java
index ea337d2..409cdf6 100644
--- a/shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/common/AgentPathBuilder.java
+++ b/shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/common/AgentPathBuilder.java
@@ -27,7 +27,7 @@ import lombok.extern.slf4j.Slf4j;
import org.apache.shardingsphere.agent.core.exception.ShardingSphereAgentException;
/**
- * Agent path locator.
+ * Agent path builder.
*/
@Slf4j
public final class AgentPathBuilder {
@@ -71,8 +71,8 @@ public final class AgentPathBuilder {
try {
File agentJarFile = new File(new URL(realUrl).toURI());
return agentJarFile.exists() ? agentJarFile.getParentFile() : null;
- } catch (MalformedURLException | URISyntaxException e) {
- log.error("Can not locate agent jar file by url:" + url);
+ } catch (final MalformedURLException | URISyntaxException ex) {
+ log.error(String.format("Can not locate agent jar file by url %s", url), ex);
return null;
}
}
diff --git a/shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/plugin/AgentPluginLoader.java b/shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/plugin/AgentPluginLoader.java
index 53f073f..199887e 100644
--- a/shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/plugin/AgentPluginLoader.java
+++ b/shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/plugin/AgentPluginLoader.java
@@ -86,8 +86,8 @@ public final class AgentPluginLoader extends ClassLoader implements Closeable {
try {
byte[] data = ByteStreams.toByteArray(jar.jarFile.getInputStream(entry));
return defineClass(name, data, 0, data.length);
- } catch (IOException ioe) {
- log.error("Failed to load class {}.", name, ioe);
+ } catch (final IOException ex) {
+ log.error("Failed to load class {}.", name, ex);
}
}
}
@@ -99,10 +99,10 @@ public final class AgentPluginLoader extends ClassLoader implements Closeable {
List<URL> resources = Lists.newArrayList();
for (UberJar jar : jars) {
JarEntry entry = jar.jarFile.getJarEntry(name);
- if (entry != null) {
+ if (Objects.nonNull(entry)) {
try {
resources.add(new URL("jar:file:" + jar.sourcePath.getAbsolutePath() + "!/" + name));
- } catch (MalformedURLException ignored) {
+ } catch (final MalformedURLException ignored) {
}
}
}
@@ -113,10 +113,10 @@ public final class AgentPluginLoader extends ClassLoader implements Closeable {
protected URL findResource(final String name) {
for (UberJar jar : jars) {
JarEntry entry = jar.jarFile.getJarEntry(name);
- if (entry != null) {
+ if (Objects.nonNull(entry)) {
try {
return new URL("jar:file:" + jar.sourcePath.getAbsolutePath() + "!/" + name);
- } catch (MalformedURLException ignored) {
+ } catch (final MalformedURLException ignored) {
}
}
}
@@ -128,8 +128,8 @@ public final class AgentPluginLoader extends ClassLoader implements Closeable {
for (UberJar jar : jars) {
try {
jar.jarFile.close();
- } catch (IOException ioe) {
- log.error("", ioe);
+ } catch (final IOException ex) {
+ log.error("close is ", ex);
}
}
}
@@ -187,8 +187,8 @@ public final class AgentPluginLoader extends ClassLoader implements Closeable {
pluginDefinition.getAllServices().forEach(klass -> {
try {
services.add(klass.newInstance());
- } catch (InstantiationException | IllegalAccessException e) {
- log.error("Failed to create service instance, {}.", klass.getTypeName(), e);
+ } catch (InstantiationException | IllegalAccessException ex) {
+ log.error("Failed to create service instance, {}.", klass.getTypeName(), ex);
}
});
pluginDefinition.build().forEach(plugin -> {
@@ -202,8 +202,8 @@ public final class AgentPluginLoader extends ClassLoader implements Closeable {
pluginAdviceDefinitionMap.put(target, plugin);
}
});
- } catch (InstantiationException | IllegalAccessException e) {
- log.error("Failed to load plugin definition, {}.", entrypoint, e);
+ } catch (final InstantiationException | IllegalAccessException ex) {
+ log.error("Failed to load plugin definition, {}.", entrypoint, ex);
}
}
pluginDefineMap = ImmutableMap.<String, PluginAdviceDefinition>builder().putAll(pluginAdviceDefinitionMap).build();
@@ -292,9 +292,9 @@ public final class AgentPluginLoader extends ClassLoader implements Closeable {
try {
service.setup();
// CHECKSTYLE:OFF
- } catch (Exception e) {
+ } catch (final Exception ex) {
// CHECKSTYLE:ON
- log.error("Failed to initial service.");
+ log.error("Failed to initial service.", ex);
}
});
}
@@ -307,9 +307,9 @@ public final class AgentPluginLoader extends ClassLoader implements Closeable {
try {
service.start();
// CHECKSTYLE:OFF
- } catch (Exception e) {
+ } catch (final Exception ex) {
// CHECKSTYLE:ON
- log.error("Failed to start service.");
+ log.error("Failed to start service.", ex);
}
});
}
@@ -322,15 +322,16 @@ public final class AgentPluginLoader extends ClassLoader implements Closeable {
try {
service.cleanup();
// CHECKSTYLE:OFF
- } catch (Exception e) {
+ } catch (final Exception ex) {
// CHECKSTYLE:ON
- log.error("Failed to shutdown service.");
+ log.error("Failed to shutdown service.", ex);
}
});
}
@RequiredArgsConstructor
private static class UberJar {
+
private final JarFile jarFile;
private final File sourcePath;
diff --git a/shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/plugin/advice/ConstructorMethodInterceptor.java b/shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/plugin/advice/ConstructorMethodInterceptor.java
index 10e5169..ed48394 100644
--- a/shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/plugin/advice/ConstructorMethodInterceptor.java
+++ b/shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/plugin/advice/ConstructorMethodInterceptor.java
@@ -46,7 +46,7 @@ public class ConstructorMethodInterceptor {
try {
advice.onConstructor(target, args);
// CHECKSTYLE:OFF
- } catch (Throwable throwable) {
+ } catch (final Throwable throwable) {
// CHECKSTYLE:ON
log.error("Constructor advice execution error. class: {}", target.getClass().getTypeName(), throwable);
}
diff --git a/shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/plugin/advice/MethodAroundInterceptor.java b/shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/plugin/advice/MethodAroundInterceptor.java
index c439db1..17a859a 100644
--- a/shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/plugin/advice/MethodAroundInterceptor.java
+++ b/shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/plugin/advice/MethodAroundInterceptor.java
@@ -47,48 +47,49 @@ public class MethodAroundInterceptor {
* @param target the target object
* @param method the intercepted method
* @param args the all arguments of method
- * @param uber the origin method invocation
+ * @param callable the origin method invocation
* @return the return value of target invocation
*/
@RuntimeType
@SneakyThrows
- public Object intercept(final @This Object target, final @Origin Method method, final @AllArguments Object[] args, final @SuperCall Callable<?> uber) {
+ public Object intercept(final @This Object target, final @Origin Method method, final @AllArguments Object[] args, final @SuperCall Callable<?> callable) {
final TargetObject instance = (TargetObject) target;
- final MethodInvocationResult result = new MethodInvocationResult();
- Object ret;
+ final MethodInvocationResult methodResult = new MethodInvocationResult();
+ Object result;
try {
- advice.beforeMethod(instance, method, args, result);
+ advice.beforeMethod(instance, method, args, methodResult);
// CHECKSTYLE:OFF
- } catch (Throwable throwable) {
+ } catch (final Throwable ex) {
// CHECKSTYLE:ON
- log.error("Failed to execute the pre-method of method[{}] in class[{}].", method.getName(), target.getClass(), throwable);
+ log.error("Failed to execute the pre-method of method[{}] in class[{}].", method.getName(), target.getClass(), ex);
}
try {
- if (result.isRebased()) {
- ret = result.getResult();
+ if (methodResult.isRebased()) {
+ result = methodResult.getResult();
} else {
- ret = uber.call();
+ result = callable.call();
}
+ methodResult.rebase(result);
// CHECKSTYLE:OFF
- } catch (Throwable throwable) {
+ } catch (final Throwable ex) {
// CHECKSTYLE:ON
try {
- advice.onThrowing(instance, method, args, throwable);
+ advice.onThrowing(instance, method, args, ex);
// CHECKSTYLE:OFF
- } catch (Throwable adviceException) {
+ } catch (final Throwable ignored) {
// CHECKSTYLE:ON
- log.error("Failed to execute the error handler of method[{}] in class[{}].", method.getName(), target.getClass(), adviceException);
+ log.error("Failed to execute the error handler of method[{}] in class[{}].", method.getName(), target.getClass(), ex);
}
- throw throwable;
+ throw ex;
} finally {
try {
- advice.afterMethod(instance, method, args, result);
+ advice.afterMethod(instance, method, args, methodResult);
// CHECKSTYLE:OFF
- } catch (Throwable throwable) {
+ } catch (final Throwable ex) {
// CHECKSTYLE:ON
- log.error("Failed to execute the post-method of method[{}] in class[{}].", method.getName(), target.getClass(), throwable);
+ log.error("Failed to execute the post-method of method[{}] in class[{}].", method.getName(), target.getClass(), ex);
}
}
- return ret;
+ return result;
}
}
diff --git a/shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/plugin/advice/MethodInvocationResult.java b/shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/plugin/advice/MethodInvocationResult.java
index 76265fb..1dd6a33 100644
--- a/shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/plugin/advice/MethodInvocationResult.java
+++ b/shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/plugin/advice/MethodInvocationResult.java
@@ -18,12 +18,15 @@
package org.apache.shardingsphere.agent.core.plugin.advice;
+import lombok.Getter;
+
/**
* The advice method invocation result.
*/
+@Getter
public class MethodInvocationResult {
- private boolean isRebased;
+ private boolean rebased;
private Object result;
@@ -33,26 +36,7 @@ public class MethodInvocationResult {
* @param result rebase the origin result
*/
public void rebase(final Object result) {
- isRebased = true;
+ rebased = true;
this.result = result;
}
-
- /**
- * Whether or not to discard origin method.
- *
- * @return to replace the origin result if true
- */
- public boolean isRebased() {
- return isRebased;
- }
-
- /**
- * Result that is provided by per-method advice.
- *
- * @return the advice result
- */
- public Object getResult() {
- return result;
- }
-
}
diff --git a/shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/plugin/advice/OverrideArgsInvoker.java b/shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/plugin/advice/OverrideArgsInvoker.java
index 164d86c..d3b5fd4 100644
--- a/shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/plugin/advice/OverrideArgsInvoker.java
+++ b/shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/plugin/advice/OverrideArgsInvoker.java
@@ -24,11 +24,10 @@ package org.apache.shardingsphere.agent.core.plugin.advice;
public interface OverrideArgsInvoker {
/**
- * Invocation origin method.
+ * Call invocation origin method.
*
* @param args the origin method arguments
* @return the result of the origin method
*/
Object call(Object[] args);
-
}
diff --git a/shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/plugin/advice/StaticMethodAroundInterceptor.java b/shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/plugin/advice/StaticMethodAroundInterceptor.java
index 06e77c9..0304da7 100644
--- a/shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/plugin/advice/StaticMethodAroundInterceptor.java
+++ b/shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/plugin/advice/StaticMethodAroundInterceptor.java
@@ -52,41 +52,42 @@ public class StaticMethodAroundInterceptor {
@RuntimeType
@SneakyThrows
public Object intercept(final @Origin Class<?> klass, final @Origin Method method, final @AllArguments Object[] args, final @SuperCall Callable<?> callable) {
- final MethodInvocationResult result = new MethodInvocationResult();
- final Object ret;
+ final MethodInvocationResult invocationResult = new MethodInvocationResult();
+ final Object result;
try {
- advice.afterMethod(klass, method, args, result);
+ advice.beforeMethod(klass, method, args, invocationResult);
// CHECKSTYLE:OFF
- } catch (Throwable throwable) {
+ } catch (Throwable ex) {
// CHECKSTYLE:ON
- log.error("Failed to execute the pre-method of method[{}] in class[{}].", method.getName(), klass, throwable);
+ log.error("Failed to execute the pre-method of method[{}] in class[{}].", method.getName(), klass, ex);
}
try {
- if (result.isRebased()) {
- ret = result.getResult();
+ if (invocationResult.isRebased()) {
+ result = invocationResult.getResult();
} else {
- ret = callable.call();
+ result = callable.call();
}
+ invocationResult.rebase(result);
// CHECKSTYLE:OFF
- } catch (Throwable throwable) {
+ } catch (final Throwable ex) {
// CHECKSTYLE:ON
try {
- advice.onThrowing(klass, method, args, throwable);
+ advice.onThrowing(klass, method, args, ex);
// CHECKSTYLE:OFF
- } catch (Throwable ignore) {
+ } catch (final Throwable ignored) {
// CHECKSTYLE:ON
- log.error("Failed to execute the error handler of method[{}] in class[{}].", method.getName(), klass, throwable);
+ log.error("Failed to execute the error handler of method[{}] in class[{}].", method.getName(), klass, ex);
}
- throw throwable;
+ throw ex;
} finally {
try {
- advice.beforeMethod(klass, method, args, result);
+ advice.afterMethod(klass, method, args, invocationResult);
// CHECKSTYLE:OFF
- } catch (Throwable throwable) {
+ } catch (final Throwable ex) {
// CHECKSTYLE:ON
- log.error("Failed to execute the post-method of method[{}] in class[{}].", method.getName(), klass, throwable);
+ log.error("Failed to execute the post-method of method[{}] in class[{}].", method.getName(), klass, ex);
}
}
- return ret;
+ return result;
}
}
diff --git a/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-metrics/shardingsphere-agent-metrics-api/src/main/java/org/apache/shardingsphere/agent/metrics/api/prometheus/PrometheusMetricsRegister.java b/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-metrics/shardingsphere-agent-metrics-api/src/main/java/org/apache/shardingsphere/agent/metrics/api/prometheus/PrometheusMetricsRegister.java
index 223ce2a..f06f7bb 100644
--- a/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-metrics/shardingsphere-agent-metrics-api/src/main/java/org/apache/shardingsphere/agent/metrics/api/prometheus/PrometheusMetricsRegister.java
+++ b/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-metrics/shardingsphere-agent-metrics-api/src/main/java/org/apache/shardingsphere/agent/metrics/api/prometheus/PrometheusMetricsRegister.java
@@ -157,9 +157,9 @@ public final class PrometheusMetricsRegister implements MetricsRegister {
}
try {
httpServer = new HTTPServer(inetSocketAddress, CollectorRegistry.defaultRegistry, true);
- log.info(String.format("you start prometheus metrics http server host is: %s , port is: %s", inetSocketAddress.getPort(), inetSocketAddress.getPort()));
- } catch (IOException e) {
- log.error("you start prometheus metrics http server is error", e);
+ log.info(String.format("you start prometheus metrics http server host is: %s , port is: %s", inetSocketAddress.getHostString(), inetSocketAddress.getPort()));
+ } catch (final IOException exception) {
+ log.error("you start prometheus metrics http server is error", exception);
}
}
diff --git a/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-metrics/shardingsphere-agent-metrics-bootstrap/src/main/java/org/apache/shardingsphere/agent/metrics/bootstrap/CommandExecutorTaskAdvice.java b/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-metrics/shardingsphere-agent-metrics-bootstrap/src/main/java/org/apache/shardingsphere/agent/metrics/bootstrap/CommandExecutorTaskAdvice.java
index b665260..1e5859d 100644
--- a/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-metrics/shardingsphere-agent-metrics-bootstrap/src/main/java/org/apache/shardingsphere/agent/metrics/bootstrap/CommandExecutorTaskAdvice.java
+++ b/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-metrics/shardingsphere-agent-metrics-bootstrap/src/main/java/org/apache/shardingsphere/agent/metrics/bootstrap/CommandExecutorTaskAdvice.java
@@ -29,7 +29,7 @@ import org.apache.shardingsphere.agent.metrics.api.reporter.MetricsReporter;
*/
public final class CommandExecutorTaskAdvice implements MethodAroundAdvice {
- private static final String METRICS_NAME = " proxy_execute_latency_millis";
+ private static final String METRICS_NAME = "proxy_execute_latency_millis";
static {
MetricsReporter.registerHistogram(METRICS_NAME, "the shardingsphere proxy executor latency millis");
diff --git a/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-metrics/shardingsphere-agent-metrics-bootstrap/src/main/java/org/apache/shardingsphere/agent/metrics/bootstrap/MethodNameConstant.java b/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-metrics/shardingsphere-agent-metrics-bootstrap/src/main/java/org/apache/shardingsphere/agent/metrics/bootstrap/MethodNameConstant.java
index 23491e3..47be47f 100644
--- a/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-metrics/shardingsphere-agent-metrics-bootstrap/src/main/java/org/apache/shardingsphere/agent/metrics/bootstrap/MethodNameConstant.java
+++ b/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-metrics/shardingsphere-agent-metrics-bootstrap/src/main/java/org/apache/shardingsphere/agent/metrics/bootstrap/MethodNameConstant.java
@@ -32,5 +32,4 @@ public final class MethodNameConstant {
public static final String COMMIT = "commit";
public static final String ROLL_BACK = "rollback";
-
}
diff --git a/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-metrics/shardingsphere-agent-metrics-bootstrap/src/main/java/org/apache/shardingsphere/agent/metrics/bootstrap/DataNodeRouterAdvice.java b/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-metrics/shardingsphere-agent-metrics-bootstrap/src/main/java/org/apache/shardingsphere/agent/metrics/bootstrap/SQLRouteEngineAdvice.java
similarity index 93%
rename from shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-metrics/shardingsphere-agent-metrics-bootstrap/src/main/java/org/apache/shardingsphere/agent/metrics/bootstrap/DataNodeRouterAdvice.java
rename to shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-metrics/shardingsphere-agent-metrics-bootstrap/src/main/java/org/apache/shardingsphere/agent/metrics/bootstrap/SQLRouteEngineAdvice.java
index 3454f9b..9b4554a 100644
--- a/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-metrics/shardingsphere-agent-metrics-bootstrap/src/main/java/org/apache/shardingsphere/agent/metrics/bootstrap/DataNodeRouterAdvice.java
+++ b/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-metrics/shardingsphere-agent-metrics-bootstrap/src/main/java/org/apache/shardingsphere/agent/metrics/bootstrap/SQLRouteEngineAdvice.java
@@ -24,6 +24,7 @@ import org.apache.shardingsphere.agent.core.plugin.advice.MethodAroundAdvice;
import org.apache.shardingsphere.agent.core.plugin.advice.MethodInvocationResult;
import org.apache.shardingsphere.agent.core.plugin.advice.TargetObject;
import org.apache.shardingsphere.agent.metrics.api.reporter.MetricsReporter;
+import org.apache.shardingsphere.infra.binder.LogicSQL;
import org.apache.shardingsphere.infra.route.context.RouteContext;
import org.apache.shardingsphere.infra.route.context.RouteMapper;
import org.apache.shardingsphere.infra.route.context.RouteUnit;
@@ -34,9 +35,9 @@ import org.apache.shardingsphere.sql.parser.sql.common.statement.dml.SelectState
import org.apache.shardingsphere.sql.parser.sql.common.statement.dml.UpdateStatement;
/**
- * Data node router advice.
+ * SQL route engine advice.
*/
-public final class DataNodeRouterAdvice implements MethodAroundAdvice {
+public final class SQLRouteEngineAdvice implements MethodAroundAdvice {
private static final String SELECT = "sql_select_total";
@@ -61,15 +62,16 @@ public final class DataNodeRouterAdvice implements MethodAroundAdvice {
@Override
public void beforeMethod(final TargetObject target, final Method method, final Object[] args, final MethodInvocationResult result) {
- SQLStatement sqlStatement = (SQLStatement) args[0];
+ LogicSQL logicSQL = (LogicSQL) args[0];
+ SQLStatement sqlStatement = logicSQL.getSqlStatementContext().getSqlStatement();
if (sqlStatement instanceof InsertStatement) {
- MetricsReporter.counterIncrement(SELECT);
+ MetricsReporter.counterIncrement(INSERT);
} else if (sqlStatement instanceof DeleteStatement) {
MetricsReporter.counterIncrement(DELETE);
} else if (sqlStatement instanceof UpdateStatement) {
MetricsReporter.counterIncrement(UPDATE);
} else if (sqlStatement instanceof SelectStatement) {
- MetricsReporter.counterIncrement(INSERT);
+ MetricsReporter.counterIncrement(SELECT);
}
}
diff --git a/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-metrics/shardingsphere-agent-metrics-bootstrap/src/main/java/org/apache/shardingsphere/agent/metrics/bootstrap/TransactionAdvice.java b/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-metrics/shardingsphere-agent-metrics-bootstrap/src/main/java/org/apache/shardingsphere/agent/metrics/bootstrap/TransactionAdvice.java
index 9ea14e6..39007fe 100644
--- a/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-metrics/shardingsphere-agent-metrics-bootstrap/src/main/java/org/apache/shardingsphere/agent/metrics/bootstrap/TransactionAdvice.java
+++ b/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-metrics/shardingsphere-agent-metrics-bootstrap/src/main/java/org/apache/shardingsphere/agent/metrics/bootstrap/TransactionAdvice.java
@@ -29,9 +29,9 @@ import org.apache.shardingsphere.agent.metrics.api.reporter.MetricsReporter;
*/
public final class TransactionAdvice implements MethodAroundAdvice {
- private static final String COMMIT = "proxy_transaction_commit";
+ private static final String COMMIT = "proxy_transaction_commit_total";
- private static final String ROLLBACK = "proxy_transaction_rollback";
+ private static final String ROLLBACK = "proxy_transaction_rollback_total";
static {
MetricsReporter.registerCounter(COMMIT, "the shardingsphere proxy transaction commit count total");
diff --git a/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-metrics/shardingsphere-agent-metrics-bootstrap/src/main/java/org/apache/shardingsphere/agent/metrics/bootstrap/definition/MetricsPluginDefinition.java b/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-metrics/shardingsphere-agent-metrics-bootstrap/src/main/java/org/apache/shardingsphere/agent/metrics/bootstrap/definition/MetricsPluginDefinition.java
index 9c7d39e..2161e21 100644
--- a/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-metrics/shardingsphere-agent-metrics-bootstrap/src/main/java/org/apache/shardingsphere/agent/metrics/bootstrap/definition/MetricsPluginDefinition.java
+++ b/shardingsphere-agent/shardingsphere-agent-plugins/shardingsphere-agent-plugin-metrics/shardingsphere-agent-metrics-bootstrap/src/main/java/org/apache/shardingsphere/agent/metrics/bootstrap/definition/MetricsPluginDefinition.java
@@ -35,9 +35,9 @@ public final class MetricsPluginDefinition extends PluginDefinition {
private static final String CHANNEL_HANDLER_ADVICE_CLASS = "org.apache.shardingsphere.agent.metrics.bootstrap.ChannelHandlerAdvice";
- private static final String DATA_NODE_ROUTER_ENHANCE_CLASS = "org.apache.shardingsphere.infra.route.DataNodeRouter";
+ private static final String SQL_ROUTER_ENGINE_ENHANCE_CLASS = "org.apache.shardingsphere.infra.route.engine.SQLRouteEngine";
- private static final String DATA_NODE_ROUTER_ADVICE_CLASS = "org.apache.shardingsphere.agent.metrics.bootstrap.DataNodeRouterAdvice";
+ private static final String SQL_ROUTER_ENGINE_ADVICE_CLASS = "org.apache.shardingsphere.agent.metrics.bootstrap.SQLRouteEngineAdvice";
private static final String TRANSACTION_ENHANCE_CLASS = "org.apache.shardingsphere.proxy.backend.communication.jdbc.transaction.BackendTransactionManager";
@@ -58,9 +58,9 @@ public final class MetricsPluginDefinition extends PluginDefinition {
.or(ElementMatchers.named(MethodNameConstant.CHANNEL_READ)))
.implement(CHANNEL_HANDLER_ADVICE_CLASS)
.build();
- intercept(DATA_NODE_ROUTER_ENHANCE_CLASS)
+ intercept(SQL_ROUTER_ENGINE_ENHANCE_CLASS)
.aroundInstanceMethod(ElementMatchers.named("route"))
- .implement(DATA_NODE_ROUTER_ADVICE_CLASS)
+ .implement(SQL_ROUTER_ENGINE_ADVICE_CLASS)
.build();
intercept(TRANSACTION_ENHANCE_CLASS)
.aroundInstanceMethod(ElementMatchers.named(MethodNameConstant.COMMIT).or(ElementMatchers.named(MethodNameConstant.ROLL_BACK)))