Bladeren bron

feat(监控): 优化micrometer初始化逻辑,增加ignore配置

zhouhao 2 jaren geleden
bovenliggende
commit
4a421c980f

+ 2 - 0
jetlinks-components/timeseries-component/src/main/java/org/jetlinks/community/timeseries/micrometer/TimeSeriesMeterRegistryConfiguration.java

@@ -2,6 +2,7 @@ package org.jetlinks.community.timeseries.micrometer;
 
 import io.micrometer.core.instrument.MeterRegistry;
 import org.jetlinks.community.timeseries.TimeSeriesManager;
+import org.springframework.boot.actuate.autoconfigure.metrics.export.ConditionalOnEnabledMetricsExport;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
@@ -16,6 +17,7 @@ public class TimeSeriesMeterRegistryConfiguration {
     }
 
     @Bean
+    @ConditionalOnEnabledMetricsExport("simple")
     public MeterRegistry meterRegistry(TimeSeriesMeterRegistrySupplier registrySupplier) {
         // TODO: 2020/2/13 配置化
         return registrySupplier.getMeterRegistry("jetlinks-metrics");

+ 10 - 0
jetlinks-components/timeseries-component/src/main/java/org/jetlinks/community/timeseries/micrometer/TimeSeriesMeterRegistrySupplier.java

@@ -2,6 +2,7 @@ package org.jetlinks.community.timeseries.micrometer;
 
 import io.micrometer.core.instrument.MeterRegistry;
 import io.micrometer.core.instrument.config.NamingConvention;
+import io.micrometer.core.instrument.simple.SimpleMeterRegistry;
 import lombok.Getter;
 import lombok.Setter;
 import org.jetlinks.community.micrometer.MeterRegistrySupplier;
@@ -9,7 +10,9 @@ import org.jetlinks.community.timeseries.TimeSeriesManager;
 import org.jetlinks.community.timeseries.TimeSeriesMetric;
 
 import java.util.HashMap;
+import java.util.HashSet;
 import java.util.Map;
+import java.util.Set;
 
 public class TimeSeriesMeterRegistrySupplier implements MeterRegistrySupplier {
 
@@ -31,6 +34,10 @@ public class TimeSeriesMeterRegistrySupplier implements MeterRegistrySupplier {
 
     @Getter
     @Setter
+    private Set<String> ignore = new HashSet<>();
+
+    @Getter
+    @Setter
     private Map<String, TimeSeriesRegistryProperties> metrics = new HashMap<>();
 
     public TimeSeriesMeterRegistrySupplier(TimeSeriesManager timeSeriesManager) {
@@ -40,6 +47,9 @@ public class TimeSeriesMeterRegistrySupplier implements MeterRegistrySupplier {
 
     @Override
     public MeterRegistry getMeterRegistry(String metric, String... tagKeys) {
+        if (ignore.contains(metric)) {
+            return new SimpleMeterRegistry();
+        }
         TimeSeriesMeterRegistry registry = new TimeSeriesMeterRegistry(timeSeriesManager,
             TimeSeriesMetric.of(metric),
             metrics.getOrDefault(metric, metrics.get("default")),