我使用 java 语言制作了一个基于 Web 的应用程序,我想定期监控它的性能(例如响应时间)。我还想在我的应用程序主页上显示此信息。那可能吗?我能知道如何做到这一点吗?
谢谢。
你可以看看stagemonitor。它是一个开源的 java web 应用程序性能监视器。它捕获响应时间指标、JVM 指标、请求详细信息(包括请求分析器捕获的调用堆栈)等等。开销非常低。
或者,您可以使用出色的时间序列数据库石墨来存储您可以使用精美的仪表板查看的长期数据点历史。
例子:
查看 github 页面以查看屏幕截图、功能描述和文档。
注意:我是stagemonitor的开发者
You can also consider to create your own custom web application monitor. Therfore, use the ProxyPattern and and create a concreate monitor. By using Spring framework you can easily swich on and off the monitor during runtime without re- deployment or restart of the web application. Furthermore you can create a lot of different specific monitors by yourself and are able to control what is beeing monitored. This gives you a maximum of flexibility, but requires a bit of work.
为什么不检查Munin 监控?该网站说
监控工具 Munin 会检查您的所有计算机并记住它所看到的内容。它通过网络界面以图表的形式呈现所有信息。它的重点是即插即用功能。完成安装后,大量的监控插件将毫不费力地运行。
斯坦福大学的 SLAC 还保留了一个大的、排序良好的列表,其中包含各种网络监控解决方案。SLACs 网络监控工具列表,例如“公共域或免费网络监控工具”。
有可能的。
提供真实数字的最清晰方法是模拟一个客户端,该客户端执行某种模仿真实使用的活动。然后让该客户定期使用该网站。
这假定您的网站有办法接受不影响实际后端业务的输入。制作这样的界面需要一些思考,但并不超出一个可以将网站放在首位的人的能力。关键点是尝试尽可能多地使用真实网站进行模拟,但要防止对实际业务造成影响。基本上它是为特殊用户(测试人员)设计的。
因此,您可能有一个特殊用户,当您登录时,所有购买都绑定到一个特殊帐户,该帐户实际上被过滤掉以适当地不要求付款并且不发货。如果您集成的所有系统都了解此实时测试帐户,您可以在实际生产后部署的同时进行测试。
这样的结构提供了巨大的好处。您可以获得真实、实时运行的系统的性能。性能往往会随着时间而变化,并受环境影响。通过在同一环境中获取实时系统上的性能数据,您可以更好地了解真实用户可能遇到的情况。此外,您可以区分和跟踪不同活动的绩效。
是的,设计和设置还有很多;但是,如果您长期参与其中,那么好处是巨大的。
根据您的环境,我会使用 cron 作业或任务来测量响应时间,以使用诸如 HttpClient 之类的东西来请求您的应用程序。然后将该信息放入您的应用程序可访问的数据库表中。
这里的答案是您可以测量时间的最简单方法:如何在 Java 中计时方法的执行?
我猜 JavaMelody 是最适合您的解决方案。它可以内置到 Java 应用程序中,并且由于此功能,它可以监视应用程序内部的功能。使用这个平台,可以为您的 Java 应用程序获取比通过外部监控更具体的参数。此外,它还允许您在应用主页上显示一些统计信息。此外,您可以在应用程序中构建来自 JavaMelody 的图表,这基本上有助于应用程序监控。
看看 JavaMelody 的详细概述:http: //cases.azoft.com/enterprise-system-monitoring-solutions-business-apps/