繁体   English   中英

停止使用 Micrometer 向 Prometheus 发送 Spring 启动指标

[英]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时,您将从JvmMetricsAutoConfigurationTomcatMetricsAutoConfiguration等各种配置中获得大量开箱即用的指标。

要过滤掉这些,您可以在 Micrometer 配置中添加一个acceptdeny过滤器,并且只允许您的自定义指标通过。

使用拒绝过滤器的示例:

  @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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM