This is an automated email from the ASF dual-hosted git repository.
albumenj pushed a commit to branch 3.2
in repository https://gitbox.apache.org/repos/asf/dubbo.git
The following commit(s) were added to refs/heads/3.2 by this push:
new 0d430985a3 Metrics collection is enabled by default (#11955)
0d430985a3 is described below
commit 0d430985a3efe88438e49ad3f935983f8bb59499
Author: wxbty <[email protected]>
AuthorDate: Wed Mar 29 20:33:46 2023 +0800
Metrics collection is enabled by default (#11955)
* default enable
* fix ci
* add Prometheus judge
* fix
* revert default
---------
Co-authored-by: x-shadow-man <[email protected]>
---
.../config/deploy/DefaultApplicationDeployer.java | 37 +++++++++++++++-------
.../collector/AggregateMetricsCollector.java | 4 +--
2 files changed, 28 insertions(+), 13 deletions(-)
diff --git
a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/deploy/DefaultApplicationDeployer.java
b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/deploy/DefaultApplicationDeployer.java
index 047a093c55..4220ba5fec 100644
---
a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/deploy/DefaultApplicationDeployer.java
+++
b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/deploy/DefaultApplicationDeployer.java
@@ -363,18 +363,33 @@ public class DefaultApplicationDeployer extends
AbstractDeployer<ApplicationMode
private void initMetricsReporter() {
DefaultMetricsCollector collector =
applicationModel.getBeanFactory().getBean(DefaultMetricsCollector.class);
- MetricsConfig metricsConfig = configManager.getMetrics().orElse(null);
+ Optional<MetricsConfig> configOptional = configManager.getMetrics();
+
// TODO compatible with old usage of metrics, remove protocol check
after new metrics is ready for use.
- if (metricsConfig != null &&
PROTOCOL_PROMETHEUS.equals(metricsConfig.getProtocol())) {
- collector.setCollectEnabled(true);
- collector.collectApplication(applicationModel);
-
collector.setThreadpoolCollectEnabled(Optional.ofNullable(metricsConfig.getEnableThreadpoolMetrics()).orElse(true));
- String protocol = metricsConfig.getProtocol();
- MetricsReporterFactory metricsReporterFactory =
getExtensionLoader(MetricsReporterFactory.class).getAdaptiveExtension();
- MetricsReporter metricsReporter =
metricsReporterFactory.createMetricsReporter(metricsConfig.toUrl());
- metricsReporter.init();
- applicationModel.getBeanFactory().registerBean(metricsReporter);
+ boolean importMetricsPrometheus; // Use package references instead of
config checks
+ try {
+ Class.forName("io.micrometer.prometheus.PrometheusConfig");
+ importMetricsPrometheus = true;
+ } catch (ClassNotFoundException e) {
+ importMetricsPrometheus = false;
+ }
+
+ if (!importMetricsPrometheus) {
+ //use old metrics
+ return;
+ }
+
+ MetricsConfig metricsConfig = configOptional.orElse(new
MetricsConfig(applicationModel));
+ if (StringUtils.isBlank(metricsConfig.getProtocol())) {
+ metricsConfig.setProtocol(PROTOCOL_PROMETHEUS);
}
+ collector.setCollectEnabled(true);
+ collector.collectApplication(applicationModel);
+
collector.setThreadpoolCollectEnabled(Optional.ofNullable(metricsConfig.getEnableThreadpoolMetrics()).orElse(true));
+ MetricsReporterFactory metricsReporterFactory =
getExtensionLoader(MetricsReporterFactory.class).getAdaptiveExtension();
+ MetricsReporter metricsReporter =
metricsReporterFactory.createMetricsReporter(metricsConfig.toUrl());
+ metricsReporter.init();
+ applicationModel.getBeanFactory().registerBean(metricsReporter);
}
@@ -1122,7 +1137,7 @@ public class DefaultApplicationDeployer extends
AbstractDeployer<ApplicationMode
private void startMetricsCollector() {
DefaultMetricsCollector collector =
applicationModel.getBeanFactory().getBean(DefaultMetricsCollector.class);
- if(Objects.nonNull(collector) &&
collector.isThreadpoolCollectEnabled()) {
+ if (Objects.nonNull(collector) &&
collector.isThreadpoolCollectEnabled()) {
collector.registryDefaultSample();
}
}
diff --git
a/dubbo-metrics/dubbo-metrics-default/src/main/java/org/apache/dubbo/metrics/collector/AggregateMetricsCollector.java
b/dubbo-metrics/dubbo-metrics-default/src/main/java/org/apache/dubbo/metrics/collector/AggregateMetricsCollector.java
index 513420a9b1..0207a06941 100644
---
a/dubbo-metrics/dubbo-metrics-default/src/main/java/org/apache/dubbo/metrics/collector/AggregateMetricsCollector.java
+++
b/dubbo-metrics/dubbo-metrics-default/src/main/java/org/apache/dubbo/metrics/collector/AggregateMetricsCollector.java
@@ -66,7 +66,7 @@ public class AggregateMetricsCollector implements
MetricsCollector, MetricsListe
this.applicationModel = applicationModel;
ConfigManager configManager =
applicationModel.getApplicationConfigManager();
MetricsConfig config = configManager.getMetrics().orElse(null);
- if (config != null && config.getAggregation() != null &&
Boolean.TRUE.equals(config.getAggregation().getEnabled())) {
+ if (config != null && config.getAggregation() != null &&
(config.getAggregation().getEnabled() == null ||
Boolean.TRUE.equals(config.getAggregation().getEnabled()))) {
// only registered when aggregation is enabled.
registerListener();
@@ -94,7 +94,7 @@ public class AggregateMetricsCollector implements
MetricsCollector, MetricsListe
private void onRequestEvent(MethodEvent event) {
- MethodMetric metric = event.getMethodMetric();
+ MethodMetric metric = event.getMethodMetric();
String type = event.getType();