Видел сегодня не класс, а целый проект даже, как водится, на Джаве. Всё жутко абстрактно, кустомизабильно, везде передаются фабрики, интерфейсы, можно передавать свою реализацию часов (если докопаться, то в итоге все сведется к currentTimeMillis), чтобы вытащить значение, передается абстрактрный визитор с коллбеком. Ну так вот. При этом в этой же самой библиотеке (она собирает метрики) единственное, что прибито гвоздями - это интервалы, за которые хранятся данные (1, 5, 15 минут) - прям методы getFifteenMinuteRate, get98thPercentile. А 97-й перцентиль уже нельзя.
Я не то чтобы против прибивания гвоздями, просто какой контраст с тем, насколько развесистая второстепенная функциональность, и насколько топорная основная. Мне всегда казалось, что качать надо суть, а обвеска может быть туповатой - свою понапишут, если прижмет.
Чтобы не голословничать:
https://github.com/codahale/metrics/blob/master/metrics-graphite/src/main/java/com/yammer/metrics/graphite/GraphiteReporter.java