嗨,我是java的新手,正在尝试学习如何使用Dropwizard指标库来衡量单个进程的性能。我已经查看了他们的入门,并运行了他们为Metricsignstry编写的内容,但不了解如何将流程和指标注册合并为一个(它测量的是我的流程所花费的时间,而不是它自己运行所需的时间)。
我可能写错了很多东西,但希望我的问题足够清楚。提前感谢我能得到的任何帮助/澄清!我将下面要测量的代码(pi数字到第n个数字)与Dropwizard指标为他们的入门提供了什么粘贴在一起:
package decimals;
import java.util.Scanner;
import java.math.BigDecimal;
public class Decimals {
public static void main(String[] args) {
BigDecimal seven = new BigDecimal(7.0);
Scanner input = new Scanner(System.in);
System.out.println("to what nth?");
int i = input.nextInt();
BigDecimal pi = new BigDecimal(22.0).divide(seven, i, BigDecimal.ROUND_UP);
if ( i < 0) {
System.out.println("can't be less than 0");
} else {
System.out.println(pi);
}
}
}
//dropwizardmetrics:
package com.***.***;
import com.codahale.metrics.*;
import java.util.concurrent.TimeUnit;
public class MetricsRegistry {
static final MetricRegistry metrics = new MetricRegistry();
public static void main(String args[]) {
startReport();
Meter requests = metrics.meter("requests");
requests.mark();
wait5Seconds();
}
private static void startReport() {
ConsoleReporter reporter = ConsoleReporter.forRegistry(metrics)
.convertRatesTo(TimeUnit.SECONDS)
.convertDurationsTo(TimeUnit.MILLISECONDS)
.build();
reporter.start(2, TimeUnit.SECONDS);
}
private static void wait5Seconds() {
try {
Thread.sleep(5*1000);
}
catch(InterruptedException e) {}
}
}
将所有Pi计算逻辑放入一个名为computePi()的方法中,并在您的main方法中尝试这样做:
public static void main(String args[]) {
startReport();
Timer timer = metricRegistry.timer("computePi");
Timer.Context context = timer.time();
try {
computePi();
} finally {
context.stop();
}
}
在您的示例中,您使用的是 Meter,它不测量执行所需的时间(它测量发生率和总计数)。我把它改成了一个计时器,它也测量时间。计时器在我调用计时器时开始。.然后,我在尝试块中执行您的计算Pi()进程。我使用一个“最终”块来停止计时器,无论计算Pi()内部发生什么。这就是您获得执行流程所需确切时间的方式。
我有大约20个API,我想为每个API实现执行时间、响应计数等统计信息。在做了一些研究之后,我了解到dropwizard度量是实现这些功能的最佳方法。我使用的是SpringMVC框架(不可启动)。有人能建议我如何将度量集成到Spring MVC框架中吗? 如果可能,请提供任何代码作为参考。
问题内容: 有时我会看到许多应用程序,例如msn,Windows Media Player等都是单实例应用程序(当用户在应用程序运行时执行时,将不会创建新的应用程序实例)。 在中,我为此使用类,但是我不知道如何在Java中执行此操作。 问题答案: 我在主要方法中使用以下方法。这是我所见过的最简单。
我们正在处理定期收到的消息。我们使用codahale dropwizard指标的“计时器”来测量处理这些指标所需的时间。 我发现有人在这里也有同样的问题:“指数衰减水库的问题是,如果没有新数据进来,它会一直给出相同的数字。例如,假设你用5和7更新一个计时器(然后什么都不要放),然后不管你什么时候看到(甚至在x小时之后),计时器仍将显示平均值为6,这无论如何都不能代表过去5分钟的结果。因此,只有当数
我有一个Dropwizard应用程序,它使用Dropwizard度量并使用BigTable进行持久化。我已经从我的应用程序向graphite报告了指标,并且也希望报告客户端BigTable指标。我看到现有的类<code>BigtableClientMetrics<code>支持报告客户端指标<还提供了code>DropwizardMetricRegistry,它包装了DropWidger并创建了类
本文向大家介绍如何简单的实现一个promise?相关面试题,主要包含被问及如何简单的实现一个promise?时的应答技巧和注意事项,需要的朋友参考一下 参考回答: 首先明确什么是promiseA+规范,参考规范的地址:primise A+规范 如何实现一个promise,参考我的文章: 实现一个完美符合Promise/A+规范的Promise 一般不会问的很详细,只要能写出上述文章中的v1.0版本
我们使用Jersey和web创建了多个APIendpoint。xml设置而不是资源配置设置。我们希望捕获并显示每个endpoint的所有请求的度量,包括所有不同的响应代码。到目前为止,我已经创建了一个类,它扩展了InstrumentedFilterContextListener,并在其中包含了Graphite reporter。 在web.xml中,我添加了以下块来使报告工作: 因此,通过上述配置