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