You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by zh...@apache.org on 2022/12/18 15:29:13 UTC
[shardingsphere] branch master updated: Refactor structure of advisors.yaml (#22958)
This is an automated email from the ASF dual-hosted git repository.
zhaojinchao 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 50f743f4c75 Refactor structure of advisors.yaml (#22958)
50f743f4c75 is described below
commit 50f743f4c75eade5abb30270840d00b8dbb32f7f
Author: Liang Zhang <zh...@apache.org>
AuthorDate: Sun Dec 18 23:29:06 2022 +0800
Refactor structure of advisors.yaml (#22958)
---
.../yaml/entity/YamlAdvisorConfiguration.java | 6 +-----
.../swapper/YamlAdvisorConfigurationSwapper.java | 9 +++++----
.../YamlAdvisorsConfigurationSwapperTest.java | 21 ++++++++-------------
agent/core/src/test/resources/advisors.yaml | 10 +++++-----
.../wrapper/PrometheusWrapperFactory.java | 4 ++--
.../src/main/resources/prometheus/advisors.yaml | 10 +++++-----
.../src/main/resources/prometheus/metrics.yaml | 2 +-
7 files changed, 27 insertions(+), 35 deletions(-)
diff --git a/agent/core/src/main/java/org/apache/shardingsphere/agent/core/plugin/yaml/entity/YamlAdvisorConfiguration.java b/agent/core/src/main/java/org/apache/shardingsphere/agent/core/plugin/yaml/entity/YamlAdvisorConfiguration.java
index 3ce8478200e..83b26d42557 100644
--- a/agent/core/src/main/java/org/apache/shardingsphere/agent/core/plugin/yaml/entity/YamlAdvisorConfiguration.java
+++ b/agent/core/src/main/java/org/apache/shardingsphere/agent/core/plugin/yaml/entity/YamlAdvisorConfiguration.java
@@ -32,11 +32,7 @@ public final class YamlAdvisorConfiguration {
private String target;
- private String instanceAdvice;
-
- private String staticAdvice;
-
- private String constructAdvice;
+ private String advice;
private Collection<YamlPointcutConfiguration> pointcuts = new LinkedList<>();
}
diff --git a/agent/core/src/main/java/org/apache/shardingsphere/agent/core/plugin/yaml/swapper/YamlAdvisorConfigurationSwapper.java b/agent/core/src/main/java/org/apache/shardingsphere/agent/core/plugin/yaml/swapper/YamlAdvisorConfigurationSwapper.java
index 02982fb75fa..bb605d83df8 100644
--- a/agent/core/src/main/java/org/apache/shardingsphere/agent/core/plugin/yaml/swapper/YamlAdvisorConfigurationSwapper.java
+++ b/agent/core/src/main/java/org/apache/shardingsphere/agent/core/plugin/yaml/swapper/YamlAdvisorConfigurationSwapper.java
@@ -38,16 +38,17 @@ public final class YamlAdvisorConfigurationSwapper {
*/
public AdvisorConfiguration swapToObject(final YamlAdvisorConfiguration yamlAdvisorConfig, final String type) {
AdvisorConfiguration result = AdvisorConfigurationRegistryFactory.getRegistry(type).getAdvisorConfiguration(yamlAdvisorConfig.getTarget());
- if (null != yamlAdvisorConfig.getConstructAdvice() && !("".equals(yamlAdvisorConfig.getConstructAdvice()))) {
- result.getConstructorAdvisors().add(new MethodAdvisorConfiguration(ElementMatchers.isConstructor(), yamlAdvisorConfig.getConstructAdvice()));
+ String[] constructPointcuts = yamlAdvisorConfig.getPointcuts().stream().filter(each -> "construct".equals(each.getType())).map(YamlPointcutConfiguration::getName).toArray(String[]::new);
+ if (constructPointcuts.length > 0) {
+ result.getConstructorAdvisors().add(new MethodAdvisorConfiguration(ElementMatchers.isConstructor(), yamlAdvisorConfig.getAdvice()));
}
String[] instanceMethodPointcuts = yamlAdvisorConfig.getPointcuts().stream().filter(each -> "instance".equals(each.getType())).map(YamlPointcutConfiguration::getName).toArray(String[]::new);
if (instanceMethodPointcuts.length > 0) {
- result.getInstanceMethodAdvisors().add(new MethodAdvisorConfiguration(ElementMatchers.namedOneOf(instanceMethodPointcuts), yamlAdvisorConfig.getInstanceAdvice()));
+ result.getInstanceMethodAdvisors().add(new MethodAdvisorConfiguration(ElementMatchers.namedOneOf(instanceMethodPointcuts), yamlAdvisorConfig.getAdvice()));
}
String[] staticMethodPointcuts = yamlAdvisorConfig.getPointcuts().stream().filter(each -> "static".equals(each.getType())).map(YamlPointcutConfiguration::getName).toArray(String[]::new);
if (staticMethodPointcuts.length > 0) {
- result.getStaticMethodAdvisors().add(new MethodAdvisorConfiguration(ElementMatchers.namedOneOf(staticMethodPointcuts), yamlAdvisorConfig.getStaticAdvice()));
+ result.getStaticMethodAdvisors().add(new MethodAdvisorConfiguration(ElementMatchers.namedOneOf(staticMethodPointcuts), yamlAdvisorConfig.getAdvice()));
}
return result;
}
diff --git a/agent/core/src/test/java/org/apache/shardingsphere/agent/core/plugin/yaml/swapper/YamlAdvisorsConfigurationSwapperTest.java b/agent/core/src/test/java/org/apache/shardingsphere/agent/core/plugin/yaml/swapper/YamlAdvisorsConfigurationSwapperTest.java
index cb7c545dd43..58241b33dbf 100644
--- a/agent/core/src/test/java/org/apache/shardingsphere/agent/core/plugin/yaml/swapper/YamlAdvisorsConfigurationSwapperTest.java
+++ b/agent/core/src/test/java/org/apache/shardingsphere/agent/core/plugin/yaml/swapper/YamlAdvisorsConfigurationSwapperTest.java
@@ -41,26 +41,24 @@ public final class YamlAdvisorsConfigurationSwapperTest {
List<YamlAdvisorConfiguration> actualYamlAdvisorConfigs = new ArrayList<>(actual.getAdvisors());
assertYamlAdvisorConfiguration(actualYamlAdvisorConfigs.get(0), createExpectedYamlAdvisorConfiguration("org.apache.shardingsphere.proxy.frontend.command.CommandExecutorTask",
"org.apache.shardingsphere.agent.metrics.api.advice.CommandExecutorTaskAdvice",
- null, null, Arrays.asList(createExpectedYamlPointcutConfiguration("run", "instance"), createExpectedYamlPointcutConfiguration("processException", "instance"))));
+ Arrays.asList(createExpectedYamlPointcutConfiguration("run", "instance"), createExpectedYamlPointcutConfiguration("processException", "instance"))));
assertYamlAdvisorConfiguration(actualYamlAdvisorConfigs.get(1), createExpectedYamlAdvisorConfiguration("org.apache.shardingsphere.proxy.frontend.netty.FrontendChannelInboundHandler",
"org.apache.shardingsphere.agent.metrics.api.advice.ChannelHandlerAdvice",
- null, null, Arrays.asList(createExpectedYamlPointcutConfiguration("channelActive", "instance"),
+ Arrays.asList(createExpectedYamlPointcutConfiguration("channelActive", "instance"),
createExpectedYamlPointcutConfiguration("channelRead", "instance"), createExpectedYamlPointcutConfiguration("channelInactive", "instance"))));
assertYamlAdvisorConfiguration(actualYamlAdvisorConfigs.get(2), createExpectedYamlAdvisorConfiguration("org.apache.shardingsphere.infra.route.engine.SQLRouteEngine",
- "org.apache.shardingsphere.agent.metrics.api.advice.SQLRouteEngineAdvice", null, null, Collections.singleton(createExpectedYamlPointcutConfiguration("route", "instance"))));
+ "org.apache.shardingsphere.agent.metrics.api.advice.SQLRouteEngineAdvice", Collections.singleton(createExpectedYamlPointcutConfiguration("route", "instance"))));
assertYamlAdvisorConfiguration(actualYamlAdvisorConfigs.get(3), createExpectedYamlAdvisorConfiguration(
"org.apache.shardingsphere.proxy.backend.communication.jdbc.transaction.BackendTransactionManager",
"org.apache.shardingsphere.agent.metrics.api.advice.TransactionAdvice",
- null, null, Arrays.asList(createExpectedYamlPointcutConfiguration("commit", "instance"), createExpectedYamlPointcutConfiguration("rollback", "instance"))));
+ Arrays.asList(createExpectedYamlPointcutConfiguration("commit", "instance"), createExpectedYamlPointcutConfiguration("rollback", "instance"))));
assertYamlAdvisorConfiguration(actualYamlAdvisorConfigs.get(4), createExpectedYamlAdvisorConfiguration("org.apache.shardingsphere.infra.config.datasource.JDBCParameterDecoratorHelper",
- null, "org.apache.shardingsphere.agent.metrics.api.advice.DataSourceAdvice", null, Collections.singleton(createExpectedYamlPointcutConfiguration("decorate", "static"))));
+ "org.apache.shardingsphere.agent.metrics.api.advice.DataSourceAdvice", Collections.singleton(createExpectedYamlPointcutConfiguration("decorate", "static"))));
}
private void assertYamlAdvisorConfiguration(final YamlAdvisorConfiguration actual, final YamlAdvisorConfiguration expected) {
assertThat(actual.getTarget(), is(expected.getTarget()));
- assertThat(actual.getInstanceAdvice(), is(expected.getInstanceAdvice()));
- assertThat(actual.getStaticAdvice(), is(expected.getStaticAdvice()));
- assertThat(actual.getConstructAdvice(), is(expected.getConstructAdvice()));
+ assertThat(actual.getAdvice(), is(expected.getAdvice()));
assertThat(actual.getPointcuts().isEmpty(), is(expected.getPointcuts().isEmpty()));
Iterator<YamlPointcutConfiguration> expectedYamlPointcutConfigs = expected.getPointcuts().iterator();
for (YamlPointcutConfiguration each : actual.getPointcuts()) {
@@ -70,13 +68,10 @@ public final class YamlAdvisorsConfigurationSwapperTest {
}
}
- private YamlAdvisorConfiguration createExpectedYamlAdvisorConfiguration(final String target, final String instanceAdvice,
- final String staticAdvice, final String constructAdvice, final Collection<YamlPointcutConfiguration> yamlPointcutConfigs) {
+ private YamlAdvisorConfiguration createExpectedYamlAdvisorConfiguration(final String target, final String advice, final Collection<YamlPointcutConfiguration> yamlPointcutConfigs) {
YamlAdvisorConfiguration result = new YamlAdvisorConfiguration();
result.setTarget(target);
- result.setInstanceAdvice(instanceAdvice);
- result.setStaticAdvice(staticAdvice);
- result.setConstructAdvice(constructAdvice);
+ result.setAdvice(advice);
result.setPointcuts(yamlPointcutConfigs);
return result;
}
diff --git a/agent/core/src/test/resources/advisors.yaml b/agent/core/src/test/resources/advisors.yaml
index 514545019cf..e1ff1df3f8b 100644
--- a/agent/core/src/test/resources/advisors.yaml
+++ b/agent/core/src/test/resources/advisors.yaml
@@ -17,14 +17,14 @@
advisors:
- target: org.apache.shardingsphere.proxy.frontend.command.CommandExecutorTask
- instanceAdvice: org.apache.shardingsphere.agent.metrics.api.advice.CommandExecutorTaskAdvice
+ advice: org.apache.shardingsphere.agent.metrics.api.advice.CommandExecutorTaskAdvice
pointcuts:
- name: run
type: instance
- name: processException
type: instance
- target: org.apache.shardingsphere.proxy.frontend.netty.FrontendChannelInboundHandler
- instanceAdvice: org.apache.shardingsphere.agent.metrics.api.advice.ChannelHandlerAdvice
+ advice: org.apache.shardingsphere.agent.metrics.api.advice.ChannelHandlerAdvice
pointcuts:
- name: channelActive
type: instance
@@ -33,19 +33,19 @@ advisors:
- name: channelInactive
type: instance
- target: org.apache.shardingsphere.infra.route.engine.SQLRouteEngine
- instanceAdvice: org.apache.shardingsphere.agent.metrics.api.advice.SQLRouteEngineAdvice
+ advice: org.apache.shardingsphere.agent.metrics.api.advice.SQLRouteEngineAdvice
pointcuts:
- name: route
type: instance
- target: org.apache.shardingsphere.proxy.backend.communication.jdbc.transaction.BackendTransactionManager
- instanceAdvice: org.apache.shardingsphere.agent.metrics.api.advice.TransactionAdvice
+ advice: org.apache.shardingsphere.agent.metrics.api.advice.TransactionAdvice
pointcuts:
- name: commit
type: instance
- name: rollback
type: instance
- target: org.apache.shardingsphere.infra.config.datasource.JDBCParameterDecoratorHelper
- staticAdvice: org.apache.shardingsphere.agent.metrics.api.advice.DataSourceAdvice
+ advice: org.apache.shardingsphere.agent.metrics.api.advice.DataSourceAdvice
pointcuts:
- name: decorate
type: static
diff --git a/agent/plugins/metrics/type/prometheus/src/main/java/org/apache/shardingsphere/agent/metrics/prometheus/wrapper/PrometheusWrapperFactory.java b/agent/plugins/metrics/type/prometheus/src/main/java/org/apache/shardingsphere/agent/metrics/prometheus/wrapper/PrometheusWrapperFactory.java
index fc5fed23f7c..558dbbcf02e 100644
--- a/agent/plugins/metrics/type/prometheus/src/main/java/org/apache/shardingsphere/agent/metrics/prometheus/wrapper/PrometheusWrapperFactory.java
+++ b/agent/plugins/metrics/type/prometheus/src/main/java/org/apache/shardingsphere/agent/metrics/prometheus/wrapper/PrometheusWrapperFactory.java
@@ -44,11 +44,11 @@ public final class PrometheusWrapperFactory implements MetricsWrapperFactory {
private static List<Map<String, Object>> metrics;
static {
- parseMetricsYaml();
+ parseMetricsYAML();
}
@SuppressWarnings("unchecked")
- private static void parseMetricsYaml() {
+ private static void parseMetricsYAML() {
InputStream inputStream = PrometheusWrapperFactory.class.getResourceAsStream("/prometheus/metrics.yaml");
Map<String, List<Map<String, Object>>> metricsMap = new Yaml().loadAs(inputStream, LinkedHashMap.class);
metrics = metricsMap.get("metrics");
diff --git a/agent/plugins/metrics/type/prometheus/src/main/resources/prometheus/advisors.yaml b/agent/plugins/metrics/type/prometheus/src/main/resources/prometheus/advisors.yaml
index 63dddf9dc82..95ec3c23f80 100644
--- a/agent/plugins/metrics/type/prometheus/src/main/resources/prometheus/advisors.yaml
+++ b/agent/plugins/metrics/type/prometheus/src/main/resources/prometheus/advisors.yaml
@@ -17,14 +17,14 @@
advisors:
- target: org.apache.shardingsphere.proxy.frontend.command.CommandExecutorTask
- instanceAdvice: org.apache.shardingsphere.agent.metrics.api.advice.CommandExecutorTaskAdvice
+ advice: org.apache.shardingsphere.agent.metrics.api.advice.CommandExecutorTaskAdvice
pointcuts:
- name: run
type: instance
- name: processException
type: instance
- target: org.apache.shardingsphere.proxy.frontend.netty.FrontendChannelInboundHandler
- instanceAdvice: org.apache.shardingsphere.agent.metrics.api.advice.ChannelHandlerAdvice
+ advice: org.apache.shardingsphere.agent.metrics.api.advice.ChannelHandlerAdvice
pointcuts:
- name: channelActive
type: instance
@@ -33,19 +33,19 @@ advisors:
- name: channelInactive
type: instance
- target: org.apache.shardingsphere.infra.route.engine.SQLRouteEngine
- instanceAdvice: org.apache.shardingsphere.agent.metrics.api.advice.SQLRouteEngineAdvice
+ advice: org.apache.shardingsphere.agent.metrics.api.advice.SQLRouteEngineAdvice
pointcuts:
- name: route
type: instance
- target: org.apache.shardingsphere.proxy.backend.communication.jdbc.transaction.JDBCBackendTransactionManager
- instanceAdvice: org.apache.shardingsphere.agent.metrics.api.advice.TransactionAdvice
+ advice: org.apache.shardingsphere.agent.metrics.api.advice.TransactionAdvice
pointcuts:
- name: commit
type: instance
- name: rollback
type: instance
- target: org.apache.shardingsphere.infra.parser.ShardingSphereSQLParserEngine
- instanceAdvice: org.apache.shardingsphere.agent.metrics.api.advice.SQLParserEngineAdvice
+ advice: org.apache.shardingsphere.agent.metrics.api.advice.SQLParserEngineAdvice
pointcuts:
- name: parse
type: instance
diff --git a/agent/plugins/metrics/type/prometheus/src/main/resources/prometheus/metrics.yaml b/agent/plugins/metrics/type/prometheus/src/main/resources/prometheus/metrics.yaml
index 530932db7c3..ff6da9b9e38 100644
--- a/agent/plugins/metrics/type/prometheus/src/main/resources/prometheus/metrics.yaml
+++ b/agent/plugins/metrics/type/prometheus/src/main/resources/prometheus/metrics.yaml
@@ -16,7 +16,7 @@
#
metrics:
- - id: proxy_request_total
+ - id: proxy_request_total
type: COUNTER
name: proxy_request_total
help: the shardingsphere proxy request total