尤勇 --《大众点评网监控系统架构剖析》-- ThinkInLAMP 华东架构师大会

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

! CAT(CentralApplicationTracking)⼤大众点评、架构组、尤勇微博:DP尤勇⼤大纲! CAT背景! CAT介绍! CAT报表! CAT设计! CAT案例! CAT总结⼤大纲! CAT背景! CAT介绍! CAT报表! CAT设计! 实际案例! CAT总结小米+步枪! Java迁移初期,2009-2010年! Cacti、Nagios...! BugEmail! ErrorLogs趟过的坑! SOA之后多个应用同时报错,不知道是哪个出错了! ⼤大量报错,需要花很久时间才能定位! 很多问题最终都说可能是⽹网络问题! 项目出现⼀一堆异常根本不关⼼心! Mobile⼀一开始上线⼀一天就⼏几⼗十到上百万异常! 调用缓存、数据库基本是⿊黑盒⼦子! ⼀一次将线上的库配置到了Beta,花了整个通宵排错监控背景! Hawk监控! 典型基于Key-Value的日志监控模型! 完成了异常,cache,sql等监控! CAT监控! eBay的CAL取得了巨⼤大成功监控分层! 业务监控! 通过⼏几个核⼼心指标来确定业务正常! 应用监控! 通过监控应用运⾏行指标来确定应用健康状况(URL\CALL\Cache\SQL等)! 系统监控! 监控系统的运⾏行指标! CPU、Memory、IO! Zabbix,Cacti监控作用减少线上故障发现时间(OP)减少线上故障定位时间(OP)帮助应用程序进⾏行优化(PD)⼤大纲! CAT背景! CAT介绍! CAT报表! CAT设计! CAT案例! CAT总结CAT简介! CAT(CentralApplicationTracking)是基于Java开发的实时应用监控平台,为⼤大众点评⽹网提供了全面的监控服务和决策支持。! CAT作为⼤大众点评⽹网基础监控组件,它已经在中间件框架(MVC框架,RPC框架,数据库框架,缓存框架等)中得到⼴广泛应用,为点评各业务线提供系统的性能指标、健康状况、基础告警等。CAT现状! 集成中间件产品(RPC、SQL、Cache等)! 5台CAT物理监控集群! 200+业务应用(包括部分.net以及Job)! 900+应用服务器! ~6TB消息⼤大小,~50亿消息(每天)! ~800GB存储(每天,压缩后)2013-09CAT的Logview! 消息头! 版本号,消息ID,所属业务,IP,所在线程,根消息ID! 消息体可视化的Logview分布式Logview⼤大纲! CAT背景! CAT介绍! CAT报表! CAT设计! CAT案例! CAT总结CAT报表! Transaction! ⼀一段代码运⾏行时间、次数,比如URL、Cache、SQL执⾏行次数和响应时间! Problem! 系统可能出现的异常,包括访问较慢的程序等! Heartbeat! JVM内部⼀一些状态信息,Memory,Thread等! Dependency! 系统之间实时调用数据信息,包括远程服务、数据库、缓存等! Metric! 业务监控报表! Matrix! ⼀一个请求调用链路统计! Event! 记录程序中⼀一个时间执⾏行的次数,比如异常等! Cross! SOA系统用关于RPC调用的报表! State! CAT自身状态监控,包括处理消息数、丢失消息! ...Transaction报表具体URL报表URL趋势! 时间分布! 响应时间分布! 访问量分布! 错误量分布Problem报表Heartbeat报表Matrix报表! 远程调用、sql调用、缓存调用最多排⾏行! ⼀一次的页面中,最多调用远端服务14791次,这个是需要优化的地⽅方。Cross报表! 统计粒度支持项目、具体某⼀一IP、具体的服务⽅方法! 客户端调用! 客户端会调用Swallow,UserBaseService,SmsServer,MailServerCross报表Dependency报表! 圆形-服务! ⽅方框-数据库! 菱形-缓存! 红⾊色-Error! 黄⾊色-warning! 绿⾊色-OK应用监控⼤大盘业务监控⼤大盘v1.0⼤大纲! CAT背景! CAT介绍! CAT报表! CAT设计! CAT案例! CAT总结CAT设计! 监控系统指标! 监控API! 客户端设计! 服务端设计! 物理部署! 数据建模监控系统指标! 对应用⽆无影响(服务端上线、宕机等)! 实时性(消息尽快到达服务端)! 吞吐量(服务端⾼高的吞吐量)! 开销低(客户端尽可能开销低)(开销2%以内)! 可靠性(消息100%到达服务端)! 服务端处理100%的到达消息监控领域建模⼀一段代码执⾏行时间⼀一段代码执⾏行次数定期执⾏行某些代码⼀一个指标的变化值url/sql响应时间Exception出现次数分钟粒度Cpu,IO监控销售额TransactionEventHeartbeatMetric监控API客户端设计开始HttpThread结束CallSQLCachee......创建消息树ThreadContext创建Call节点加⼊入SQL节点加⼊入Cache节点.....消息构建结束SenderthreadsMessageQueueSenderSenderServerServerServer客户端需要注意问题! 内存开销! 不恰当埋点⽅方式,消息⾜足够⼤大! CPU开销! 构建消息⾜足够轻量! 异步发送消息! 异常状况! ⽹网络问题! 服务端宕机服务端设计监控消息异步发送消息消费机ReceiverthreadsFile消息转储异步线程统计报表Queues将多线程任务转换单线程处理模型应用A应用B应用CReceiverReceiverAnalyzerthreadsAnalyzerAnalyzer服务端注意的问题! 消息处理速度,每秒处理5w+消息! Calendar,SimpleDateFormat! Line95计算! List的转化为Map! 复杂任务异步化! 消息存储,消息压缩,消息传输! 自身监控,容量评估部署应用A应用B应用CTCP消费机消费机控制台控制台LogviewReport实时数据查询历史数据查询ConsumersConsoles数据建模! 目标模型定义! 访问、转换和合并! 模型持久化! XML,JSON,Binary...! 代码⽣生成⼤大纲! CAT背景! CAT介绍! CAT报表! CAT设计! CAT案例! CAT总结故障定位! 收到告警! tuangou-weblogscan发出⼤大量告警! zabbixreview-serviceFGC告警! zabbixtuangou-weberror告警! zabbixmobile-apierror告警第⼀一步:监控⼤大盘! V0.1时候的监控⼤大盘第⼆二步:点击TuanGouWeb第三步:点击Review! 发现依赖调用ReviewServer的所有项目都报错! cache-server和dianpingcomm库的调用异常,可能是cache有关操作引起的。rootcase也确实如此⼤大纲! CAT背景! CAT介绍! CAT报表! CAT设计! CAT案例! CAT总结CAT项目总结! 1年半时间,2-3个⼈人! 持续集成,持续发布,不断监控! 单机开发和调试! EverythingFails! 尽可能的减少配置! 关注客户,快速响应CATFuture! OpenSource()! CodeClean! RemoveDependency! Document! TestCaseQA! Thanks业务应用系统

1 / 49
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功