Если вы используете spring-boot-starter-actuator
, будет создан компонент типа MeterRegistry
. После автоматического подключения это позволяет создавать несколько метрик, таких как счетчики, датчики и метрики. У каждого из них есть свободный конструктор, который вы можете использовать для настройки, например:
Счетчики
A Counter
может использоваться для простого увеличения метрик, например, количество раз, которое метод был вызван.
Counter customCounter = Counter
.builder("my.custom.metric.counter")
.register(meterRegistry);
Используя customCounter.increment()
, вы можете увеличить значение.
Манометры
A 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.