如何在Sping-boot中创建指标?

时间:2019-04-23 10:18:48

标签: spring-boot spring-boot-actuator

如何在SpringBoot2.1.4.RELEASE中创建指标?

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

2 个答案:

答案 0 :(得分:0)

您可以使用千分尺:

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micrometer</groupId>
            <artifactId>micrometer-registry-prometheus</artifactId>
        </dependency>

这将为您提供终点:/actuator/prometheus

答案 1 :(得分:0)

如果您使用的是spring-boot-starter-actuator,将创建类型为MeterRegistry的bean。自动连线后,您就可以创建多个指标,例如计数器,量规和指标。每个工具都有一个流利的构建器,您可以使用它来进行设置,例如:

计数器

Counter可用于简单的增量指标,例如,调用方法的次数。

Counter customCounter = Counter
    .builder("my.custom.metric.counter")
    .register(meterRegistry);

通过使用customCounter.increment(),您可以增加该值。

仪表

另一方面,Gauge是动态/实时值,应直接测量。一个例子是连接池的大小:

 Gauge
      .builder("my.custom.metric.gauge", () -> connectionPool.size())
      .register(meterRegistry);

构建器允许您传递Supplier来度量所需的任何内容。

计时器

顾名思义,它可以用来衡量执行某项操作所需的时间,例如:

Timer customTimer = Timer
     .builder("my.custom.metric.timer")
     .register(meterRegistry);

通过使用customTimer.record(() -> myMethod()),您可以添加有关调用myMethod()所需时间的度量。


运行应用程序时,您应该能够访问这些指标。如果要通过HTTP查看它们,可以启用指标端点,如下所示:

management.endpoints.web.exposure.include=metrics # Enable metrics endpoint

之后,您应该可以访问http://localhost:8080/actuator来查看已启用的端点列表,其中应包含http://localhost:8080/actuator/metrics

此API应该返回可用指标的列表,可以通过http://localhost:8080/actuator/metrics/my.custom.metric.counter进行访问。