Я пытаюсь создать пользовательский репортер для DropWizard Metrics, но не могу найти какой-либо ресурс или пример, который показывает, как его создать, расширив ScheduledReporter
. Я мог бы расширить этот класс, следуя за существующими репортерами (CSV, SLF4J и т. Д.), Но где я могу его зарегистрировать?DropWizard Пользовательский репортер
Вот выдержка из пользовательского Reporter Я пытаюсь зарегистрировать:
public class DbReporter extends ScheduledReporter {
private final Connection connection;
private final Clock clock;
public static DbReporter.Builder forRegistry(MetricRegistry registry) {
return new DbReporter.Builder(registry);
}
private DbReporter(MetricRegistry registry, Connection connection, Clock clock, MetricFilter filter, TimeUnit rateUnit, TimeUnit durationUnit) {
super(registry, "db-reporter", filter, rateUnit, durationUnit);
this.connection = connection;
this.clock = clock;
}
//...
public static class Builder {
private final MetricRegistry registry;
private Connection connection;
private TimeUnit rateUnit;
private TimeUnit durationUnit;
private MetricFilter filter;
private Clock clock;
private Builder(MetricRegistry registry) {
this.registry = registry;
this.connection = null;
this.rateUnit = TimeUnit.SECONDS;
this.durationUnit = TimeUnit.MILLISECONDS;
this.filter = MetricFilter.ALL;
this.clock = Clock.defaultClock();
}
public DbReporter.Builder outputTo(Connection connection) {
this.connection = connection;
return this;
}
public DbReporter.Builder convertRatesTo(TimeUnit rateUnit) {
this.rateUnit = rateUnit;
return this;
}
public DbReporter.Builder convertDurationsTo(TimeUnit durationUnit) {
this.durationUnit = durationUnit;
return this;
}
public DbReporter.Builder filter(MetricFilter filter) {
this.filter = filter;
return this;
}
public DbReporter build() {
return new DbReporter(this.registry, this.connection, this.clock, this.filter, this.rateUnit, this.durationUnit);
}
}
}
И это правильный путь для создания пользовательского Reporter или есть другой способ?
Спасибо advance.-
Да, это правильный подход. Вы регистрируете их точно так же, как вы регистрируете другие (см. Документы показателей) – pandaadb
@pandaadb Да, но я ничего не зарегистрировал. –