BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

预览“Java数码录像机”—— Chronon Recording Server

| 作者 Mike Bria 关注 0 他的粉丝 ,译者 沙晓兰 关注 0 他的粉丝 发布于 2011年8月21日. 估计阅读时间: 6 分钟 | Google、Facebook、Pinterest、阿里、腾讯 等顶尖技术团队的上百个可供参考的架构实例!

Chronon System近期公布了Chronon Recording Server的beta版本。Chronon Recording Server可以说是Chronon工具箱系列产品中一款远程控制工具,大家可以下载试用一下8月15日公布的1.8.7版本

这个Chronon Recording Server可以记录任何Java应用在任何机器上运行时的内部状况,完了之后,通过其中的“回放”功能,整个程序的执行过程就一目了然了,这对程序调试来讲非常实用。这种回放式的程序调试可以在运行该Java应用的机器上进行,也可以在其它机器上进行。无论是哪台机器,只要能访问纪录文件就都可以。Chronon Systems一句话概括了Chronon Recording Server的实质:它是“Java的数码录像机”。

Chronon(core)当中捆绑了一个Eclipse插件。正是因为这个插件,大家才能够在类似调试环境的视窗中通过回放纪录文件来检查程序的具体运行状况。跟传统的调试器一样,这个插件提供丰富的视图以助于查看数据,比方说可以追踪程序每一步执行时的状态。此外,插件还附带一些筛选和评估程序执行流程等其他功能。

它的Time Traveling Debugger还能显示每个active的线程完整的stack trace,甚至还能追溯当下内存所存储的确切内容。用户可以立刻跳到纪录的任何时间点,无论是跳到更早的时间点还是之后的,都没有障碍,因为Time Travelling Debugger所做的其实就是像查询数据库那样查询纪录文件而已。

正因为Chronon纪录下整个程序运行时候的所有状态,所以它的调试器还能提供一些传统调试器无法实现的功能。比方说,它可以查询某个变量在整个程序运行当中被赋过多少值,都是些什么值,甚至还能直接跳到这个变量被赋予某个特定值的时间点,比如说这个变量是空值的时候。

Chronon recorder可以看作是所需调试的Java应用的一个Java代理,这个代理可以在应用程序运行的时候通过分析装载在内存当中的字节码来观察和采集反应该程序运行状况的数据。采集到的数据在经过异步压缩以后作为独立文件保存到硬盘上,之后能够传送到任何计算机(比如工程师的机器)上方便用户通过前面讲到的“Time Traveling Debugger”的回放功能来调试程序。

这个工具对于那些需要长时间运行的服务器程序来说特别有用。尤其是传统的调试工具都需要工程师事先设置断点,想办法重现遇到的问题,然后再等上几个小时直到程序执行到设置断点的地方。用这个工具的话,工程师就只需要在异常抛出以后抓取对应的纪录文件,在纪录中找到异常抛出的时间点,然后通过“step backward”查看在异常抛出前程序每一步的运行情况,从而确认导致异常的原因。

Chronon在最新的系列产品中还添加了Chronon Recording Server组件。这个组件可以远程管理在多个JVM上运行的“录像机”,更方便各小组之间共享各自的纪录文件。在最新的这个“服务器模式”下,Chronon recorder可以动态地启动或停止记录Java程序的运行。一旦程序有任何非正常的运行状况,比如bug,用户可以立刻通过服务器启动recorder的记录功能,以记录非正常状况的重现过程。这样一来,用户都不需要追加任何日志记录代码,更无需重新部署或设置远程调试环境。

Chronon Systems的工程师这样概括他们的产品的优点:

  • 无需解析日志文件:程序运行的全过程都可以完整记录,不需要再去解析冗长的日志文件。
  • 远程记录Java程序运行状况:把所有计算机都连到Recording Server,由服务器统一管理每台机子上的记录。
  • 便利QA跟开发工程师之间的协同工作: QA可以通过Recording Server记录所有的测试过程,万一测试发现任何问题,开发工程师都可以从服务器上获取相关的记录,然后利用Time Traveling Debugger完成调试。
  • 可以记录需要长时间运行的应用:无论是需要运行几天,几个星期,甚至是几个月的程序,Chronon Recording Server都可以记录它的运行过程。如果需要记录的时间过长,服务器会自动分多个文件记录,不会因为文件太大而丢失老的纪录。
  • 动态启动或停止记录功能:Recording Server可以动态地在Java应用运行的过程中启动或者停止Chronon recorder,这样一来,我们可以在应用运行的全程中都开着Chronon recorder,但只在需要记录的时候启动记录功能。

这个工具的beta版本 在最近几个星期都可以免费下载,大家不妨试用一下。

查看英文原文:"DVR For Java", Preview The Chronon Recording Server

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

很棒的工具 by 天 小陈

很棒的工具

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

1 讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT