Для создания метрики количества вызовов за определенный интервал времени в Spring Micrometer можно использовать класс Timer.
Для начала, добавьте зависимость Micrometer в файл pom.xml:
<dependency> <groupId>io.micrometer</groupId> <artifactId>micrometer-registry-prometheus</artifactId> </dependency>
Затем, создайте конфигурационный файл application.properties и включите подсчет метрик:
management.metrics.export.prometheus.enabled=true
Теперь вы можете создать метрику количества вызовов с помощью класса Timer. Вот пример кода:
import io.micrometer.core.instrument.Counter; import io.micrometer.core.instrument.Metrics; import io.micrometer.core.instrument.Timer; import org.springframework.stereotype.Service; @Service public class MyService { private final Timer timer; public MyService() { timer = Timer.builder("my_service.calls") .description("Number of calls to MyService") .register(Metrics.globalRegistry); } public void performOperation() { // Ваш код // Регистрируем вызов метрики timer.record(() -> { // Логика вашего метода }); } }
В приведенном выше примере класс MyService создает метрику с именем "my_service.calls". Метод performOperation регистрирует вызов метрики с помощью метода record(). Внутри метода record() вы можете поместить всю логику вашего метода, чтобы замерить время выполнения.
Вы также можете использовать аннотации вместо явного создания метрик в коде. Вот пример аннотации:
import io.micrometer.core.annotation.Timed; import org.springframework.stereotype.Service; @Service public class MyService { @Timed("my_service.calls") public void performOperation() { // Ваш код } }
Аннотация @Timed будет автоматически регистрировать вызовы метрики при выполнении метода performOperation.
Это основы создания метрики количества вызовов за интервал времени в Spring Micrometer. Основываясь на этом примере, вы можете настроить и сохранять другие метрики, а также использовать различные методы и настройки для более точного измерения и отображения статистики.