当前位置: 首页 > 知识库问答 >
问题:

Spring启动执行器自定义功能的2个指标

姬自强
2023-03-14

我现在在< code >Spring靴致动器的世界里...

如何从@Service类的自定义函数添加自己的度量?

我希望有这样的东西

meterRegistry.registerNewGauge(
    "animals_count",
    "cats",
    animalCounterService::countCatsFromDatabase
);

目前,我只能找到简单的指标,如

meterRegistry.counter("animals_count").increment();

但当我必须聚合数据库条目之类的东西时,这并没有多大帮助。我需要一个更灵活的。我还发现了类似于<code>的MeterBinder。bindTo但这不起作用。没有错误,没有指标。我已经找了好几个月,但没有成功。

谢谢

共有1个答案

鲜于凯康
2023-03-14

我假设你使用千分尺作为指标,对吧?

如果是这样,您可以创建一个量规并将其绑定到任何提供返回double的方法的对象,如下所示:

@Service
public class MyService {
...
   public double calculateValueForGauge() {...}
}

MyService service = ...// get from spring
MeterRegistry registry = ... // get from spring


// here is how you can create a gauge and bind it to an arbitrary method of your service
Gauge.builder("some.name.goes.here, service, (service) -> service.calculateValueForGauge())
          .register(registry);

例如,您可以将仪表注册的代码放置到将在应用程序上下文启动时调用的侦听器:

@EventListener
public void onApplicationStarted(ApplicationReadyEvent event) {
  // register gauges here
}
 类似资料:
  • 我想使用actuator为我的spring boot rest web服务实现自定义度量或统计信息,但我找不到简单的教程。例如: 如何显示某个控制器被调用了多少次以及填充了什么确切的参数字段? 我如何创建一个指标,当它的URL被调用时,它会运行某些查询并显示带有某些结果的json

  • 我正在我的项目中使用模块,该模块公开了要监视的RESTendpointURL 默认情况下,仅公开 和 终结点。 根据我的使用案例,我正在通过< code > application . properties 文件自定义endpoint。 我想了解,Spring启动究竟在哪里为和创建实际的endpoint,以及它如何通过HTTP公开它们?

  • 我有一个带有Spring Security微服务的Spring Boot 2,我已使用米计/Spring Actuator配置了该微服务。当我在antMatcher("/驱动器/**")endpoint上permitAll()时,一切都很好。我能够通过正确配置的Prometheus yaml文件检索Prometheus指标。 但是,我的微服务不在防火墙后面,因此对世界开放。我只希望普罗米修斯能够访

  • 春奴B:好的。我从一个STS Spring Starter项目/Maven/Java8/Spring Boot2.0开始,并选择Web和致动器依赖项。它构建和运行良好,并转发到http://localhost:8080/acturet/health。我在主应用程序类中添加了一个“endpoint”,使其看起来像这样。

  • 我们在这个项目上有一个微服务架构,我们使用普罗米修斯和格拉法纳进行监控。这些服务是使用Spring启动实现的,并且通过Spring启动执行器与普罗米修斯集成。该项目中有一些Kafka消费者,并且对于每个@KafkaListenerSpring都会生成一些指标。下面是用于指标的普罗米修斯时间序列 < code > org . spring framework . Kafka . kafkaliste

  • 我目前正在从事一个Spring boot(webflux)项目,在该项目中,我们使用Spring boot-actuator依赖关系在/actuator/prometheusendpoint上公开了我们的应用程序的指标,默认情况下,该依赖关系为我们提供了例如:http\u server\u requests\u seconds\u bucket metric。默认情况下,它有{exception=