对美团点评应用监控平台CAT的理解

源码地址

CAT是一个开源的项目,在github上可以找到它的源码 https://github.com/dianping/cat

CAT 简介

CAT 是基于 Java 开发的实时应用监控平台,为美团点评提供了全面的实时监控告警服务。

CAT 作为服务端项目基础组件,提供了 Java, C/C++, Node.js, Python, Go 等多语言客户端,已经在美团点评的基础架构中间件框架(MVC框架,RPC框架,数据库框架,缓存框架等,消息队列,配置系统等)深度集成,为美团点评各业务线提供系统丰富的性能指标、健康状况、实时告警等。

CAT 很大的优势是它是一个实时系统,CAT 大部分系统是分钟级统计,但是从数据生成到服务端处理结束是秒级别,秒级定义是48分钟40秒,基本上看到48分钟38秒数据,整体报表的统计粒度是分钟级;第二个优势,监控数据是全量统计,客户端预计算;链路数据是采样计算。

Cat 产品价值

  • 减少故障发现时间
  • 降低故障定位成本
  • 辅助应用程序优化

Cat 优势

实时处理:信息的价值会随时间锐减,尤其是事故处理过程中
全量数据:全量采集指标数据,便于深度分析故障案例
高可用:故障的还原与问题定位,需要高可用监控来支撑
故障容忍:故障不影响业务正常运转、对业务透明
高吞吐:海量监控数据的收集,需要高吞吐能力做保证
可扩展:支持分布式、跨 IDC 部署,横向扩展的监控系统

监控模型:

支持 Transaction、Event、Heartbeat、Metric 四种消息模型。

  • Transaction 适合记录跨越系统边界的程序访问行为,比如远程调用,数据库调用,也适合执行时间较长的业务逻辑监控,Transaction用来记录一段代码的执行时间和次数
  • Event 用来记录一件事发生的次数,比如记录系统异常,它和transaction相比缺少了时间的统计,开销比transaction要小
  • Heartbeat 表示程序内定期产生的统计信息, 如CPU利用率, 内存利用率, 连接池状态, 系统负载等
  • Metric 用于记录业务指标、指标可能包含对一个指标记录次数、记录平均值、记录总和,业务指标最低统计粒度为1分钟

功能模块

  • cat-client: 客户端,上报监控数据
  • cat-consumer: 服务端,收集监控数据进行统计分析,构建丰富的统计报表
  • cat-alarm: 实时告警,提供报表指标的监控告警
  • cat-hadoop: 数据存储,logview 存储至 Hdfs
  • cat-home: 管理端,报表展示、配置管理等

数据流转

在这里插入图片描述

从上图可以看到,CAT的数据流程:

  1. 分布在各个服务器的受监控应用,通过cat的客户端上报Transaction、Event、Heartbeat、Metric 监控信息到cat的服务端。
  2. cat服务端收到各个应用上报的监控信息后,将这些信息保存到数据库或者hdfs中。
  3. 统计分析这些监控信息生成各种指标的报表。这些报表展现在cat平台页面中。

CAT丰富的报表展示

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

如何使用cat客户端上报Transaction、Event、Heartbeat、Metric 监控信息

客户端上报监控数据的行为成为埋点,一下是一个埋点的例子:
在这里插入图片描述

应用程序每次运行这段代码就会向服务端上报一个树形消息,这个消息中包含了Transaction、Event、Metric数据。而Heartbeat消息的上报不需要开发者在代码中埋点,Cat客户端会定时每分钟收集系统的内存,硬盘,cpu信息上报给服务端。

cat的劣势

由Cat的埋点行为可知,Cat具有很强的侵入性,为了对应用进行监控,开发者需要修改应有的代码在自己关注的地方进行埋点。否者cat的作用就仅仅局限于监控内存,硬盘,cpu等系统信息了信息。

猜你喜欢

转载自blog.csdn.net/qqqq0199181/article/details/83416355