大众点评开源监控CAT概览

Posted spen

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了大众点评开源监控CAT概览相关的知识,希望对你有一定的参考价值。

1. CAT介绍

CAT是一个实时和接近全量的监控系统,它侧重于对Java应用的监控,除了与点评RPC组件融合的很好之外,他将会能与Spring、MyBatis、Dubbo 等框架以及Log4j 等结合 , 它提供系统的性能指标、健康状况、监控告警等,在微服务监控领域也是非常有用的一套组件。

1.1 CAT特性

  • 实时处理:信息的价值会随时间锐减,尤其是事故处理过程中。
  • 全量数据:最开始的设计目标就是全量采集,全量的好处有很多。
  • 故障容忍:CAT本身故障不应该影响业务正常运转,CAT挂了,应用不该受影响,只是监控能力暂时减弱。
  • 高吞吐:要想还原真相,需要全方位地监控和度量,必须要有超强的处理吞吐能力。
  • 可扩展:支持分布式、跨IDC部署,横向扩展的监控系统。

  • 不保证可靠:允许消息丢失

2. CAT的设计

2.1 消息结构

技术图片

2.1.1 CAT支持的监控消息类型包括:

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

  • Trace 用于记录基本的trace信息,类似于log4j的info信息,这些信息仅用于查看一些相关信息

2.1.2 消息树

技术图片

2.2 客户端设计

2.2.1 消息发送流程

try {
     Cat.logEvent("Call", "FSP.CALL", Event.SUCCESS, "");
     yourBusinessOperation();
     Cat.logEvent("SQL", "template.query", Event.SUCCESS, "slect * from dual");
     Cat.logEvent("Cache", "redis.getKey", Event.SUCCESS, "{key:name}");
} catch (Exception e) {
     Cat.getProducer().logError(e);//用log4j记录系统异常,以便在Logview中看到此信息
}

技术图片

2.2.2 消息栈结构

技术图片

2.2.3 什么时候需要埋点

两个原则:

  • 问题为中心

  • 重要的业务指标

2.2.4 埋点的规范

问题类型 Type Key 举例
系统类型 System
定时任务 Task
HTTP接口类 URL
SQL类型 SQL
配置类 Config
连接类 Connection
业务类 BusinessService

2.3 服务端设计

2.3.1 消息消费设计

技术图片

消息分发:

技术图片

2.3.2 原始消息存储设计

2.3.2.1 MessageId的格式

CAT消息的Message-ID格式btc_fos-0a010680-375030-2,CAT消息一共分为四段:

  • 第一段是应用名btc_fos。

  • 第二段是当前这台机器的IP的16进制格式,0a010680表示10.1.6.108。

  • 第三段的375030,是系统当前时间除以小时得到的整点数。

  • 第四段的2,是表示当前这个客户端在当前小时的顺序递增号。

2.3.2.2 什么时候触发持久化操作
  • 正常情况下:一个周期的结束
  • 异常情况:JVM停止
2.3.2.3 文件和索引

MessageTree 落入磁盘样例:

/opt/tiefan/catdata/appdatas/cat/bucket/dump/20180825/00/CTM-10.32.16.111-10.32.16.30

/opt/tiefan/catdata/appdatas/cat/bucket/dump/20180825/00/CTM-10.32.16.111-10.32.16.30.idx

技术图片

2.4 部署设计

技术图片

3. Cat接入指南

http://wiki.blackfi.sh/pages/viewpage.action?pageId=16444831

以上是关于大众点评开源监控CAT概览的主要内容,如果未能解决你的问题,请参考以下文章

Centos6.5部署大众点评CAT

大众美团服务链监控CAT

01 . 美团全链路CAT简介及部署

美团大众点评服务框架Pigeon

大众点评Cat--架构分析

大众点评CAT安装部署记录