基于Java的监控应用
想象下一个架构:基于Java的监控应用,java,frameworks,statistics,monitoring,Java,Frameworks,Statistics,Monitoring,想象下一个架构: 我们有基于Spring框架的Java应用程序(我们称之为Manager) 它接受请求并可以启动其他应用程序来处理它们(我们称之为容器)。这些容器存在了很长一段时间。它们具有相当复杂的结构,由几个不同的应用程序组成,但它们都有控制部分,用C++和BASH脚本编写。8个CPU核上的预期数量约为2000个 我们有监控心跳应用程序(也是Java over Spring)。数据应该以某种方式从这些容器(CPU、内存、带宽使用率、版本)和管理器中获取并聚合。聚合数据定期通过心跳发送到更远的
- 目标操作系统:Solaris
- 提到的2000进程是本机应用程序。每个都有自己的chroot,并作为单独的用户登录运行
要获得您的CPU/内存等,我将查看和提供的bean。JMX提供了通过RMI等公开此数据的方法。但要获得每个子进程(用您的说法是容器)的此信息,将需要特定于操作系统的信息。你在用什么操作系统?对于Windows,请签出。在Unix/Linux上,各种
/proc
文件系统节点可能会对您有所帮助。也许您可以在Nagios页面上找到一些有用的内容()我已经用一些其他信息更新了问题。内存消耗也困扰着我,但与此同时,我们没有目标硬件来检查它。谢谢你的回答!轮询InputStream.available而不是线程应该是安全的,因为线程可能会以响应性换取内存消耗。