如何在日志中显示 Dropwizard 活动请求
How to show Dropwizard active requests in logs
这个问题与我问的问题有关here。
我正在尝试记录每 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;
}
但是,我创建的 metics 路径的输出仍然为 0。我检查了 8081 上 Dropwizard 管理端口的指标,它显示:
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
},
}
看起来您正在创建一个完全独立的 MetricRegistry
并注册与 dropwizard 同名的新计数器。您需要访问 dropwizard 创建的默认值 MetricRegistry
。您可以通过 environment.metrics()
访问
这个问题与我问的问题有关here。
我正在尝试记录每 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;
}
但是,我创建的 metics 路径的输出仍然为 0。我检查了 8081 上 Dropwizard 管理端口的指标,它显示:
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
},
}
看起来您正在创建一个完全独立的 MetricRegistry
并注册与 dropwizard 同名的新计数器。您需要访问 dropwizard 创建的默认值 MetricRegistry
。您可以通过 environment.metrics()