代码之家  ›  专栏  ›  技术社区  ›  amarillion

基于restlet的WebService中的日志响应时间

  •  1
  • amarillion  · 技术社区  · 15 年前

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

    我想确保我们的WebService有合理的响应时间。因此,我希望能够关注响应时间,并对耗时太长的请求做些什么。

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

    3 回复  |  直到 7 年前
        1
  •  3
  •   William Billingsley    15 年前

    嗯, 最简单的 当然,记录响应时间的方法是通过调用 System.getCurrentTimeMillis() 在restlet开始时,然后在restlet结束时记录差异。当然,这不会给您带来框架开销,我怀疑这比您所追求的要简单得多。

    不过,我贴出来是因为10天后没人回答你,我怀疑是因为每个人都在静静地思考

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

        2
  •  0
  •   Avi Flax    15 年前

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

    如果您想测量用户将经历的响应时间,那么您真的需要一种采样方法,它位于应用程序堆栈之外,理想情况下位于数据中心之外,以便尽可能地模拟用户将使用您的服务的真实情况。

    如果你只需要测试相当直接的结果 GET POST 请求,一种服务 Pingdom 可能就足够了。如果您的服务更复杂,那么您可能需要编写自己的采样应用程序/脚本,它可以作为从pingdom等到实际服务的代理。您应该将采样代理宿主在与实际服务分离的服务器上。谷歌 App Engine 这可能很方便。

        3
  •  0
  •   sparkitny    7 年前

    我想实现这一点的一种方法是使用codehale的metric api。只需添加注释 @Timed(name="sampleApiName") 到您的API声明。