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 f6d4ca3182 fix MetericsService resource location bug (#11056)
f6d4ca3182 is described below
commit f6d4ca31820a35a18890a6063196e2f7a6459c92
Author: songxiaosheng <[email protected]>
AuthorDate: Wed Nov 30 14:21:32 2022 +0800
fix MetericsService resource location bug (#11056)
---
.../main/java/org/apache/dubbo/metrics/AbstractMetricsReporter.java | 5 ++++-
.../internal/org.apache.dubbo.common.metrics.service.MetricsService | 0
.../resources/META-INF/dubbo/internal/org.apache.dubbo.rpc.Filter | 0
.../boot/actuate/autoconfigure/DubboMetricsAutoConfiguration.java | 5 ++++-
4 files changed, 8 insertions(+), 2 deletions(-)
diff --git
a/dubbo-metrics/dubbo-metrics-api/src/main/java/org/apache/dubbo/metrics/AbstractMetricsReporter.java
b/dubbo-metrics/dubbo-metrics-api/src/main/java/org/apache/dubbo/metrics/AbstractMetricsReporter.java
index a164afda4d..74c0407675 100644
---
a/dubbo-metrics/dubbo-metrics-api/src/main/java/org/apache/dubbo/metrics/AbstractMetricsReporter.java
+++
b/dubbo-metrics/dubbo-metrics-api/src/main/java/org/apache/dubbo/metrics/AbstractMetricsReporter.java
@@ -57,6 +57,7 @@ public abstract class AbstractMetricsReporter implements
MetricsReporter {
private final ErrorTypeAwareLogger logger =
LoggerFactory.getErrorTypeAwareLogger(AbstractMetricsReporter.class);
private final AtomicBoolean initialized = new AtomicBoolean(false);
+ private final AtomicBoolean addGlobalRegistry = new AtomicBoolean(false);
protected final URL url;
protected final List<MetricsCollector> collectors = new ArrayList<>();
@@ -91,8 +92,9 @@ public abstract class AbstractMetricsReporter implements
MetricsReporter {
}
private void addDubboMeterRegistry(){
MeterRegistry globalRegistry = DubboMetrics.globalRegistry;
- if(globalRegistry != null){
+ if(globalRegistry != null && !addGlobalRegistry.get()){
compositeRegistry.add(globalRegistry);
+ addGlobalRegistry.set(true);
}
}
@@ -122,6 +124,7 @@ public abstract class AbstractMetricsReporter implements
MetricsReporter {
NamedThreadFactory threadFactory = new
NamedThreadFactory("metrics-collector-sync-job", true);
collectorSyncJobExecutor = Executors.newScheduledThreadPool(1,
threadFactory);
collectorSyncJobExecutor.scheduleWithFixedDelay(() -> {
+ addDubboMeterRegistry();
collectors.forEach(collector -> {
List<MetricSample> samples = collector.collect();
for (MetricSample sample : samples) {
diff --git
a/dubbo-metrics/dubbo-metrics-api/src/resources/META-INF/dubbo/internal/org.apache.dubbo.common.metrics.service.MetricsService
b/dubbo-metrics/dubbo-metrics-api/src/main/resources/META-INF/dubbo/internal/org.apache.dubbo.common.metrics.service.MetricsService
similarity index 100%
rename from
dubbo-metrics/dubbo-metrics-api/src/resources/META-INF/dubbo/internal/org.apache.dubbo.common.metrics.service.MetricsService
rename to
dubbo-metrics/dubbo-metrics-api/src/main/resources/META-INF/dubbo/internal/org.apache.dubbo.common.metrics.service.MetricsService
diff --git
a/dubbo-metrics/dubbo-metrics-api/src/resources/META-INF/dubbo/internal/org.apache.dubbo.rpc.Filter
b/dubbo-metrics/dubbo-metrics-api/src/main/resources/META-INF/dubbo/internal/org.apache.dubbo.rpc.Filter
similarity index 100%
rename from
dubbo-metrics/dubbo-metrics-api/src/resources/META-INF/dubbo/internal/org.apache.dubbo.rpc.Filter
rename to
dubbo-metrics/dubbo-metrics-api/src/main/resources/META-INF/dubbo/internal/org.apache.dubbo.rpc.Filter
diff --git
a/dubbo-spring-boot/dubbo-spring-boot-actuator/src/main/java/org/apache/dubbo/spring/boot/actuate/autoconfigure/DubboMetricsAutoConfiguration.java
b/dubbo-spring-boot/dubbo-spring-boot-actuator/src/main/java/org/apache/dubbo/spring/boot/actuate/autoconfigure/DubboMetricsAutoConfiguration.java
index b8c825f1d2..e091f272ba 100644
---
a/dubbo-spring-boot/dubbo-spring-boot-actuator/src/main/java/org/apache/dubbo/spring/boot/actuate/autoconfigure/DubboMetricsAutoConfiguration.java
+++
b/dubbo-spring-boot/dubbo-spring-boot-actuator/src/main/java/org/apache/dubbo/spring/boot/actuate/autoconfigure/DubboMetricsAutoConfiguration.java
@@ -20,6 +20,8 @@ package org.apache.dubbo.spring.boot.actuate.autoconfigure;
import io.micrometer.core.instrument.MeterRegistry;
import org.apache.dubbo.metrics.DubboMetrics;
import org.apache.dubbo.spring.boot.actuate.mertics.DubboMetricsBinder;
+import
org.springframework.boot.actuate.autoconfigure.metrics.CompositeMeterRegistryAutoConfiguration;
+import org.springframework.boot.autoconfigure.AutoConfigureAfter;
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import
org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
@@ -34,11 +36,12 @@ import org.springframework.context.annotation.Configuration;
)
@ConditionalOnWebApplication
@ConditionalOnClass({DubboMetrics.class})
+@AutoConfigureAfter(CompositeMeterRegistryAutoConfiguration.class)
public class DubboMetricsAutoConfiguration {
@Bean
@ConditionalOnBean({MeterRegistry.class})
@ConditionalOnMissingBean({DubboMetrics.class, DubboMetricsBinder.class})
- public DubboMetricsBinder tomcatMetricsBinder(MeterRegistry meterRegistry)
{
+ public DubboMetricsBinder dubboMetricsBinder(MeterRegistry meterRegistry) {
return new DubboMetricsBinder(meterRegistry);
}
}