淘宝

淘宝在开发社区的贡献可谓功不可没,近日又将其系统监控工具 Tsar 代码上传至 GitHub。据@淘叔度介绍,Tsar 在淘宝内部已经被大量使用,它不仅可以监控 CPU、IO、内存、TCP 等系统状态,也可监控 Apache、Nginx/Tengine、Squid 等服务器状态。

Tsar(Taobao System Activity Reporter)可将收集到的数据存储在磁盘上,另外可以支持将数据存储到 MySQL 中,也可将数据发送到 Nagios 报警服务器。在展示数据层面,可以指定模块,并且支持对多条信息的数据进行 Merge 输出,如果带--live 参数,还可以输出秒级的实时信息。

从架构上来看,Tsar 基于模块化设计,源代码上来看主要包含两部分:框架和模块。框架源代码主要存放在 src 目录,模块源代码主要在 modules 目录中。框架提供对配置文件的解析、模块的加载、命令行参数的解析、应用模块的接口对模块原始数据的解析与输出。

Tsar 的运行流程图如下: 

主要执行流程:

  • 解析输入
  • 读取配置文件信息
  • 加载相应模块
  • Tsar 的三种模式(print、live 和 cron)执行
  • 释放资源

本次开源消息公布后,受到了社区开发者的欢迎:

TriChaos:喜欢没有浮华的字符界面,像和没有废话的人对话。

_Yuen:代码少逻辑清晰模块化又好,不得不说是一个好工具的典范。

淘木名:事后线上问题分析必备利器。

淘叔度:目前只支持C语言开发的插件。不过写个模块非常简单。

得益于淘宝开源

淘宝开源平台于 2010 年 6 月上线,至今,该平台已经发布了若干开源项目,其中不乏来自于淘宝之外的项目在此落户。目前注册会员数 13002 人,收录项目已达到 2875 个。目前,该平台关注度最高的 5 个项目分别是 tfstairwebxOceanBaseathrun