Как показать активные запросы Dropwizard в логах - PullRequest
0 голосов
/ 09 октября 2018

Этот вопрос связан с вопросом, который я задаю здесь .

Я пытаюсь регистрировать количество активных запросов, которые отправляются в мое приложение Dropwizard каждые 10 минут.Идея состоит в том, чтобы отслеживать использование приложения, чтобы оно могло получить надлежащую поддержку.При этом я пытаюсь представить метрики dropwizard в журналах.Для целей тестирования я создал следующий код:

@GET
@Path("/metrics")
public MetricRegistry provideMetrics() {
    MetricRegistry metrics = new MetricRegistry();
    metrics.register("io.dropwizard.jetty.MutableServletContextHandler.active-dispatches", new Counter());

    logger.info("Total Requests: {}",
                metrics.counter("io.dropwizard.jetty.MutableServletContextHandler.active-requests"));
    logger.info("Active Requests: {}",
                metrics.counter("io.dropwizard.jetty.MutableServletContextHandler.active-dispatches"));
    logger.info("Suspended Requests: {}",
                metrics.counter("io.dropwizard.jetty.MutableServletContextHandler.active-suspended"));

    return metrics;
}

Теоретически, когда я запускаю следующий запрос GET, количество активных и отправленных запросов должно быть равно 1:

@GET
@Path("all")
public List<String> getAll() {
    List<String> list = dao.getAllExamples();
    TimeUnit.SECONDS.sleep(10);
    return list;
}

Тем не менее, вывод из пути metics остается равным 0. Я проверил метрики на административном порту Dropwizard на 8081, и он показывает:

counters: {
io.dropwizard.jetty.MutableServletContextHandler.active-dispatches: {
count: 1
},
io.dropwizard.jetty.MutableServletContextHandler.active-requests: {
count: 1
},
io.dropwizard.jetty.MutableServletContextHandler.active-suspended: {
count: 0
},
}

1 Ответ

0 голосов
/ 09 октября 2018

Похоже, вы создаете совершенно отдельный MetricRegistry и регистрируете новые счетчики с теми же именами, что и у dropwizard.Вам нужен доступ к стандартному MetricRegistry, который создает dropwizard.Вы можете получить доступ к этому через environment.metrics()

...