Измерение скорости событий с помощью микрометра

109
12

В Dropwizard есть что-то вроде метра: https://metrics.dropwizard.io/3.1.0/getting-started/#meters. Он позволяет мне измерять скорость событий, просто вызывая метод mark() для метрики.

Как я могу сделать это в микрометре?

Я могу использовать таймеры, но я не хочу передавать объект Timer.Sample место, где мне нужно вызывать метод stop().

Еще одна недостающая вещь в Micrometer по сравнению с Dropwizard - это метрика, которая может содержать текстовое сообщение, например, индикатор в Dropwizard.

спросил(а) 2021-01-25T18:25:45+03:00 5 месяцев назад
1
Решение
77

Микрометр использует сильные стороны современных метрик бэкэндов. Таким образом, конкретный ответ на ваш вопрос зависит от того, что вы используете. Взять, например, Прометея. Бэкэнд может рассчитать ставку для вас.

Если вы измеряете частоту того, как часто что-то происходит, вы можете определить это с помощью Counter. Возьмите счетчик logback_events_total в качестве примера. Это просто подсчет числа написанных сообщений журнала.

При оповещении или графике вы можете написать запрос, например, rate(logback_events_total[1m]) и вы сможете увидеть скорость, с которой журналы были записаны со скоростью 1m. У вас есть возможность перейти в окно с 1m, до 5m или 1h без изменения кода.

Что касается текстовых метрик, то они не полезны для оповещения (но могут быть полезны при использовании предложения join). Типичное решение в этом случае - создать датчик со значением 1 или 0 и сделать текстовое значение тегом. Например:

registry.gaugle('app.info', Tags.of("version","1.0.beta3", this, () -> 1.0));

ответил(а) 2021-01-25T18:25:45+03:00 5 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема