美团点评技术工程部技术专家尤勇 - 美团点评分布式监控 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 !