Java运行时监控,第3部分: 监控应用程序生态系统的性能与可用性(2) - 编程入门网
;property name="hostName" value="localhost"/>
<property name="port" value="1161"/>
<property name="targets" ref="JBossSNMPProfile"/>
</bean>
Java运行时监控,第3部分: 监控应用程序生态系统的性能与可用性(2)(11)时间:2011-02-13 IBM Nicholas Whitehead该收集器的确是有些缺点,毕竟配置有些长,而且由于它要为每一个 OID 做出一个调用而非批量收集,导致运行时效率低下。示例代码中的 snmp-collectors.xml 文件(参见 下载)也包含了一个监控 Linux 服务器的 SNMP 收集器的配置示例。图 21 显示了 APM 系统指标树: 图 21. SNMPCollector 的 APM 树 此时,您可能了解到如何创建收集器了。要覆盖整个环境,可能需要集中不同类型的收集器,如果您对此感兴趣的话,您可以参见本文的示例代码,那里包含有其他监控目标的收集器示例。它们都位于 org.runtimemonitoring.spring.collectors 包中。表 2 是这些收集器的一个概述: 表 2. 其他收集器示例
数据管理 收集繁忙的可用性和性能数据的系统所面临的一个最复杂的难题就是:如何有效地将收集到的数据持久化到普通指标数据库中。对于要使用的数据库和持久化机制要考虑的问题有: 指标数据库一定要支持对历史指标的适当快速的、简单的查询,以实现数据可视化、数据报告和数据分析。 指标数据库一定要保留数据的历史和粒度,从而支持报告的时窗、准确性和所需精确度。 持久化机制一定要足够好地、并行地运行,避免影响前端监控的活跃性。 指标数据的检索和储存要能够并行运行,且两者都不会对方有任何负面的影响。 从数据库中请求数据的请求要能够支持一段时间内的聚合。 数据库中的数据要以适当的方式存储,允许使用一种时间序列模式检索数据或使用某种机制保证多个数据点能够在有效时间段相同的情况下相互关联。 鉴于这些考虑,您需要: 一个性能良好的、可伸缩的、带有很多磁盘空间的数据库。 一个带有有效搜索算法的数据库。本质上讲,由于指标将会通过复合名称来储存,所以解决方案就是将复合名称储存为一个字符串并使用某种形式的模式匹配来指定目标查询指标。很多关系数据库都支持内置于 SQL 语法的正则表达式,这是一个通过复合名称查询的理想方法,但是这个方法比较慢,这是因为它通常排除使用索引。但是很多关系数据库同样支持功能索引,该索引能够在使用模式匹配搜索时用来加快查询的速度。另外一个选择是完全标准化 数据并分别取出复合名称的单个片断(参见下面的 标准化数据库结构和扁平数据库结构 )。 限制写入数和写入数据库的总数据量的策略就是实现一连串的分层聚合和合并。这可以在数据被写入数据库前通过保持一个总体缓冲器来完成。在指定的时间段内,将所有标记为储存的指标写入一个累计缓冲器,它可以保留指标有效启动时间和终止时间,以及在该段时间内的平均的、最小的和最大的指标值。这样,指标值就可以在写入数据库前被聚 |
||||||||||||
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |