我按照First REST API链接创建了Restful API。
我可以查看关于点击网址的响应:http://localhost:8080/hello-world?name=XXX。
现在,我想使用人类可读格式的每次点击使用完成服务和日志响应时间来测试此API的性能。
我怎样才能做到这一点?
答案 0 :(得分:1)
这很容易做到。有两种方法:
使用指标或日志记录自行完成。在您的资源中,您可以使用创建的指标并写出您想要的任何内容,例如:
@GET
public String hello() {
Timer timer = service.timer("test");
try(Context t = timer.time()) {
return "Hello World";
}
}
或者只是测量时间并将其记录在某处,例如:
@GET
public String hello() {
long currentTimeMillis = System.currentTimeMillis();
try {
return "Hello World";
} finally {
log.info("Request took: " + (System.currentTimeMillis() - currentTimeMillis) + " ms");
}
}
这样做的替代方法是使用定时注释,例如:
@GET
@Timed(name="wohoho")
public String hello() {
return "Hello World";
}
这等同于手动方法(指标的名称将是“wohoho”)。
此外,您需要报告指标,例如:
ConsoleReporter.forRegistry(environment.metrics()).build().start(10, TimeUnit.SECONDS);
这将每十秒报告一次,结果如下:
-- Timers --------------------------------------------
dw.HelloResource.wohoho
count = 9
mean rate = 0.13 calls/second
1-minute rate = 0.11 calls/second
5-minute rate = 0.03 calls/second
15-minute rate = 0.01 calls/second
min = 0.16 milliseconds
max = 5.41 milliseconds
mean = 0.90 milliseconds
stddev = 1.43 milliseconds
median = 0.46 milliseconds
75% <= 0.59 milliseconds
95% <= 5.41 milliseconds
98% <= 5.41 milliseconds
99% <= 5.41 milliseconds
99.9% <= 5.41 milliseconds
这就是你要做的一切。
使用指标是首选方式,因为您可以使用将它提交给石墨,然后绘制你的表现随着时间的推移。
希望有所帮助,
阿图尔
答案 1 :(得分:0)
通常在许多应用程序中,我们使用Graphite作为指标。
此处显示了向dropwizard报告grahite