Browse Source

【新增】集成 Prometheus 监控点

YunaiV 2 years ago
parent
commit
4dfa816a5a

+ 6 - 0
yudao-framework/yudao-spring-boot-starter-monitor/pom.xml

@@ -58,6 +58,12 @@
             <artifactId>apm-toolkit-opentracing</artifactId>
         </dependency>
 
+        <!-- Micrometer 对 Prometheus 的支持 -->
+        <dependency>
+            <groupId>io.micrometer</groupId>
+            <artifactId>micrometer-registry-prometheus</artifactId>
+        </dependency>
+
         <dependency>
             <groupId>de.codecentric</groupId>
             <artifactId>spring-boot-admin-starter-client</artifactId> <!-- 实现 Spring Boot Admin Server 服务端 -->

+ 27 - 0
yudao-framework/yudao-spring-boot-starter-monitor/src/main/java/cn/iocoder/yudao/framework/tracer/config/YudaoMetricsAutoConfiguration.java

@@ -0,0 +1,27 @@
+package cn.iocoder.yudao.framework.tracer.config;
+
+import io.micrometer.core.instrument.MeterRegistry;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.boot.actuate.autoconfigure.metrics.MeterRegistryCustomizer;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * Metrics 配置类
+ *
+ * @author 芋道源码
+ */
+@Configuration
+@ConditionalOnClass({MeterRegistryCustomizer.class})
+@ConditionalOnProperty(prefix = "yudao.metrics", value = "enable", matchIfMissing = true) // 允许使用 yudao.metrics.enable=false 禁用 Metrics
+public class YudaoMetricsAutoConfiguration {
+
+    @Bean
+    public MeterRegistryCustomizer<MeterRegistry> metricsCommonTags(
+            @Value("${spring.application.name}") String applicationName) {
+        return registry -> registry.config().commonTags("application", applicationName);
+    }
+
+}

+ 2 - 1
yudao-framework/yudao-spring-boot-starter-monitor/src/main/resources/META-INF/spring.factories

@@ -1,2 +1,3 @@
 org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
-  cn.iocoder.yudao.framework.tracer.config.YudaoTracerAutoConfiguration
+  cn.iocoder.yudao.framework.tracer.config.YudaoTracerAutoConfiguration,\
+  cn.iocoder.yudao.framework.tracer.config.YudaoMetricsAutoConfiguration