Как получить метрики из пружинного микрометра

Я экспериментировал с микрометром, используя приведенный ниже код. Как настроить агрегацию скорости и получить агрегированные данные скорости от заданного счетчика в приложении. Под агрегированной скоростью я имею в виду данные за предыдущий интервал публикации?

final MeterRegistry myRegistry = new SimpleMeterRegistry();
final Random random = new Random();
for (iteration = 0; iteration < 1000; iteration++)
{
    final int randomNum = random.nextInt(10);
    final Counter myCounter = myRegistry.counter("myTestCounter", "random", Integer.toString(randomNum));
    myCounter.increment();
    Thread.sleep(100);
}
System.out.println("measure = [" + myRegistry.counter("myTestCounter", "random", "0").measure());
System.out.println("count = [" + myRegistry.counter("myTestCounter", "random", "0").count());

Примечание: я не хочу публиковать метрики в любой системе мониторинга. Я хотел бы отслеживать количество запросов данных тегов за интервал (например, успешных / неудачных запросов для данного интервала) в самом приложении и использовать его в целях обеспечения устойчивости.

1 ответ

Решение

Основываясь на комментарии автора проекта, Micrometer намеревается экспортировать метрики во внешнюю готовую систему мониторинга, такую ​​как Prometheus, поэтому ваш подход довольно необычен.

Микрометр поддерживает агрегирование скоростей для систем мониторинга, которые не поддерживают агрегацию скоростей, таких как InfluxDB, и его поддержка исходит от StepMeterRegistry, Но SimpleMeterRegistry не является одним из его подклассов, поэтому вам нужно создать свой собственный, если вы хотите придерживаться подхода.

ОБНОВЛЕНО:

Я создал образец для кастомаStepMeterRegistry,

Другие вопросы по тегам