Измерение скорости событий с помощью микрометра - PullRequest
0 голосов
/ 01 апреля 2019

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

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

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

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

1 Ответ

0 голосов
/ 01 апреля 2019

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

Если вы измеряете частоту того, как часто что-то происходит, вы можете определить это, используя 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));
...