如何停止Spring Boot通过Micrometer向Prometheus推送默认指标?
仅推送自定义指标的解决方案
要只保留你自己定义的指标、停止推送Spring Boot默认生成的通用指标,有两种实用的方式:
方式一:通过MeterFilter精准过滤(推荐)
创建一个配置类,添加自定义的MeterFilter Bean,只允许指定前缀或名称的指标被采集和推送:
按前缀匹配(适合批量自定义指标)
如果你的自定义指标都有统一前缀(比如示例里的sb_console_),可以用前缀过滤:
import io.micrometer.core.instrument.Meter; import io.micrometer.core.instrument.config.MeterFilter; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration public class MetricsFilterConfig { @Bean public MeterFilter customMetricFilter() { // 只保留名称以"sb_console_"开头的指标 return MeterFilter.denyUnless(meter -> meter.getId().getName().startsWith("sb_console_")); } }
按具体名称匹配(适合少量自定义指标)
如果自定义指标数量不多,也可以直接指定允许的指标名称:
@Bean public MeterFilter customMetricFilter() { return MeterFilter.denyUnless(meter -> meter.getId().getName().equals("sb_console_test_counter") // 可继续添加其他自定义指标,用||连接 // || meter.getId().getName().equals("another_custom_metric") ); }
方式二:通过配置文件关闭特定内置指标采集
如果明确知道哪些内置指标类别不需要,可以在配置文件中直接关闭对应类别的指标采集:
YAML格式(application.yml)
management: metrics: enable: tomcat: false # 关闭Tomcat相关指标 jvm: false # 关闭JVM相关指标 system: false # 关闭系统相关指标 logback: false # 关闭Logback相关指标 # 其他不需要的类别都可以设为false
Properties格式(application.properties)
management.metrics.enable.tomcat=false management.metrics.enable.jvm=false management.metrics.enable.system=false management.metrics.enable.logback=false
这种方式适合针对性关闭某类内置指标,但如果自定义指标较多,还是方式一的过滤更灵活。
内容的提问来源于stack exchange,提问作者adesai
相关产品推荐
相关产品推荐

