记录基于restlet的Web服务的响应时间的最简单方法是什么?
我想确保我们的网络服务有合理的响应时间。所以我希望能够密切关注响应时间,并对需要花费太长时间的请求做些事情。
我能找到的最接近的是这个食谱:http://www.naviquan.com/blog/restlet-cookbook-log,它解释了如何更改日志格式。但似乎没有响应时间的参数,因此可能需要一种完全不同的方法。
答案 0 :(得分:3)
嗯,记录响应时间的最简单方式当然是在restlet开头调用System.getCurrentTimeMillis()
,然后在restlet结束时再次调用区别。这当然不会给你带来框架开销,我怀疑它比你追求的更天真,更琐碎。
“难道你不能只使用System.getCurrentTimeMillis()吗?不,这肯定是一个愚蠢的答案;如果我说的话,我看起来像个白痴。我只是等待其他人来发表第一篇文章。“
答案 1 :(得分:0)
我不认为日志记录是这里的方式,至少不是内置于Restlet或Java API中的任何类型的日志记录。这些用于程序化调试导向的日志记录或访问日志记录,旨在提供有关正在使用哪些资源以及由谁使用的统计信息。但真正的问题是,您无法衡量用户对您的服务所具有的真实体验。
如果您想测量用户将遇到的响应时间,那么您确实需要采用一种方法来进行采样,这种方法位于应用程序堆栈之外,理想情况下位于数据中心之外,以便像可能是您的用户使用您服务的真实条件。
如果您只需要测试相当简单的GET
和POST
请求的结果,那么像Pingdom这样的服务可能就足够了。如果您的服务更复杂,那么您可能需要编写自己的采样应用程序/脚本,这可以作为Pingdom等人的代理,用于您的实际服务。您应该将采样代理托管在与实际服务不同的服务器上。谷歌的App Engine可能对此很方便。
答案 2 :(得分:0)
实现此目的的一种方法是使用Codehale的度量API。只需在API声明中添加注释@Timed(name="sampleApiName")
即可。