Установите время начала для образца гистограммы
Случай использования
Мы получили несколько журналов изменений, хранящихся в базе данных, и хотим создать гистограмму, отслеживающую продолжительность между изменениями.
Эта проблема
Кажется, нет способа установить время начала Historgram.Timer
Например, мы хотим установить его на lastUpdated
учитывая текущий список изменений.
Пути подхода
1 Подклассы Histogram
Должно сработать. Однако использование Java-lib protected
/package-private
экстенсивно, что делает его сложным без копирования больших частей библиотеки.
2 Использование отражения
После Histogram.Timer
должно быть возможно использовать отражение, чтобы установить start
поле. Поле помечено как private final
и, таким образом, SecurityManager может остановить нас в некоторых средах.
Идеи?
Ни одно из решений не кажется правильным путем, и я подозреваю, что я упускаю из виду более простое решение (но могу найти что-нибудь в SO или Google). Мы используем графану для визуализации наших метрик, если это вообще полезно в этом сценарии.
1 ответ
Вам не нужно подкласс Histogram
, так как вам не нужно использовать Histogram.Timer
только потому, что ваша гистограмма измеряет время.
Просто позвони myHistogram.observe(System.now() - lastUpdated)
каждый раз, когда вы записываете новое изменение в базе данных.