Установите время начала для образца гистограммы

Случай использования

Мы получили несколько журналов изменений, хранящихся в базе данных, и хотим создать гистограмму, отслеживающую продолжительность между изменениями.

Эта проблема

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

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