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