假设我有一堆网络服务器,每个服务器提供100个请求/ s,我想看到如下实时统计数据:
或者一般来说,对于一堆带时间戳的事件,我希望看到实时派生的统计数据 - 最好的方法是什么?
我已经考虑过让每个GET请求在某个地方更新一个全局计数器,然后以不同的间隔对其进行采样,但是在事件发生率下我很难得到一个足够快的分布式计数器。
欢迎任何想法!
补充:服务器是运行Apache / mod_wsgi的Linux,带有Python(Django)堆栈。 补充:为了了解我想跟踪统计数据的事件率,他们将以超过10K的事件/秒进入。即使按此速率递增分布式计数器也是一项挑战。
答案 0 :(得分:1)
几乎所有优秀的服务器都提供开箱即用的这种功能。例如,Apache有mod_status模块,Glassfish支持JMX。此外,还有许多用于监控集群的商业软件包,例如Hyperic和Zenoss。
您使用的是哪种Web或应用程序服务器?没有这些信息很难提供解决方案。
答案 1 :(得分:1)
使用WebSockets,它们的开销远小于HTTP请求,它们非常适合实时Web应用程序。请参阅:http://nodeknockout.com/了解基于节点的websocket示例。
http://en.wikipedia.org/wiki/WebSocket
如果要在Apache服务器上运行守护程序,则需要运行守护程序。
另请看一下: http://kaazing.com/如果你不那么麻烦,但愿意掏出现金。
答案 2 :(得分:1)
您可能希望帮助我们在Python Web应用程序中试用我们的代理程序以进行应用程序性能监控。
它更深入地研究应用程序性能而不仅仅是Web服务器,但由于任何瓶颈都不会生成为Web服务器,但是您的应用程序无论如何都会更有用。
声明。我为New Relic工作,这是我正在进行的项目。它是付费产品,但测试版意味着它现在免费提供所有功能。稍后当这种情况发生变化时,如果您不想付费,它们仍然是免费的Lite订阅级别,它为您提供基本的Web指标报告,这些报告仍然涵盖了您所追求的一些内容。无论如何,现在就是利用它来调试你的表现的好机会。
答案 3 :(得分:0)
在Windows方面,Perfmonance monitor是您应该调查的工具。
正如Jared O'Connor所述,您应该确定要监控的Web服务器类型。