【问题标题】:How to show Dropwizard active requests in logs如何在日志中显示 Dropwizard 活动请求
【发布时间】:2018-10-09 13:23:53
【问题描述】:

这个问题与我问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
},
}

【问题讨论】:

    标签: java counter dropwizard metrics codahale-metrics


    【解决方案1】:

    看起来您正在创建一个完全独立的 MetricRegistry 并注册与 dropwizard 名称相同的新计数器。您需要访问 dropwizard 创建的默认 MetricRegistry。您可以通过environment.metrics() 访问此内容

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-12-01
      • 2019-12-15
      • 2017-10-27
      • 2015-07-03
      • 1970-01-01
      • 2020-05-17
      • 1970-01-01
      相关资源
      最近更新 更多