我有启用了弹簧执行器的spring boot 2 REST应用程序。默认情况下,spring在/metrics
端点中生成许多度量标准(jvm,cpu,内存等)。除此之外,我还使用了Micrometer API创建自定义指标。到目前为止,它的运行情况非常好。
现在,我只需要生成自定义指标,但是禁用spring提供的所有默认指标。请注意,我不想想要禁用/metrics
端点,但是我只想禁用默认指标。
现在有可能直接/间接吗?
感谢您的任何意见和建议!
与Spring Boot中的大多数事情一样,默认指标是通过各种自动配置类配置的。要禁用默认指标,请使用exclude
上的@SpringBootApplication
属性排除其自动配置类。要查看涉及的自动配置,可以使用--debug
启动应用程序,或查看source code。
@SpringBootApplication(exclude = {
CompositeMeterRegistryAutoConfiguration.class,
DataSourcePoolMetricsAutoConfiguration.class,
TomcatMetricsAutoConfiguration.class,
SimpleMetricsExportAutoConfiguration.class,
SystemMetricsAutoConfiguration.class })
您需要排除所有在春季启动时负责默认指标的指标自动配置类。您可以在此处找到所有指标自动配置类。https://github.com/spring-projects/spring-boot/blob/v2.1.1.RELEASE/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/resources/META-INF/spring.factories
排除像这样由MetricsAutoConfiguration.class
连线的指标:
@SpringBootApplication(exclude = MetricsAutoConfiguration.class)
从理论上讲,应该可以扩展org.springframework.boot.actuate.metrics.MetricsEndpoint并仅公开要公开的信息。
但是,我建议始终定义一个新的端点来处理您的特定用例。在这种情况下,您将不会太紧密地绑定到Spring库。
排除像这样由MetricsAutoConfiguration.class
连线的指标:
@SpringBootApplication(exclude = MetricsAutoConfiguration.class)