我使用java语言创建了一个基于Web的应用程序,我想定期监视其性能(例如响应时间)。另外,我想在我的应用程序的主页上显示此信息。那可能吗?我能否知道如何做到这一点。
感谢。
答案 0 :(得分:2)
您可以查看stagemonitor。它是一个开源的Java Web应用程序性能监视器。它捕获响应时间指标,JVM指标,请求详细信息(包括请求探查器捕获的调用堆栈)等。开销非常低。
或者,您可以使用伟大的时间序列数据库石墨来存储数据点的长历史,您可以使用花哨的仪表板查看这些数据点。
实施例:
查看github页面,查看截图,功能描述和文档。
注意:我是stagemonitor的开发者
答案 1 :(得分:0)
根据您的环境,我会使用一个cron作业或任务来衡量使用HttpClient之类的东西来响应请求的响应时间。然后将该信息放入您的应用程序可访问的数据库表中。
这里的答案是衡量时间的最简单方法:How do I time a method's execution in Java?
答案 2 :(得分:0)
为何不结帐Munin monitoring?该网站说
斯坦福大学的SLAC还提供了一个大型的,排序很好的列表,其中包含各种网络监控解决方案。 SLACs list of Network Monitoring Tools,请检查“公共域或免费网络监控工具”。Munin监控工具调查您的所有计算机并记住 它看到了什么。它通过网络在图表中显示所有信息 接口。它的重点是即插即用功能。后 完成安装后会有大量的监控插件 没有更多的努力。
答案 3 :(得分:0)
您还可以考虑创建自己的自定义Web应用程序监视器。因此,使用ProxyPattern并创建一个concreate监视器。通过使用Spring框架,您可以在运行时轻松地打开和关闭监视器,而无需重新部署或重新启动Web应用程序。此外,您可以自己创建许多不同的特定监视器,并能够控制监视的内容。这为您提供了最大的灵活性,但需要一些工作。
答案 4 :(得分:0)
有可能。
提供真实数字的最明确方法是模拟客户端执行某种模仿真实用途的活动。然后让该客户定期使用该网站。
这预示着您的网站有办法接受不影响真实后端业务的输入。制作这样的界面需要一些思考,但并不能超出能够将网站放在一起的人的能力。关键点是尝试尽可能多地使用真实网站模拟,但要防止对实际业务的影响。基本上它是为特殊用户(测试人员)设计的。
因此,您可能有一个特殊用户,在登录后,所有购买都绑定到一个特殊帐户,该帐户实际上被过滤掉,以适当地不要求付款而不是货物。如果您与所有系统集成的系统共享对此实时测试帐户的理解,您可以在部署后同时测试实际生产。
这种结构提供了巨大的好处。您可以获得真实的,实时运行的系统的性能。性能往往会随着时间而变化,并且受环境影响。通过在实时系统上获取性能数据,在相同的环境中,您可以更好地了解真实用户可能遇到的内容。此外,您可以区分和跟踪不同活动的效果。
是的,设计和设置要多得多;但是,如果你从长远来看,它的好处是巨大的。
答案 5 :(得分:0)
我认为JavaMelody是最合适的解决方案。它可以内置到Java应用程序中,由于此功能,它可以监视应用程序内部的功能。使用此平台,您可以为Java应用程序获取比通过外部监视更具体的参数。此外,它还允许您在应用主页上显示一些统计信息。此外,您可以在应用程序中构建JavaMelody中的图形,这实质上有助于应用程序监视。
查看JavaMelody的详细概述:http://cases.azoft.com/enterprise-system-monitoring-solutions-business-apps/