CAT实时应用监控平台链路监控简介与原理,搭建配置与使用,Spring和Nacos集成代码

本文详细介绍了CAT链路监控系统,包括其背景、优势、工作原理、架构设计,以及如何在微服务架构中监控服务请求、故障定位和报表分析。涵盖了CAT的部署、使用步骤和关键组件,以及与GoogleDapper的对比和实际应用案例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第1章 CAT链路监控

1. 目标

  • 了解CAT链路监控平台
  • 了解CAT链路监控机制与基本原理

2. 分析

  • 背景
  • 简介
  • 优势
  • 功能报表
  • Google Dapper分布式跟踪系统理论
  • Dapper部署架构
  • 链路监控机制
  • CAT的架构设计

3. 讲解

3.1 背景

从单体架构到微服务架构的演变, 一个业务请求往往会流转多个服务, 大型互联网产品服务架构尤为复杂,腾讯的抢红包服务, 阿里的交易支付服务, 可能就流转成百上千个服务节点, 面对众多服务, 如何监控管理? 服务请求一旦出现问题, 如何快速定位问题? 如何保障服务的高可用, 做到全面的监控与预警? 如何分析统计服务的运行状况? 看下链路监控产品如何解决这些问题。

3.2 CAT简介
  • CAT 是基于 Java 开发的实时应用监控平台,为美团点评提供了全面的实时监控告警服务。
  • CAT 作为服务端项目基础组件,提供了 Java, C/C++, Node.js, Python, Go 等多语言客户端,已经在美团点评的基础架构中间件框架(MVC框架,RPC框架,数据库框架,缓存框架等,消息队列,配置系统等)深度集成,为美团点评各业务线提供系统丰富的性能指标、健康状况、实时告警等。
  • CAT 很大的优势是它是一个实时系统,CAT 大部分系统是分钟级统计,但是从数据生成到服务端处理结束是秒级别,秒级定义是48分钟40秒,基本上看到48分钟38秒数据,整体报表的统计粒度是分钟级;第二个优势,监控数据是全量统计,客户端预计算;链路数据是采样计算。
3.3 CAT优势
  • 实时处理:信息的价值会随时间锐减,尤其是事故处理过程中。
  • 全量数据:全量采集指标数据,便于深度分析故障案例。
  • 高可用:故障的还原与问题定位,需要高可用监控来支撑。
  • 故障容忍:故障不影响业务正常运转、对业务透明。
  • 高吞吐:海量监控数据的收集,需要高吞吐能力做保证。
  • 可扩展:支持分布式、跨 IDC 部署,横向扩展的监控系统。
  • 报表丰富: 帮助管理人员从各个角度了解系统的整体状况。
3.4 CAT报表
  • 报错统计报表
    在这里插入图片描述

  • 业务统计报表
    在这里插入图片描述

  • LOGVIEW统计
    在这里插入图片描述

  • 可视化LOGVIEW
    在这里插入图片描述

  • 应用类型报表
    在这里插入图片描述

3.5 Google Dapper论文

在这里插入图片描述

3.6 Dapper Deployment

在这里插入图片描述

3.7 链路监控工作机制

在这里插入图片描述

3.8 CAT架构设计

整体设计
简单即是最好原则设计, 主要分为三个模块cat-client,cat-consumer,cat-home。

  • cat-client 提供给业务以及中间层埋点的底层sdk。
  • cat-consumer 用于实时分析从客户端的提供的数据。
  • cat-home 作为提供给用户的展示的控制端。

客户端设计

客户端设计是CAT系统设计中最为核心的一个环节,客户端要求是做到API简单、高可靠性能、无论在任何场景下客户端都不能影响各业务服务的性能(监控只是公司核心业务流程一个旁路环节)。

在这里插入图片描述

服务端设计
服务端单机cat-consumer的整体架构:
在这里插入图片描述

当某个报表处理器处理来不及时候,比如Transaction报表处理比较慢,可以通过配置支持开启多个Transaction处理线程,并发消费消息。
在这里插入图片描述

4. 总结

  • CAT功能作用, 特点优势
  • CAT的统计报表,功能作用
  • Google Dapper分布式链路监控理论基础, 部署结构。
  • 链路的监控机制, 如何运作, 如何跟踪。
  • CAT的架构设计,特征, 核心模块,处理流程。

第2章 CAT安装使用

1. 目标

  • 安装与配置CAT服务
  • CAT的接入使用, 查看链路跟踪信息

2. 步骤

  • 完成CAT单机部署
  • 拓展CAT集群部署
  • 服务设计
  • 工程结构
  • CAT集成事项
  • 启动验证

3. 实现

3.1 CAT单机部署

环境要求

  1. JDK1.8+
  2. Tomcat8+
  3. MySQL5.7+

CAT启动配置

不建议在Windows下部署, 设计上对window支持不好, 容易出各种问题。

  1. 下载CAT源码, 如GIT方式过慢, 可用Download Zip 方式打包下载。

  2. 构建CAT服务war包
    可以导入IDEA工程进行编译, 或者直接用MAVEN进行编译:
    将MAVEN加入到系统PATH, 执行mvn命令:

    mvn clean install -Dmaven.test.skip=true 
    
  3. 创建数据库

    先创建CAT数据库, 采用utf8mb4字符集, 再导入{CAT_SRC}/script/目录下的CatApplication.sql脚本。

  4. 配置修改
    运行盘下的/data/appdatas/cat和/data/applogs/cat有读写权限, 如果程序是在E盘, 则需创建e:/data/appdatas/cat目录

  • 配置/data/appdatas/cat/client.xml (客户端使用)

    <?xml version="1.0" encoding="utf-8"?>
    <config mode="client">
        <servers>
            <server ip="127.0.0.1" port="2280" http-port="8080"/>
        </servers>
    </config>
    
  • 配置/data/appdatas/cat/datasources.xml (服务端使用)

<?xml version="1.0" encoding="utf-8"?> 3 1s 10m 1000 com.mysql.jdbc.Driver <![CDATA[jdbc:mysql://127.0.0.1:3306/cat]]> root root <![CDATA[useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&socketTimeout=120000]]> ```
  1. TOMCAT配置

    修改tomcat conf 目录下 server.xml, 检查好端口没有被其他程序占用。

 如果内存不足, 需作调整(linux)
```sh
CATALINA_OPTS="-Xms1024m -Xmx2048m -Xss1024K  -XX:MetaspaceSize=512m -XX:MaxMetaspaceSize=1024m"
  1. 启动
  • 执行start.sh

  • 打开控制台地址: http://10.10.20.10:8080/cat/s/config?op=routerConfigUpdate

  • 默认用户名:admin 默认密码:admin

正常可以看到后台:
在这里插入图片描述

3.2 CAT集群部署

课程演示, 不作详细介绍, 具体可参考官方文档: CAT集群部署

3.3 服务设计

在这里插入图片描述

设计四个服务:网关服务、订单服务、账户服务和库存服务, 三层调用关系监控,

Gateway->Order->Account、Stock
3.4 工程结构
  • cat-demo: 父级工程
  • cat-demo-account: 账户服务工程
  • cat-demo-gateway: 网关服务工程
  • <
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

纵然间

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值