Зачем когда-либо использовать CachedGauage в метриках Dropwizard?

Я вижу, что есть CachedGauge в метриках DropWizard (ранее Coda Hale Metrics) lib. Мне интересно, почему кто-нибудь когда-либо использовал это?!?

Я понимаю ценность метрики в том, что она точна и актуальна в реальном времени. Если метрика сообщает об устаревшем / кэшированном значении, какой цели она может служить?

2 ответа

Решение

Цитируя ту же ссылку, которую вы добавили:

Кэшированные датчики

Кэшируемый датчик позволяет более эффективно сообщать о значениях, которые дорого рассчитать

Что делать, если ваш показатель занимает около двух секунд секунд или даже минут? Будете ли вы рассчитывать каждый раз, когда пользователь запрашивает данные? Имеет смысл хранить в кеше.

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

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

Например, в примере по ссылке, которую мы кэшируем значение на 10 минут, если loadValue()занимает 5 м, мы кэшируем его только на 10 м - 5 м = 5 минут.

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