1

记录基于 restlet 的 web 服务的响应时间的最简单方法是什么?

我想确保我们的网络服务有合理的响应时间。所以我希望能够密切关注响应时间,并对耗时过长的请求做一些事情。

我能找到的最接近的是这个食谱: http: //www.naviquan.com/blog/restlet-cookbook-log,它解释了如何更改日志格式。但是似乎没有响应时间的参数,因此可能需要一种完全不同的方法。

4

3 回答 3

3

好吧,记录响应时间的最简单方法当然是System.getCurrentTimeMillis()在 restlet 开始时调用,然后在 restlet 结束时再次调用并记录差异。这当然不会给您带来框架开销,而且我怀疑它比您所追求的更加天真和琐碎。

不过我发帖是因为 10 天后没有人回复你,我怀疑是因为每个人都在悄悄地思考

“你不能只使用 System.getCurrentTimeMillis() 吗?不,这肯定是一个太愚蠢的答案;如果我这么说,我会看起来像个白痴。我会等别人发第一篇文章。”

于 2010-03-19T16:14:35.907 回答
0

我不认为日志记录是这里的方法,至少不是任何内置于 Restlet 或 Java API 的日志记录类型。它们用于面向编程调试的日志记录或访问日志记录,旨在提供有关正在使用哪些资源以及由谁使用的统计信息。但真正的问题是,您不会衡量用户对您的服务的真实体验。

如果您想测量用户将体验到的响应时间,那么您确实需要一种采样方法,该方法位于您的应用程序堆栈之外,最好是在您的数据中心之外,以便尽可能地模拟真实的-您的用户将使用您的服务的世界条件。

如果你只需要测试相当简单GETPOST请求的结果,那么像Pingdom这样的服务可能就足够了。如果您的服务更复杂,那么您可能需要编写自己的采样应用程序/脚本,它可以作为 Pingdom 等人对您的实际服务的代理。您应该将采样代理托管在与实际服务不同的服务器上。谷歌的App Engine可能对此很方便。

于 2010-03-21T19:31:02.120 回答
0

我想这样做的一种方法是使用 Codehale 的 metric API。@Timed(name="sampleApiName")只需在您的 API 声明中添加注释即可。

于 2018-03-29T11:04:14.403 回答