【问题标题】:How Do I Add My Custom Metrics To Dropwizard /metrics如何将我的自定义指标添加到 Dropwizard /metrics
【发布时间】:2017-05-26 09:07:03
【问题描述】:

我正在使用Dropwizard Metrics 库来记录我的应用程序中各种操作的时间,使用TimerConsoleReporter 并将countmean rate 等记录到控制台。

我希望这些数字也可以在 /metrics servlet 上使用,并且基于 http://metrics.dropwizard.io/3.1.0/manual/servlets/ 我需要访问名为 com.codahale.metrics.servlets.MetricsServlet.registry 的 MetricRegistry。但是查看文档和代码,我看不出这是如何完成的。我现有的 /metrics 仅输出 dropwizard 和 jetty 类的计时器

[编辑]

private static final MetricRegistry metricRegistry = new MetricRegistry();
...
Timer timer = metricRegistry.timer(name("com.codahale.metrics.servlets.MetricsServlet.registry","testval"));

如何将我的计时器连接到 /metrics 的输出?

【问题讨论】:

  • 默认情况下,servlet 会列出 DW 指标注册表中的所有指标。您是否在正确的注册表中注册了您的指标?
  • 谢谢@pandaadb 我已经添加了获取注册表和计时器的代码。它对我来说看起来不正确,但看不到你是如何用 MetricsServlet 专门注册它的
  • 这是你的问题,马特。您使用的指标注册表不是 DW 提供的。在您的启动代码中,您有一个已提供指标注册表的环境。 DW 使用这个来显示该 servlet 上的指标
  • 非常感谢。不知道我是如何错过环境提供的。如果你想把它作为答案,我可以接受它

标签: java dropwizard codahale-metrics


【解决方案1】:

默认情况下,Dropwizard 在其指标端点上显示所有指标,除了使用 Metrics 之外,您无需执行任何操作。

唯一需要注意的是,DW 提供了用于此目的的指标注册表。通过定义你自己的,DW 找不到正确的指标。这些可以在 run 方法中传递给应用程序的环境中找到:

    @Override
    public void run(Configuration configuration, Environment environment) throws Exception {

        MetricRegistry metrics = environment.metrics();
    }

谢谢,

阿图尔

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多