今天参加中国计算机大会,听了章文嵩博士的报告,对tsar工具较感兴趣,简单了解一下:
淘宝在开发社区的贡献可谓功不可没,近日又将其系统监控工具Tsar代码上传至GitHub。据淘叔度介绍,Tsar在淘宝内部已经被大量使用,它不仅可以监控CPU、IO、内存、TCP等系统状态,也可监控Apache、Nginx/Tengine、Squid等服务器状态。
Tsar(Taobao System Activity Reporter)可将收集到的数据存储在磁盘上,另外可以支持将数据存储到MySQL中,也可将数据发送到Nagios报警服务器。在展示数据层面,可以指定模块,并且支持对多条信息的数据进行Merge输出,如果带–live参数,还可以输出秒级的实时信息。
从架构上来看,Tsar基于模块化设计,源代码上来看主要包含两部分:框架和模块。框架源代码主要存放在src目录,模块源代码主要在modules目录中。框架提供对配置文件的解析、模块的加载、命令行参数的解析、应用模块的接口对模块原始数据的解析与输出。
Tsar的运行流程图如下:

主要执行流程:
[indent][list]
[]解析输入
[]读取配置文件信息
[]加载相应模块
[]Tsar的三种模式(print、live和cron)执行
[*]释放资源
[/list][/indent]