快速业务通道

Java运行时监控,第3部分: 监控应用程序生态系统的性能与可用性(1) - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-19
的 SQL:

清单 12. 一个简单的 SQL 查询

SELECT schemaname, relname, SUM(seq_scan) as seq_scan, SUM(seq_tup_read) as seq_tup_read FROM pg_stat_all_tables where schemaname = ''public'' and seq_scan > 0 group by schemaname, relname order by seq_tup_read desc

Java运行时监控,第3部分: 监控应用程序生态系统的性能与可用性(1)(13)

时间:2011-02-13 IBM Nicholas Whitehead

该查询选择一个表格中的四个列。我想将每一个从查询返回的行映射到一个跟踪名称空间,这个名称空间由每行的一部分数据组成。切记名称空间是由片断名称加上指标名称组成的。使用字母值和/或行标记来指定这些值也就定义了映射。行标记代表编号列中的值,如 {2}。处理片断和指标名称时,字母值保持原样不变,而标记在查询结果中使用当前行的各个列值动态替换,如图 9 所示:

图 9. JDBCCollector 映射

Java运行时监控,第3部分: 监控应用程序生态系统的性能与可用性(1) - 编程入门网

在图 9 中,我呈现的是对查询的一行响应,但每为每一个返回的行定义一次映射,映射过程就会发生一次。片断的值是 {1}、{2},所以跟踪名称空间的片段的部分是 {"public", "sales_order"}。指标名是字母值,因而保持不变,指标值在第一次映射时被定义为 1,在第二次映射时被定义为 2,它们分别代表着 3459 和 16722637。具体的实现该过程便可以进一步澄清它。

使用 JDBC 的上下文跟踪

运行的数据库中的应用程序数据也许包含有用的且有趣的上下文数据。应用程序数据本身并不一定是与性能相关的,但如果抽样这些数据,把它与表示 Java 类的性能、JVM 的健康状况和服务器性能统计信息的历史指标联系起来的话,就可以清楚地了解系统在某一具体的时间段内到底在做些什么。假想您现在正在监控一个极其繁忙的电子商务 Web 站点。您的客户所发出的订单被记录在一个名为 sales_order 的表中,该表还记录了一个惟一的 ID 和发出订单的时间戳。你可以通过抽样在最后 n 分钟内输入的记录数来得出提交订单的速率。

这里是 ITracer 的增量(delta)功能的又一个用武之地,因为我可以设置 JDBCCollector 来从某个特定时间点开始查询行数,并将这个值作为一个增量而跟踪它。结果会得到一个可以描述您的网站有多繁忙的指标(或许还有很多其他指标)。这个指标也会成为一个颇有价值的历史参考。例如,如果知道输入的订单数达到每个周期 50 个时数据库的速度就会减慢的话,那么将会很有用。硬性的、特定的经验数据可以简化容量和增长情况的规划。

接下来我将要实现这个例子。JDBCCollector 使用与前面的例子相同的调度器 bean,它还有一个与我在 第 2 部分 中涉及到的完全相同的 JDBC DataSource。这些数据库收集器是在 /conf/spring-collectors/jdbc-collectors.xml 文件中定义的。清单 13 展示了第一个收集器:

清单 13. 订单执行速率收集器

<bean name="OrderFulfilmentRateLast5s"   class="org.runtimemonitoring.spring.collectors.jdbc.JDBCCollector"   init-method="springStart">   <property name="dataSource" ref="RuntimeDataSource" />   <property name="scheduler" ref="CollectionScheduler" />   <property name="query">     <value><![CDATA[   select count(*) from sales_order   where order_date > ? and order_date < ?   ]]></value>   </property>   <property name="logErrors" value="true" />   <property name="tracingNameSpace" value="Database Context" />   <prope

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号