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 5b9f2edc2cb Refactor YamlMetricConfigurationSwapper (#23565)
5b9f2edc2cb is described below
commit 5b9f2edc2cb5090e3c6497b20f6727a703dda39e
Author: Liang Zhang <[email protected]>
AuthorDate: Sun Jan 15 20:32:51 2023 +0800
Refactor YamlMetricConfigurationSwapper (#23565)
---
.../metrics/core/config/MetricConfiguration.java | 4 +--
.../yaml/entity/YamlMetricConfiguration.java | 4 +--
.../swapper/YamlMetricConfigurationSwapper.java | 14 ++++++--
.../wrapper/PrometheusWrapperFactory.java | 41 +++++++++-------------
4 files changed, 33 insertions(+), 30 deletions(-)
diff --git
a/agent/plugins/metrics/core/src/main/java/org/apache/shardingsphere/agent/plugin/metrics/core/config/MetricConfiguration.java
b/agent/plugins/metrics/core/src/main/java/org/apache/shardingsphere/agent/plugin/metrics/core/config/MetricConfiguration.java
index e10333b6cfb..576b2cdba22 100644
---
a/agent/plugins/metrics/core/src/main/java/org/apache/shardingsphere/agent/plugin/metrics/core/config/MetricConfiguration.java
+++
b/agent/plugins/metrics/core/src/main/java/org/apache/shardingsphere/agent/plugin/metrics/core/config/MetricConfiguration.java
@@ -20,7 +20,7 @@ package
org.apache.shardingsphere.agent.plugin.metrics.core.config;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
-import java.util.Collection;
+import java.util.List;
import java.util.Map;
/**
@@ -36,7 +36,7 @@ public final class MetricConfiguration {
private final String help;
- private final Collection<String> labels;
+ private final List<String> labels;
private final Map<String, Object> props;
}
diff --git
a/agent/plugins/metrics/core/src/main/java/org/apache/shardingsphere/agent/plugin/metrics/core/config/yaml/entity/YamlMetricConfiguration.java
b/agent/plugins/metrics/core/src/main/java/org/apache/shardingsphere/agent/plugin/metrics/core/config/yaml/entity/YamlMetricConfiguration.java
index 85b3293191b..865e552b844 100644
---
a/agent/plugins/metrics/core/src/main/java/org/apache/shardingsphere/agent/plugin/metrics/core/config/yaml/entity/YamlMetricConfiguration.java
+++
b/agent/plugins/metrics/core/src/main/java/org/apache/shardingsphere/agent/plugin/metrics/core/config/yaml/entity/YamlMetricConfiguration.java
@@ -20,9 +20,9 @@ package
org.apache.shardingsphere.agent.plugin.metrics.core.config.yaml.entity;
import lombok.Getter;
import lombok.Setter;
-import java.util.Collection;
import java.util.HashMap;
import java.util.LinkedList;
+import java.util.List;
import java.util.Map;
/**
@@ -38,7 +38,7 @@ public final class YamlMetricConfiguration {
private String help;
- private Collection<String> labels = new LinkedList<>();
+ private List<String> labels = new LinkedList<>();
private Map<String, Object> props = new HashMap<>();
}
diff --git
a/agent/plugins/metrics/core/src/main/java/org/apache/shardingsphere/agent/plugin/metrics/core/config/yaml/swapper/YamlMetricConfigurationSwapper.java
b/agent/plugins/metrics/core/src/main/java/org/apache/shardingsphere/agent/plugin/metrics/core/config/yaml/swapper/YamlMetricConfigurationSwapper.java
index 1fae712666b..f2d5ec9f584 100644
---
a/agent/plugins/metrics/core/src/main/java/org/apache/shardingsphere/agent/plugin/metrics/core/config/yaml/swapper/YamlMetricConfigurationSwapper.java
+++
b/agent/plugins/metrics/core/src/main/java/org/apache/shardingsphere/agent/plugin/metrics/core/config/yaml/swapper/YamlMetricConfigurationSwapper.java
@@ -17,12 +17,16 @@
package
org.apache.shardingsphere.agent.plugin.metrics.core.config.yaml.swapper;
+import com.google.common.base.Preconditions;
+import com.google.common.base.Strings;
import lombok.AccessLevel;
import lombok.NoArgsConstructor;
import
org.apache.shardingsphere.agent.plugin.metrics.core.config.MetricConfiguration;
import
org.apache.shardingsphere.agent.plugin.metrics.core.config.yaml.entity.YamlMetricConfiguration;
import java.util.Collections;
+import java.util.List;
+import java.util.Map;
/**
* YAML metric configuration swapper.
@@ -37,7 +41,13 @@ public final class YamlMetricConfigurationSwapper {
* @return metric configuration
*/
public static MetricConfiguration swap(final YamlMetricConfiguration
yamlConfig) {
- return new MetricConfiguration(yamlConfig.getId(),
yamlConfig.getType(), yamlConfig.getHelp(),
- null == yamlConfig.getLabels() ? Collections.emptyList() :
yamlConfig.getLabels(), null == yamlConfig.getProps() ? Collections.emptyMap()
: yamlConfig.getProps());
+ String id = yamlConfig.getId();
+ Preconditions.checkArgument(!Strings.isNullOrEmpty(id), "Metric ID can
not be null.");
+ String type = yamlConfig.getType();
+ Preconditions.checkArgument(!Strings.isNullOrEmpty(type), "Metric type
can not be null.");
+ String help = yamlConfig.getHelp();
+ List<String> labels = null == yamlConfig.getLabels() ?
Collections.emptyList() : yamlConfig.getLabels();
+ Map<String, Object> props = null == yamlConfig.getProps() ?
Collections.emptyMap() : yamlConfig.getProps();
+ return new MetricConfiguration(id, type, help, labels, props);
}
}
diff --git
a/agent/plugins/metrics/type/prometheus/src/main/java/org/apache/shardingsphere/agent/plugin/metrics/prometheus/wrapper/PrometheusWrapperFactory.java
b/agent/plugins/metrics/type/prometheus/src/main/java/org/apache/shardingsphere/agent/plugin/metrics/prometheus/wrapper/PrometheusWrapperFactory.java
index 8506290d6b5..539c13510f5 100644
---
a/agent/plugins/metrics/type/prometheus/src/main/java/org/apache/shardingsphere/agent/plugin/metrics/prometheus/wrapper/PrometheusWrapperFactory.java
+++
b/agent/plugins/metrics/type/prometheus/src/main/java/org/apache/shardingsphere/agent/plugin/metrics/prometheus/wrapper/PrometheusWrapperFactory.java
@@ -33,8 +33,6 @@ import
org.apache.shardingsphere.agent.plugin.metrics.prometheus.wrapper.type.Ga
import
org.apache.shardingsphere.agent.plugin.metrics.prometheus.wrapper.type.HistogramWrapper;
import
org.apache.shardingsphere.agent.plugin.metrics.prometheus.wrapper.type.SummaryWrapper;
-import java.util.ArrayList;
-import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.Optional;
@@ -57,9 +55,6 @@ public final class PrometheusWrapperFactory implements
MetricsWrapperFactory {
}
private Optional<MetricsWrapper> create(final MetricConfiguration
metricConfig) {
- if (null == metricConfig.getType()) {
- return Optional.empty();
- }
switch (metricConfig.getType().toUpperCase()) {
case "COUNTER":
return Optional.of(createCounter(metricConfig));
@@ -76,31 +71,31 @@ public final class PrometheusWrapperFactory implements
MetricsWrapperFactory {
private MetricsWrapper createCounter(final MetricConfiguration
metricConfig) {
Counter.Builder builder =
Counter.build().name(metricConfig.getId()).help(metricConfig.getHelp());
- List<String> metricLabels = (List<String>) metricConfig.getLabels();
- if (null != metricLabels) {
- builder.labelNames(metricLabels.toArray(new String[0]));
+ List<String> labels = metricConfig.getLabels();
+ if (!labels.isEmpty()) {
+ builder.labelNames(labels.toArray(new String[0]));
}
return new CounterWrapper(builder.register());
}
private MetricsWrapper createGauge(final MetricConfiguration metricConfig)
{
Gauge.Builder builder =
Gauge.build().name(metricConfig.getId()).help(metricConfig.getHelp());
- Collection<String> metricLabels = metricConfig.getLabels();
- if (null != metricLabels) {
- builder.labelNames(metricLabels.toArray(new String[0]));
+ List<String> labels = metricConfig.getLabels();
+ if (!labels.isEmpty()) {
+ builder.labelNames(labels.toArray(new String[0]));
}
return new GaugeWrapper(builder.register());
}
private MetricsWrapper createHistogram(final MetricConfiguration
metricConfig) {
Histogram.Builder builder =
Histogram.build().name(metricConfig.getId()).help(metricConfig.getHelp());
- Collection<String> metricLabels = metricConfig.getLabels();
- if (null != metricLabels) {
- builder.labelNames(metricLabels.toArray(new String[0]));
+ List<String> labels = metricConfig.getLabels();
+ if (!labels.isEmpty()) {
+ builder.labelNames(labels.toArray(new String[0]));
}
- Map<String, Object> metricProps = metricConfig.getProps();
- if (null != metricProps) {
- parseHistogramProperties(builder, metricProps);
+ Map<String, Object> props = metricConfig.getProps();
+ if (!props.isEmpty()) {
+ parseHistogramProperties(builder, props);
}
return new HistogramWrapper(builder.register());
}
@@ -126,9 +121,9 @@ public final class PrometheusWrapperFactory implements
MetricsWrapperFactory {
private MetricsWrapper createSummary(final MetricConfiguration
metricConfig) {
Summary.Builder builder =
Summary.build().name(metricConfig.getId()).help(metricConfig.getHelp());
- Collection<String> metricLabels = metricConfig.getLabels();
- if (null != metricLabels) {
- builder.labelNames(metricLabels.toArray(new String[0]));
+ List<String> labels = metricConfig.getLabels();
+ if (!labels.isEmpty()) {
+ builder.labelNames(labels.toArray(new String[0]));
}
return new SummaryWrapper(builder.register());
}
@@ -144,9 +139,7 @@ public final class PrometheusWrapperFactory implements
MetricsWrapperFactory {
}
private GaugeMetricFamily createGaugeMetricFamily(final
MetricConfiguration metricConfig) {
- Collection<String> labels = metricConfig.getLabels();
- return null == labels
- ? new GaugeMetricFamily(metricConfig.getId(),
metricConfig.getHelp(), 1d)
- : new GaugeMetricFamily(metricConfig.getId(),
metricConfig.getHelp(), new ArrayList<>(labels));
+ List<String> labels = metricConfig.getLabels();
+ return labels.isEmpty() ? new GaugeMetricFamily(metricConfig.getId(),
metricConfig.getHelp(), 1d) : new GaugeMetricFamily(metricConfig.getId(),
metricConfig.getHelp(), labels);
}
}