Зачем когда-либо использовать CachedGauage в метриках Dropwizard?
Я вижу, что есть CachedGauge
в метриках DropWizard (ранее Coda Hale Metrics) lib. Мне интересно, почему кто-нибудь когда-либо использовал это?!?
Я понимаю ценность метрики в том, что она точна и актуальна в реальном времени. Если метрика сообщает об устаревшем / кэшированном значении, какой цели она может служить?
2 ответа
Цитируя ту же ссылку, которую вы добавили:
Кэшированные датчики
Кэшируемый датчик позволяет более эффективно сообщать о значениях, которые дорого рассчитать
Что делать, если ваш показатель занимает около двух секунд секунд или даже минут? Будете ли вы рассчитывать каждый раз, когда пользователь запрашивает данные? Имеет смысл хранить в кеше.
Такой показатель не является тем, что я бы назвал в реальном времени, потому что само обновление занимает больше времени, чем отображение информации для пользователя. Метрика уже устарела, когда заканчивает расчет.
Просто предупреждение при использовании
CachedGauge
. Вам необходимо учитывать время вычисления при указании времени, в течение которого вы кэшируете это значение. Это связано с тем, что период истечения срока действия кэша начинает отсчитываться до того, как будет выполнено вычисление, а не период кэширования после вычисления значения.
Например, в примере по ссылке, которую мы кэшируем значение на 10 минут, если
loadValue()
занимает 5 м, мы кэшируем его только на 10 м - 5 м = 5 минут.