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 部署设计

转载于:https://www.cnblogs.com/spen/p/10522532.html

大众点评开源监控CAT概览相关推荐

  1. 大众点评开源分布式监控平台 CAT 深度剖析

    一.CAT介绍 CAT系统原型和理念来源于eBay的CAL的系统,CAT系统第一代设计者吴其敏在eBay工作长达十几年,对CAL系统有深刻的理解.CAT不仅增强了CAL系统核心模型,还添加了更丰富的报 ...

  2. 大众点评分布式系统监控开源框架cat源码阅读(个人笔记)

    cat 数据接收 TcpSocketReceiver 该类中startServer(port)方法用于启动netty,设置消息解码器MessageDecoder和消息编码器ClientMessageE ...

  3. 美团监控系统mysql_美团开源监控Cat安装与使用

    序--之前一直在美团内部使用cat,十分便捷,这次单位内部要使用,拿来研究一番.其实Cat在GitHub上的部署文档已经比较详细了 服务端篇 一.准备环境 tomcat mysql jdk8 美团ca ...

  4. Centos6.5部署大众点评CAT

    CAT (Central Application Tracking) 简介: CAT 是大众点评开源的一套基于java的实时应用监控平台,主要应用于服务中间件框架(MVC 框架.RPC 框架.持久层框 ...

  5. 服务监控CAT的使用

    文章目录 什么是CAT CAT报表介绍 下载和发布服务 代码模块介绍 Linux系统搭建CAT服务 前提 springboot集成CAT客户端 API介绍 Transaction Event Metr ...

  6. 大众点评网回应商家围攻:因诚信问题被暂停收录

    9 月 29 日消息,今日有网友在微博爆料称大众点评网与商家签订不平等合约,并实施竞价排名,因此上海总部遭到 200 家商户的集体围攻.对此,大众点评网对 TechWeb 发来声明,称美容美发机构京世 ...

  7. 大众点评CAT开源监控系统剖析

    参考文档: 大众点评的实时监控系统分析(一) CAT_source_analyze 透过CAT,来看分布式实时监控系统的设计与实现 深度剖析开源分布式监控CAT [分布式监控CAT] Client端源 ...

  8. 看大众点评如何通过实时监控系统CAT打造7*24服务

    为什么80%的码农都做不了架构师?>>>    看大众点评如何通过实时监控系统CAT打造7*24服务 2015-06-08  尤勇  高可用架构 https://github.com ...

  9. 大众点评Java开发实时应用监控平台-CAT

    转载自 [推荐]大众点评Java开发实时应用监控平台-CAT CAT介绍 CAT是基于Java开发的实时应用监控平台,包括实时应用监控,业务监控. CAT作为大众点评网基础监控组件,它已经在中间件框架 ...

最新文章

  1. 推荐系统resys小组线下活动见闻2009-08-22
  2. 开源微服务运行时 Dapr 发布 1.0 版本
  3. phpStudy中Xdebug设置 phpStorm设置
  4. Flow monitoring in Software-Defined Networks
  5. Spring Data JPA 从入门到精通~查询结果的处理
  6. WCF BasicHttpBinding 安全解析(1)BasicHttpBinding基本配置
  7. R语言的高质量图形渲染库Cairo
  8. 前端数据/文件提交的三种方式
  9. 短视频标题自动生成工具,助你打造爆款标题
  10. 使用Python Chord包画出好看的弦图
  11. 自定义wordpress登陆界面全屏渐变图片轮播
  12. 查看连打印机的计算机名,查看局域网打印机ip地址的方法步骤
  13. 美团构建实时数仓的痛点是什么?如何解决?
  14. 导出计算机配置信息吗,4种方式:查看电脑配置信息,没有必要用第三方软件。...
  15. 米家接入HomeKit系列二:通过群辉NAS的Docker搭建HomeAssistant
  16. 使用安卓手机控制树莓派
  17. 【python量化交易学习】pandas获取mysql数据,使用pyecharts画K线图,ma移动均线。
  18. QComboBox样式设置——Qt
  19. C语言编辑网络安全,C语言编的unix病毒
  20. Keil5可以打开Keil4

热门文章

  1. 那个被捧上天的GPT-3要开始收费了!网友:天价,溜了溜了
  2. 联邦学习最新研究趋势
  3. 「深入浅出」了解语音识别的技术原理和应用价值?
  4. AR独角兽的死亡教训:融资3亿美元,成投资人木偶,营销大于技术
  5. 谷歌大脑新算法,不折腾TPU就能加快AI训练速度
  6. 深度语义模型以及在淘宝搜索中的应用
  7. 第二代NumPy?阿里开源超大规模矩阵计算框架Mars
  8. SAP到SAP的升级 --- SAP行业新的金矿
  9. Centos7:update-initramfs -u:command not found
  10. 利用numpy对已知样本点进行多项式拟合