CAT是一个实时和近全量监控系统,它侧重于Java应用的监控,基本接入了美团点评所有核心应用。CAT目前在在中间件框架(MVC框架、RPC框架、数据库框架、缓存框架等)中得到广泛应用,为美团点评各业务线提供系统的性能指标、健康状况、监控告警等。

CAT整个产品研发在2011年底开始,处于前大众点评由.net迁移java的起步阶段。前大众点评已经有核心的基础中间件,rpc组件pigeon,统一配置组件lion。随着Java迁移以及服务化的实施,整体java在线上部署规模也逐渐变多,不过暴露的问题也越来越多。那时候典型的问题有:

  • 大量报错,特别是核心服务,需要花很久时间才能定位
  • 简单的错误定位都非常困难
  • 很多不了了之的问题怀疑是网络问题

监控整体要求就是快速发现故障,快速定位故障以及辅助进行程序性能优化。要做到这点,我们对监控系统的做出如下的要求

  • 实时处理:信息的价值会随时间锐减,尤其是事故处理过程中
  • 高可用:所有应用都可以倒下了,需要监控还站着,告诉工程师发生了什么做到故障还原和问题定位
  • 故障容忍:CAT本身故障不应该影响业务正常运转,CAT挂了,应用不该受影响,只是监控能力暂时减弱
  • 高吞吐:要想还原真相,需要全方位的监控和度量,必须要有超强的处理吞吐能力
  • 不保证可靠:允许消息丢失;这是一个很重要的trade-off,目前CAT服务端可以做到4个9的可靠性,可靠系统和不可靠性系统的设计差别非常大