美团点评技术工程部技术专家尤勇 - 美团点评分布式监控 CAT 系统架构演进
2020-02-27 742浏览
- 1.
- 2.
- 3.分布式监控CAT美团 点评实践
- 4.分布式监控CAT美团 点评实践
- 5.⾃自我介绍 • 尤勇 硕⼠士 南京大学 • 2010年年加⼊入美团点评 基础架构组⾄至今 • 资深技术专家 • ⽬目前主要负责CAT监控、移动接⼊入层
- 6.⼤大纲 • CAT介绍 • CAT设计 • 最佳实践
- 7.CAT介绍 • CAT(Central Applica4on Tracking)是基于Java开发 的实时监控平台以及性能诊断⼯工具,主要包括移 动端监控、前端监控、服务端监控等。 • 今天侧重服务端监控体系介绍。
- 8.监控分层 移动端监控 前端监 (返回码、城市、地区、运营商、版本、 系统等多维度) 控 业务监控 (业务核⼼心指标监控,⽀支付、验券) 应⽤用层监控 (url、service、sql、cache 可⽤用率、响应时 间、qps等) 系统层监控(物理理机,虚拟机) (cpu memory network disk等) 基础设施监控(⽹网络,交换机) (⽹网络流量量,丢包,错包,连接数等) CAT zabbix falcon 等
- 9.CAT服务端监控系统 • 1、客户端⽇日志不不落地 • 2、服务端实时处理理 • 整个系统从客户端产⽣生消息到服务端产⽣生实时报表延 迟在毫秒级别 • 3、客户端接近全量量数据采集
- 10.CAT的Logview • 消息头 • 版本号,消息ID,所属业务,IP,所在线程,根消息ID • 消息体
- 11.可视化Logview
- 12.分布式Logview
- 13.应⽤用监控报表(APM) 报表 Transac(on Event Problem Business Hearbeat RPC Cache Database API 说明 ⼀一段代码运⾏行行时间、次数、TP95、TP99 、\ ⼀一⾏行行代码的执⾏行行次数 系统出现异常,包括访问较慢的重要节点 多维度的业务指标监控 JVM内部⼀一些状态信息,Memory,Thread等 SOA系统⽤用关于RPC调⽤用的报表 缓存实时分析统计 数据库实时分析统计 API依赖分析报表 13
- 14.Transac3on报表 • ⽀支持项⽬目、IP、TYPE、NAME 四层统计 • 框架层⾯面统⼀一接⼊入了了URL、RPC、SQL、Cache、Message等
- 15.Problem报表 • excep4on • long-url • long-sql • long-service • long-cache • long-call • fTarial nsac4on
- 16.Business报表 测试tag以及ip地址,⾃自 动根据BusinessKey⽣生 成,不不同的业务指标会 有不不同的tag
- 17.RPC报表
- 18.⼤大纲 • CAT历程 • CAT设计 • 最佳实践 18
- 19.CAT设计 • 整体设计 • 客户端设计 • 服务端设计 19
- 20.监控系统指标 • 对应⽤用⽆无影响(服务端上线、宕机等) • 实时性(消息尽快到达服务端) • 吞吐量量(服务端⾼高的吞吐量量) • 开销低(客户端尽可能开销低)(开销2% 以内) • 可靠性(消息100%到达服务端) • 服务端处理理100%的到达消息 20
- 21.整体设计 应⽤用A 应⽤用B 应⽤用C TCP Consume rs Consoles 消费机 消费机 实时数据 查询 控制台 控制台 历史数据 LogviewReport 查询 21
- 22.启动时访问 路由中⼼ 机 应⽤ 监控消 A 息 1房 应⽤B 异步发 送 consumer1 consumer2 consumer3 …… 机 应⽤ 监控消 A 息 2房 应⽤B 异步发 送 consumer1 consumer2 consumer3 …… 启动时访问 路由中⼼ 存 储 存 储 home home
- 23.客户端设计 HttpThread ThreadCo ntext 开始 创建消息树 Call SQL Cachee ...... 结束 创建Call节点 加入SQL节 点加 入Cache节 点 ..... 消息构建结 束 Sender Sender Sender threads Server Server Server Message Queue 23
- 24.客户端重点 • 不不影响业务,任何极端场景 • 内存开销 • 由于埋点问题,消息⾜足够⼤大 • CPU开销 • 构建消息⾜足够轻量量,开销减低在2% • ⾃自定义序列列化,⽂文本协议 -> ⼆二进制协议 • 客户端采样和聚合 • 基于ne`y实现消息传输 24
- 25.服务端设计 应⽤用A 应⽤用B 应⽤用C 监控消 息 异步发 送 Receiv Rere ceiv 消息消费机 File 消息转 Analyz eArn alyz 储 异步线 程 Reer ceiv eArn alyz ethr reads er threads 统计报 表 25
- 26.服务端重点 • 监控建模 • 报表建模 • CPU优化 • 数据存储 26
- 27.建模 • 监控领域模型 • 数据报表模型 27
- 28.监控建模 ⼀一段代码执⾏行行 时间 ⼀一段代码执⾏行行 次数 定期执⾏行行某些 代码 ⼀一个指标的变 化值 url/sql响应时 间 Excep4on出现 次数 分钟粒度 Cpu,IO 监控销售额 Transac4on Event Heartbeat Metric 28
- 29.KeyValue的方式 • 后续扩展性较好 • 后续配置成本很⾼高 • 后续计算成本很⾼高 29
- 30.报表 • Transac4on • Event • Problem • Heartbeat • …… 30
- 31.报表建模 • ⽬目标模型定义 • 访问、转换和合并 • 模型持久化 • XML, JSON, Binary... • 代码⽣生成 31
- 32.模型遍历 32
- 33.模型合并 33
- 34.CPU性能优化 • 减少重复复杂的计算 • 减少重复对象的创建 • jprofile 34
- 35.数据存储 • 顺序写、随机读 • 批量量压缩(⼤大规模数据) 35
- 36.⼤大纲 • CAT介绍 • CAT设计 • 最佳实践 36
- 37.MVP版本 • Demo 1个月 • MVP 3个月 • 重点解决最急迫的⼀一个问题 37
- 38.⼀一些不不和谐的声⾳音 • 客户端 • 业务的挑战(可靠,性能) • 领导的挑战(当***时候,加⼀一个动态开关) 38
- 39.领域建模 • 监控领域监控 • 后端报表模型建模 39
- 40.数据质量量 • 数据质量量 • sql框架、cache框架、rpc框架、web框架 • 数据质量量决定了了监控质量量 40
- 41.单机开发环境 • je`y server • hdfs依赖 • mysql依赖 41
- 42.站在巨人肩膀上 • Ebay的CAL系统 • 商业产品NewRelic • 腾讯的移动端监控 • …… 42
- 43.最难的事情 • 项⽬目上线推动 • 如何推动整个项⽬目(2-3人) • 部⻔门之间沟通问题 • 跨地域⽀支持问题 • 后续的⽀支持和培训 43
- 44.开放⽣生态 • 产品的scope • 各种需求 • 系统开放⽣生态 44
- 45.CAT历程 • 2011-11月份 启动 • 2012-3月份 MVP模型 • 2012-12月份 150+应⽤用 500+服务器器 • 2013-12月份 400+应⽤用 1500+服务器器 • 2014-12月份 800+应⽤用 3000+服务器器 • 2015-9月份 1500+应⽤用 7000+服务器器 • 2016-6月份 2600+应⽤用 12000+服务器器 • 2017-4月份 5000+应⽤用 34000+服务器器 45
- 46.CAT总结 • 近5年年时间,2-3个人 • 先做小做精,再做大做全 • 持续集成,持续发布,不不断监控 • 单机开发和调试 • Everything Fails • 关注客户,快速响应 • 站在巨人的肩膀上 46
- 47.. 2017年3月 . Apache License,国内上百家公司在使⽤用和评估 .http://github.com/dianping/cat. 每天200TB数据,5000应⽤用,32000+机器
- 48.Thank you !