2

Я пытаюсь использовать Spectator для подсчета. Использование выглядит следующим образом:Почему com.netflix.spectator.api.Counter производит «нормализованные» значения?

@Autowired 
private Registry registry; 

и чем вызов:

registry.counter("ping").count(); 

Когда я иду в http://localhost:8080/metrics я вижу:

"ping(type=NORMALIZED)":0.05 

Почему это происходит? Как настроить Spectator для подсчета?

ответ

4

В языке Зрителя для измерения скорости, с которой происходит какое-либо событие (т. Е. Всегда нормируется в течение некоторого временного домена), используется параметр Counter. Более подробное объяснение доступно here. Эта нормализация выполняется издателем метрик до того, как метрика отправлена ​​на сервер показателей (например, Atlas настроен на публикацию с фиксированным интервалом времени и поэтому нормализуется в течение этого временного окна). Поскольку для счетчика важна ставка, дискретные события счетчика в течение временного окна не нужно сохранять.

Если вместо этого вы просто хотите, чтобы подсчитать общее число вхождений то через все время, вы должны использовать Gauge (см explanation) вместо этого. Однако я хотел бы предупредить вас, что при длительном обслуживании подсчет общего количества событий какого-либо события может в конечном итоге переполнить. Как правило, датчики используются для подсчета объектов, которые имеют естественную верхнюю границу (и не обязательно монотонно возрастают), например, общее количество элементов в кеше или количество запущенных потоков.

Смежные вопросы