Codahale Metrics: использование аннотации @Timed metrics в простой Java

Я пытаюсь добавить метрики в простое Java-приложение, используя метрики codahale. Я хотел бы использовать аннотацию @Timed, но мне неясно, какую MetricRegistry он использует или как сказать, какую MetricRegistry использовать. Приложение представляет собой простое приложение Java 8, построенное с Maven 3, без Spring, без Hibernate.

Я не могу найти документацию о том, как реализовать @Timed в документации dropwizard:https://dropwizard.github.io/metrics/3.1.0/manual/

Я добавил эти зависимости:

<dependency>
  <groupId>io.dropwizard.metrics</grou,pId>
  <artifactId>metrics-core</artifactId>
  <version>3.1.0</version>
</dependency>
<dependency>
  <groupId>com.codahale.metrics</groupId>
  <artifactId>metrics-annotation</artifactId>
  <version>3.0.2</version>
</dependency>

Когда я использую программный вызов Timer, я могу получать отчеты, потому что я знаю, какая MetricsRegistry используется:

static final MetricRegistry metrics = new MetricRegistry();
private void update() throws SQLException {
  Timer.Context time = metrics.timer("domainobject.update").time();
  try {
    [...]
  } finally {
    time.stop();
  }
}

Но когда я использую более элегантную аннотацию @Timed, я понятия не имею, какой реестр используется, и поэтому я не могу создать репортер, что означает, что я не могу получить отчет о показателях (я даже не уверен, действительно ли это так что-нибудь):

@Timed(name = "domainobject.update")
private void update() throws SQLException {
    [...]
}

Посоветуйте, пожалуйста, как заставить аннотации @Timed и другие метрики работать в обычном Java-приложении.

Дополнительная информация: Причина, по которой я нахожу это странным, заключается в том, что я добавил фреймворк Lombok, и аннотации @ Slf4j работают. Я добавил Lombok в качестве зависимости в maven pom.xml:

<dependency>
  <groupId>org.projectlombok</groupId>
  <artifactId>lombok</artifactId>
  <version>1.14.8</version>
</dependency>

И я могу использовать аннотацию класса @ Sl4fj, чтобы добавить регистратор в класс, не загромождая переменные-члены:

@Slf4j
public class App {
  public void logsome(){
    log.info("Hello there");
  }
}

Поэтому, если это возможно, просто добавив зависимость, я считаю, что мне просто не хватает зависимости или конфигурации для получения аннотации codahale @Timed, как описано выше.

(кстати, зацени Ломбок, это облегчит твою жизнь:http://projectlombok.org/ )

Ответы на вопрос(8)

Ваш ответ на вопрос