【问题标题】:How to get requests per minute count within java web app如何在 Java Web 应用程序中获取每分钟的请求数
【发布时间】:2010-06-24 10:54:12
【问题描述】:

在我的特定网络应用程序中,我需要大量负载统计信息,例如“每分钟请求数”。如何在基于 Servlet API 的 webapp 中获取该值?

【问题讨论】:

  • 很有可能,您的 servlet 容器 比您的 webapp 本身更适合提供这些东西。
  • 如果您提及您正在使用哪个应用服务器/servletcontainer,您将得到更合适的答案。这取决于服务器,而不是 webapp。如果它依赖于 webapp,那么这意味着您自己编写/实现了统计代码,但这显然不是这种情况;)
  • 您是否需要瞬时负载统计(我的 Web 应用现在的负载情况?)或长期统计数据(我的 Web 应用上周与前一周相比的负载情况?)。跨度>

标签: java server-load


【解决方案1】:

几乎所有容器都允许使用 JMX 查询检测数据。可能是你必须安装一个插件。

确切的内容是特定于容器的,但非常简单。

这里以the docs related to tomcat 为例。

【讨论】:

    【解决方案2】:

    好吧,我不是来自 servlet 背景,我很想用老式的方式来做:在你处理时计数。

    如果这是 PHP、ASPNET 或 Django,我会保留一个 memcache 键来存储当前分钟,并保留另一个键用于计数器。

    当您要跟踪的动作发生时,检查分钟是否与当前分钟相同。如果是,则增加计数器,如果不是,将旧计数保存到数据库,保存新的当前分钟并从零开始计数器。

    您可以通过将操作添加到内存缓存键来轻松扩展它以跟踪不同的操作。

    【讨论】:

    • 让我稍微更新一下您的方法:我在处理过程中计数,但不要将值降至零,也不要存储当前分钟。我只是不时查询计数器并存储最后一个查询事件的时间,以及当时的值。这让事情变得简单:我现在和以前的查询之间有时间差,我有价值差异。这些都是需要计算的。
    【解决方案3】:

    获取这些统计信息的简单方法是发送至configure Tomcat access logs。有一些工具可用于解析这些日志,但您可以使用简单的脚本每分钟执行一次请求。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-14
      • 2014-11-14
      • 1970-01-01
      • 2011-05-13
      • 2020-02-28
      • 1970-01-01
      相关资源
      最近更新 更多