Java 如何在日志中显示Dropwizard活动请求

Java 如何在日志中显示Dropwizard活动请求,java,counter,dropwizard,metrics,codahale-metrics,Java,Counter,Dropwizard,Metrics,Codahale Metrics,这个问题与我问的问题有关 我正在尝试记录每10分钟向Dropwizard应用程序发出的活动请求数。其目的是跟踪应用程序的使用情况,以便获得适当的支持。在此过程中,我试图将dropwizard指标公开给日志。出于测试目的,我编写了以下代码: @GET @Path("/metrics") public MetricRegistry provideMetrics() { MetricRegistry metrics = new MetricRegistry(); metrics.reg

这个问题与我问的问题有关

我正在尝试记录每10分钟向Dropwizard应用程序发出的活动请求数。其目的是跟踪应用程序的使用情况,以便获得适当的支持。在此过程中,我试图将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;
}

看起来您正在创建一个完全独立的
MetricRegistry
,并使用与dropwizard相同的名称注册新计数器。您需要的是访问dropwizard创建的默认
MetricRegistry
。您可以通过

访问它。看起来您正在创建一个完全独立的
MetricRegistry
,并使用与dropwizard相同的名称注册新计数器。您需要的是访问dropwizard创建的默认
MetricRegistry
。你可以通过

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
},
}