CAT:大众点评的实时分布式监控系统
需积分: 10 172 浏览量
更新于2024-07-19
1
收藏 2.27MB PDF 举报
"分布式监控系统的设计与实现,主要讲解了CAT(Central Application Tracking)系统,一个由大众点评基础架构组开发的实时监控平台,用于移动端、应用侧、核心网络层和系统层的监控。该系统提供了实时监控告警、应用性能分析等功能,具有毫秒级别的延迟,客户端日志不落地,服务端采用流处理。此外,还涵盖了CAT的Logview、应用监控报表(APM)、各种报表类型以及客户端和服务端设计的关键点。"
在分布式监控系统的设计中,CAT是一个重要的工具,它集成了移动端、应用和系统的全方位监控。CAT通过实时系统设计,确保客户端日志直接发送至服务端进行流式处理,避免日志落地,从而实现了极低的延迟。它的Logview功能提供了详细的消息头信息,如版本号、消息ID、业务归属、IP、线程信息等,以及可视化和分布式Logview,便于追踪和分析问题。
CAT的应用监控报表(APM)包含了多种报表类型,如Transaction(事务)、Event(事件)、Problem(问题)、Hearbeat(心跳)、JVM状态、Matrix(矩阵)、Cross(跨服务交互)、Cache(缓存)和Dependency(依赖)等,这些报表帮助开发者全面了解应用的运行状况,及时发现并解决问题。
在客户端设计上,CAT构建了一个消息树,通过ThreadContext创建Call节点,添加SQL和Cache节点,然后通过Sender发送消息。客户端需要考虑到内存和CPU的开销,例如,通过轻量级消息构建来降低CPU负担,但同时也因为埋点需求,消息可能较大。虽然客户端未进行压缩,但采用了Netty进行消息传输,解决了IO问题。然而,JavaMessagTreeId的生成和MappedByteBuffer的持久化带来了内存挑战,同时,客户端需要在任何情况下都能应对极端的CPU或IO压力。
服务端设计则涉及到数据的消费、控制台、Logview和报表生成。多个Consumer负责消费来自客户端的数据,而Consoles提供实时和历史数据查询功能。整个系统通过优化设计,确保了高效率和稳定性,满足了大规模分布式环境下的监控需求。
CAT作为一个强大的分布式监控系统,不仅提供了丰富的监控指标和报表,还在客户端和服务端都进行了性能优化,以实现高效、实时的监控能力。这对于任何需要监控复杂分布式系统的组织来说,都是一个宝贵的工具。
2018-04-16 上传
2021-08-09 上传
点击了解资源详情
2021-08-10 上传
2011-08-18 上传
2009-02-13 上传
2021-04-18 上传
happyzeng79
- 粉丝: 5
- 资源: 8
最新资源
- 基于Python和Opencv的车牌识别系统实现
- 我的代码小部件库:统计、MySQL操作与树结构功能
- React初学者入门指南:快速构建并部署你的第一个应用
- Oddish:夜潜CSGO皮肤,智能爬虫技术解析
- 利用REST HaProxy实现haproxy.cfg配置的HTTP接口化
- LeetCode用例构造实践:CMake和GoogleTest的应用
- 快速搭建vulhub靶场:简化docker-compose与vulhub-master下载
- 天秤座术语表:glossariolibras项目安装与使用指南
- 从Vercel到Firebase的全栈Amazon克隆项目指南
- ANU PK大楼Studio 1的3D声效和Ambisonic技术体验
- C#实现的鼠标事件功能演示
- 掌握DP-10:LeetCode超级掉蛋与爆破气球
- C与SDL开发的游戏如何编译至WebAssembly平台
- CastorDOC开源应用程序:文档管理功能与Alfresco集成
- LeetCode用例构造与计算机科学基础:数据结构与设计模式
- 通过travis-nightly-builder实现自动化API与Rake任务构建