
[英]Spring Boot metrics for Prometheus using Micrometer or Spring Metrics
[英]Stop sending Spring boot metrics to Prometheus with Micrometer
我有一个 Spring 启动应用程序,我通过 Pushgateway 将服务中生成的自定义指标发送到 Prometheus。
我正在使用Prometheus Pushgateway with Micrometer,主要基于本教程: https://luramarchanjo.tech/2020/01/05/spring-boot-2.2-and-prometheus-pushgateway-with-micrometer.ZFC35FDC70D5FC69D269883A822C7A5E
我的pom.xml
中有以下依赖项
<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-core</artifactId>
</dependency>
<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-registry-prometheus</artifactId>
</dependency>
<dependency>
<groupId>io.prometheus</groupId>
<artifactId>simpleclient_pushgateway</artifactId>
<version>0.16.0</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
并发送自定义指标:
Counter counter = Counter.builder("sb_console_test_counter").register(meterRegistry);
counter.increment();
它工作正常,我可以查看应用程序生成的自定义指标,但除此之外,我还看到了 Spring 引导生成的应用程序特定指标,例如
tomcat_sessions_active_current_sessions tomcat_sessions_active_max_sessions
等等
我只想捕获由我的代码生成的自定义指标,而不是任何其他通用指标,我该如何停止发送呢?
当您添加依赖项spring-boot-starter-actuator
时,您将从JvmMetricsAutoConfiguration
和TomcatMetricsAutoConfiguration
等各种配置中获得大量开箱即用的指标。
要过滤掉这些,您可以在 Micrometer 配置中添加一个accept
或deny
过滤器,并且只允许您的自定义指标通过。
使用拒绝过滤器的示例:
@Bean
public MeterRegistryCustomizer<MeterRegistry> metricsRegistryConfig() {
return registry -> registry.config()
.meterFilter(MeterFilter.deny(id -> !id.getName().startsWith("sb_console")));
}
以上将拒绝任何不以sb_console
开头的指标。
有关仪表过滤器的更多信息,请参阅此链接
我相信你可以添加这个:
management.metrics.export.defaults.enabled=false
到您的application.properties
。 我在我的一些代码中看到了这一点。 我现在还没有准备好尝试它,但这就是我们在那里拥有它的原因。
如果要添加一些内置指标,则可以添加如下行:
management.metrics.export.<groupname>.enabled=true
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.