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);
     }
 }

Reply via email to