Java运行时监控,第3部分: 监控应用程序生态系统的性能与可用性(1) - 编程入门网
收集参数并保存在一个中央位置,而不用发送到每一个目标主机。第二(虽然在本例中没有实现),由于中央请求监听器发出请求,所以监听器可以在特定的已知服务器没有响应的情况下触发一个报警条件。图 8 显示了组合服务器的 APM 树:
图 8. Windows 和 Linux 服务器的 APM 树 Java运行时监控,第3部分: 监控应用程序生态系统的性能与可用性(1)(12)时间:2011-02-13 IBM Nicholas Whiteheadwinsar 是一个简单的、早期的原型,它有几个缺点,包括: 通过编程访问一些 WPM 计数器(如处理器对象)会生成空的或原始的指标。所以诸如 CPU % Utilization 这样的指标是可以直接读取的。所需要解决的是如何在规定的时间段内多次读取这些指标,然后就可以计算出 CPU 使用了。winsar 没有这个功能,但是诸如 NSClient 和 NC_Net(参见 参考资料)这样的类似代理却可以提供这个功能: 诚然,将 JMS 作为远程代理的传输机制有它的妙处,但是也有局限。NSClient 和 NC_Net both 使用低级但简单的套接字协议来请求和接收数据。这些服务的本来用途之一就是要将 Windows 数据提供给 Nagios,这是一个几乎排斥 Linux 平台的网络监控系统,因此来自客户端的图像中实际上可能没有 Win32 API。 最后,就像我在前面提到的,SpringCollector 应用程序用一个参数引导,它是一个含有配置 XML 文件的目录。这个目录为 /conf/spring-collectors,它位于示例代码包的根目录中。前面的例子中使用的具体文件为: shell-collectors.jmx:它包含所有 shell 收集器的定义。 management.xml:它包含 JMX 管理 bean 和收集调度器。 commandsets.xml:它包含 shell 收集器的命令集的定义。这些定义引用了 /commands 中的外部 XML 文件。 shells.xml:它包含所有 shell 的定义。 jms.xml:它包含 JMS 连接工厂和主题的定义,还有 Java Naming 和 Directory Interface(JNDI)上下文。 groovy.xml:它包含 Groovy 格式化程序 bean。 我对 OS 监控的论述就到此为止了。接下来,我将介绍数据库系统的监控。 用 JDBC 监控数据库系统 我经常遇到这种情况,就是认为 DBA 以及他们的工具和应用程序的职责仅仅是监控数据库。然而,要为性能和可用性数据实现非孤立的、集中式 APM 储存库,需要在 DBA 的工作中再补充 一些监视整合的 APM 的工作。我将展示一些用名为 JDBCCollector 的 Spring 收集器来收集数据(这些数据在某种情况下很可能没有受到监控,而且是非常有用的指标)的技术。 您应该考虑的数据收集的广义范畴为: 简单的可用性和响应时间:这是一个简单的机制,可以用它来定期连接到数据库、发布一个简单的查询并跟踪响应时间,或者在连接失败时跟踪服务器停机指标。连接失败不一定表明数据库正在经历硬停机,但它至少可以肯定应用程序一端的通信有问题。孤立的数据库监控可能永远无法指示出数据库连通性问题,但是记住这个还是很有用的,因为可以从那里 连接到一个服务并不意味着也可以从这里 连接。 上下文数据:回顾一下 第 1 部分 中的上下文跟踪 的概念,您可以从应用程序数据的周期性采样获得一些有用的信息。在很多情况下,数据库中的数据活动模式和应用程序设施的行为或性能有着很大的联系。 数据库性能表:很多数据库以表或视图的形式,抑或是通过储存过程来公开内部性能和载入指标。同样,数据可以轻松地通过 JDBC 访问。这个领域显然覆盖了传统 DBA 监控,但是数据库性能通常与应用程序性能的联系非常紧密,以至于如果收集两组指标却不通过一个整合系统来关联它们的话,这简直就是一种巨大的浪费。 JDBCCollector 非常简单。基本上,它由一个查询和一串映射语句组成,它定义了将查询的结果映射到跟踪名称空间的方式。思考一下清单 12 中 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |