Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何将自定义指标添加到Dropwizard/Metrics_Java_Dropwizard_Codahale Metrics - Fatal编程技术网

Java 如何将自定义指标添加到Dropwizard/Metrics

Java 如何将自定义指标添加到Dropwizard/Metrics,java,dropwizard,codahale-metrics,Java,Dropwizard,Codahale Metrics,我正在使用库来记录我的应用程序中各种操作的时间,使用计时器和控制台报告器,并将计数,平均速率等记录到控制台 我希望这些数字也可以在/metrics servlet上获得,并且基于我需要访问名为com.codahale.metrics.servlets.MetricsServlet.registry的MetricRegistry。但是看看文档和代码,我看不出这是怎么做到的。我现有的/metrics仅为dropwizard和jetty类输出计时器 [编辑] private static final

我正在使用库来记录我的应用程序中各种操作的时间,使用
计时器和
控制台报告器
,并将
计数
平均速率
等记录到控制台

我希望这些数字也可以在/metrics servlet上获得,并且基于我需要访问名为
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的输出?

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

唯一需要注意的是,DW提供了用于此目的的度量注册表。通过定义自己的度量,DW无法找到正确的度量。可以在通过run方法传递给应用程序的环境中找到以下内容:

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

        MetricRegistry metrics = environment.metrics();
    }
谢谢


默认情况下,servlet列出DW metrics注册表中的所有指标。您是否在正确的注册表中注册了指标?谢谢@pandaadb,我已经添加了获取注册表和计时器的代码。我觉得这不太合适,但看不出你是如何专门向MetricsServlet注册的这是你的问题,matt。您使用的度量注册表不是DW提供的。在启动代码中,您的环境已经提供了度量注册表。DW使用这些来显示该服务器上的度量,非常感谢。我不知道我怎么会错过那个环境。如果你想回答这个问题,我可以接受