看大众点评如何通过实时监控系统CAT打造7*24服务

尤勇是大众点评网资深工程师,开源监控系统CAT(CentralApplicationTracking)的开发者,目前主要负责C和大众点评私有云平台的开发。

CAT是一个实时监控系统,它侧重于Java应用的监控,基本接入了点评所有核心应用。CAT已经在中间件框架(MVC框架、RPC框架、数据库框架、缓存框架等)中得到广泛应用,为点评各业务线提供系统的性能指标、健康状况、基础告警等。

CAT很大的优势是它是一个实时系统,从数据生成到服务端处理结束是毫秒级别;第二个优势,数据是接近全量统计。

大众点评监控系统CAT是由@吴其敏@携程(前大众点评首席架构师,现携程架构负责人)主导设计。我们平常都称吴其敏为老吴,老吴之前在eBay工作超过10年,对于eBay的CAL系统有深入了解,CAL是CAT系统当初的原型。

为什么要做监控

监控应该是一个很宽泛的问题,任何可能出问题地方都需要加入监控。

我们把服务端监控的报表分为两类:

故障发现类的报表有如下几个:

以上讲了我们做的给运维,更准确的是24小时值班监控团队的监控大屏,主要目的是快速发现问题,这里不需要很华丽的数字,主要用精确的红色来代表发现故障,需要立刻通知解决。

什么东西才可以作为一个大盘:这里需要看公司整体运维的故障情况,TopN以及业务指标应该属于通用,数据库和网络大盘是点评在实际经验中经常容易出故障的地方,所以我们做成大盘这样比较直观的形式,用于发现问题。比如平时因为发布引起故障比较多,他们也做了一个发布大盘,实时监控线上的发布情况。

下面我会讲到服务端分析问题的报表,在这之前我介绍几个CAT监控的几个基础概念。

在这个基础上我们定义监控最基础的模型,Transaction和Event,这个也是后续问题最多的地方。

后面还扩展定期执行某些代码以及一个指标变化值,第三个可以理解为心跳(主要是框架使用)。最后一个一个指标变化值,主要用于业务指标的监控。在这个基本模型的基础上,我们定义了我们监控的Java的API,Sample大致如下:

这个API里面Transaction以及Event都有两层分类,为什么是两层分类,从实际的经验中两层分类可以解决大部分的问题,所以定义了两层。当业务程序完成了API的情况,后面会产生CAT的原始监控请求,这里我们称之为Logview。

它还有另外一种展现形式,它很直观看到整个调用路径中最慢的地方。

整个点评迈向SOA化,Web调用服务,服务再调用其他的服务,调用关系的跟踪很有必要。

在点评Call表示一个远程访问,当遇到一个远程访问时候,会有一个show节点,点击show就能知道服务端对应这次Call的它的访问序列,如果这个服务还调用其他的服务,一样可以跟踪下去。比如如下请求是URL,调用了groupService的服务,groupService的服务还调用了userBaseService的服务

以上部分讲诉了整个CAT监控最核心的模型以及在此基础上产生的Logview,后续监控产生所有的原始数据都来自于Logview。在点评监控,目前是做的全量监控,也意味着每次URL请求,SQL请求、缓存请求、远程请求都有对应的实时Logview发送CAT以供实时处理。

CAT每天大约有300亿Logview,3500GB消息,Logview太多了人已经没办法处理,所以基于Logview肯定有一些实时分析的report,下面我讲诉监控系统基于这些logview产生几个核心的report。

1、TransactionReport

Machines:有一个All以及具体的机器明显,可以看所有机器,也可以看单个某台机器,如果某台机器出现的问题,则可以很容易看到。

上图这里面是点击URL进去的第二层,可以看到第二层的具体明细,统计值也是一样。

看到这个数据能帮助我们什么?

这里的Transaction的埋点的Type和Name是业务自己定义。

2、EventReport

3、ProblemReport

之前讲述过每个应用每次的请求都会有CAT的监控的Logview,这样庞大的数量下,ProblemReport等于定义了很多特征,特征包括如下,ProblemReport就是把一堆logview中存在这些特征的给聚合为一个报表,让用户发现问题。

上图我点击一个异常的后面的O,就看到这次异常出现的完整的上下文信息。

点击show,可以看到此类错误对应的机器分布情况以及分钟粒度的趋势图,通过这个很容发现是否某台机器故障还是全局问题等。

业务开发他们需要fix里面一些比较严重的问题。比如SQL慢响应很多(比如通过索引或者缓存),服务慢响应(如何优化),调用下游错误(如果推动下游服务端解决),异常(NPE)等等。

4、HeartbeatReport

这里主要CAT客户端定期一分钟向服务端汇报当前运行时候的一些状态,几个比较常用的指标有:

展示方式按照某台机器的维度查询

心跳报表还需要有一定扩展性,这里CAT提供了一个SPI让业务实现并注册上来,这样可以每分钟上报心跳并回调,让后把数据一起传回服务端,并作监控展示。常见的使用场景有:当前机器每个数据库的连接数、当前jvm使用队列的当前队列数量等。

最后一个ReportCrossReport

这个报表主要作用了解决在RPC框架里面的一些上下游调用链路的问题,统计粒度支持项目、具体某一IP、具体的服务方法。

点击ALL或者单台机器可以知道调用具体此服务某个方法耗时情况。

这个报表还有很多其他作用了,比如作为一个服务端,他可以知道当前有多少客户端访问我,可以查询服务端一个方法被多少客户端调用,每个客户端调用的响应以及耗时等等。(这里往往会发现个别比较糟糕应用用一些不太合理的方式调用,比如夜里的Job,大量的batch调用等,这样就会考虑独立部署几台给个别应用调用)。

CAT还有其他的一些报表,这里我就不一一介绍了,有兴趣同学可以参考下CAT的文档。

CAT一些离线分析报表,比如jar版本分析,服务可用性排行等等。

如上图CAT在当初设计的基本几个点,在再次基础上我们后面很多方案都是基于此来实现。对应用无影响是必须的,实时性我们要求做到毫秒级,由于是全量监控,所以吞吐量也是需要保证,最后是开销,开销不能因为应用接入监控提高很多的延迟。

最后两个可靠性,应用端是否确定把所有消息传输到服务端,以及服务端是否必须处理所有消息,我们认为是没有必要的,但从实际的结果看来,有4个9的可用性。比如昨天数据,一共处理240亿,丢了50w消息。

下面讲到客户端设计一些要点

下图是整个文件存储的设计图

在消息ID设计上,是${domain}+${ip}+${timestamp}+${index},这作为唯一的KEY,所以CAT不支持同一个IP部署两个相同的应用。同一个IP部署多个不同的应用是没有问题的。所有的文件都加上cat的consumer的ip作为后缀,保证文件上传到hdfs上不会有文件的冲突。

压缩采用的是分块压缩,数据块的大小在64K以内,所以记录每个消息对应的所在块以及消息在所在块的偏移量。当需要找到某个消息,先随机访问到某一个块,将这个块全部读取出来,然后根据块内偏移地址找到对应的Logview,因为消息可能是在多个文件中,最后检查下读取到的logview的id等于查询时候的id,即找到消息。

这里说下点评实际的一些经验。

很快到了今天总结的时候,这部分我会讲讲监控在点评一路的情况,有些问题的解决,如果还有其他的疑问,后续大家可以提问

CAT是全量数据采集,心跳数据是1分钟一次。如果服务器或者硬件监控,一般几秒一次。如果是特别重要的,可以一秒一次。

心跳里面的监控项有

建议报表系统还是自己做比较合适,报表这类需求定制太多了,比如按照部门、产品线等统计。

开源的监控系统,比如zabbix,nagios,cacit算是很成熟的一套监控系统,他们能通过脚本或者snmp协议等收集很多服务端的性能数据,并配置很多监控规则来发现服务器等一些问题。点评这些也在用,主要是zabbix,他和CAT互相补充。

之前小米开源的系统应该也是基于指标的画图以及告警,和CAT应该是两类不同的系统。

服务端监控,就应该类似于我上面讲的CAT在服务端监控一些做法,不仅仅包括问题发现,还包括了性能调优,路径分析等等,这样才能把帮助业务分析并找到问题。

Dubbo是阿里的一套PRC开源框架,目前我们没有集成的case,CAT和点评PRC组件集成得很好,坚信应该不是问题。

个人觉得运维成本不大,主要是使用以及依赖组件很少,MySQL,极端情况HDFS都可以不需要。

基于性能考虑。Netty本身是非常成熟的开源网络组件,event机制、全异步、高性能,还有简单易用,非常适合于框架和基础设施开发。CAT用Netty做长连接通讯,吞吐量非常高,健康检测、故障转移和故障恢复能力都非常强。消息队列根本不适合这么底层的数据传输,它的overhead太大,很多featureCAT并不需要。

CAT客户端有一个queue,queue是固定大小了,CAT一台客户端会连向几个服务端,当一个服务端出问题,数据不会丢失。当所有服务端都挂掉,消息会存入queue,当queue满了,就丢弃了,没有做数据存储本地等工作。

上下游调用,主要用到全局统一项目名,这是点评一套架构上的规范,可以理解为环境信息。RPC能在当前的运行环境下知道自己当前的项目名以及调用者的项目名。

支持JAVA和.Net。

当一个客户端不work,client会自动连接上nextserver,所以有一个管理连接的线程,保持一个活动有效的连接,如果server全部挂了,消息就丢弃了。

Q17:如何检测到丢失的消息数?

所有的消息都是基于消息队列处理,如果队列满了,会有记录。

没有。

不是通过脚本,具体的收集可以参考源码StatusInfoCollector,主要用到MemoryMXBean,MemoryPoolMXBean等。

数据上报的格式也是logview,是客户端主动一分钟上报一次。

服务端尽量做到高可用吧。

手机监控其实是另外一套系统,最后展示层在CAT。

服务端会分析上报logview,埋点信息会有客户端和服务端的项目名信息,后端可以用此数据进行实时分析。

UDP在线下测试很不稳定,经常丢弃什么,TCP的比UDP多的开销其实对业务影响很小。

CAT系统最初的设计者吴其敏补充说:如果系统的消息丢失率达到一定的比例,那么它的的可信度就会降低,所以保证足够多的消息能够被好好处理是很重要的。CAT设计成不可靠系统,但实际上我们希望系统足够可靠,只是不愿为承诺可靠而付出高额代价。以前研究过Dapper,觉得它的机制与CAT相差很远,监控的全面性不够。当然如果到了Google的量级,情况就很不一样了。

TCP是有连接的,有拥塞控制;UDP无连接,一般情况下内网成功率还是挺高的,极端情况下将非常糟糕。

THE END
1.微博服务器崩了是什么意思?Worktile社区威胁网络安全:如果服务器崩溃是由于安全攻击造成的,那么这可能对用户数据和平台的安全性构成威胁。黑客可能利用服务器崩溃的混乱来获取用户的个人信息或进行其他不法活动。 因此,当我们说微博服务器崩了,意味着微博平台面临着无法正常运行、用户无法访问、数据丢失等一系列问题。这对于用户和微博平台来说都是一个严重的https://worktile.com/kb/ask/1842604.html
2.荣耀应用市场无法登录/提示“网络状态不佳,请重试”请确认使用的是荣耀账号和密码。2023年11月23日及之后发布的荣耀设备由荣耀应用市场提供服务,需使用荣耀账号登录。 可能是网络环境异常,更换网络类型重新登录/联网,比如使用移动类网络无法登录/联网就更换使用Wi-Fi登录/联网;如果移动数据和Wi-Fi都无法登录/联网,可能是您目前网络接?不稳定,请您隔段时间后再进行登https://www.hihonor.com/cn/support/content/zh-cn15819721/
3.手机无法加入网络手机无法加入网络 第一种直接重置手机的网络设置 在手机里找到还原-还原网络设置,等待重启后重新输入无线网密码连接即可恢复正常. (此方法可解决99%的人群) 第二种更改频段 , 连接5G频段(需要路由器支持2.4G/5G双频段)我现在也是一直用的5G频段,一点问题都没有。第三种提示信息字面意思就是多个设https://m.dianping.com/ugcdetail/144122549?sceneType=0&bizType=29&msource=baiduappugc
4.魅族贴吧吧求助,18sPro在大众点评上拨打电话,提示号码错误 a543412119 请测试后,系统升级优化。 a543412119 10-1 0 魅族的品控真的让人失望了 贴吧用户_ 两次了,一个月两次晚上充电睡觉第二天起来直接开不了机。这个让我真的怎么接着爱 贴吧用户_ 9-6 1 果断放弃魅族所有手机了 呆子的梦i 魅族17http://fexclick.baidu.com/f?kw=%E9%AD%85%E6%97%8F%E8%B4%B4%E5%90%A7&ie=utf-8
5.美团App崩了?官方客服回应来了上述客服人员还称,页面无法加载不是所有用户都会出现,等系统升级后,就会自动恢复正常。如果点外卖,可以先选择美团小程序、美团外卖APP或者大众点评进行替代。 在东方财富看资讯行情,选东方财富证券一站式开户交易>> 4月26日,针对“美团App崩了”的市场传闻,美团官方客服回应中国证券报·中证金牛座记者,目前系统正在https://finance.eastmoney.com/a/202404263061032495.html
6.豆瓣亚马逊大众点评等评价机制都是怎么运转的?7000字深度(图源网络;在如今反作弊机制下很少出现此类评分) 对比之下,尽管也是依托大众的评价,算法维度多元的亚马逊和大众点评,则有多重机制可以预防和及时修正打分。 以大众点评为例,其星级计算逻辑不是简单计算打分,还会考虑到评价的诚信度(体验后的真实评价才会纳入计算)、时间(近期新提交的评价更重要)、质量(评价包含更多真https://maimai.cn/article/detail?fid=1695791735&efid=cGP9o78NSe5XhaTHdOq_nw
7.大众点评里面,说我违规了,帐号异常,请问怎么才能解除异常客服说最后,记住,一篇优质的点评不仅描述了你的个人经历,还为他人提供了有价值的参考,帮助他们更好地理解和享受餐厅的独特之处。所以,用心写下你的每一次用餐体验,让你的点评成为大家的贴心指南。 有关大众点评里面,说我违规了,帐号异常,请问怎么才能解除异常?客服说?_大众点评如何写优质点评?的内容就介绍到这里了,如果https://www.duote.com/tech/202404/555596.html
8.大众点评私信功能使用规范为了给用户提供一个安全健康的网络生态环境,营造更好的社区氛围,大众点评制定了《大众点评私信功能使用规范》(“本规范”),并将按照相关法律法规及大众点评相关规则,处理违规行为,配合有权机关维护大众点评用户及其他主体的合法权益。 维护良好的网络交流环境需要每一位用户的参与,请仔细阅读本规范并遵守本规范。 https://rules-center.meituan.com/rules-detail/251
9.我的LSTM网络非常慢。要优化什么?腾讯云开发者社区要优化LSTM网络的速度,可以从以下几个方面入手: 1. 模型结构优化:LSTM网络中包含多个门控单元,可以通过减少门控单元的数量或使用更轻量级的门控单元(如GRU)来减少计算量,以提高速度。 2https://cloud.tencent.com/developer/information/%E6%88%91%E7%9A%84LSTM%E7%BD%91%E7%BB%9C%E9%9D%9E%E5%B8%B8%E6%85%A2%E3%80%82%E8%A6%81%E4%BC%98%E5%8C%96%E4%BB%80%E4%B9%88%EF%BC%9F
10.网络语言对生活的影响5篇(全文)食,饮食方面的APP同样是精彩丰富,网上厨房、豆果美食,会告诉你如何做自己喜欢吃的菜,以及如何发现周边的美食,如何用最优惠的价格享受这些美食,而大众点评则能告诉你怎样去找一个货真价实好吃的饭店; 住, 58同城、赶集网都可以成为你租房买卖二手货的好帮手,通过去哪儿以及携程旅游之类的app则能非常方便地解决旅行出https://www.99xueshu.com/w/ikey7mqesqk4.html
11.四有青年米粉加盟四有青年米粉加盟费多少?电话多少?02、利用大众点评分类分析定位 在四有青年米粉创业之时,创始人赵刚看了很多品类,把大众点评小吃快餐里面的40多个分类看了个遍,做各个品类的分析。 发现米粉有它独特的品类优势: 1、高峰期出餐快,一份米粉15秒出餐,效率高; 2、符合外卖的需求,在半个小时后能实现口味的基本稳定; 3、有汤有水有价值感,适合未来https://www.jiamengfei.com/xm/42914
12.链路追踪Skywalking保姆级安装教程skywalkingzuulexception随后各大厂商基于这篇论文都开始自研自家的分布式链路追踪产品。如阿里的Eagle eye(鹰眼)、zipkin,京东的“Hydra”、大众点评的“CAT”、新浪的“Watchman”、唯品会的“Microscope”、窝窝网的“Tracing”都是基于这片文章的设计思路而实现的。所以要学习分布式链路追踪,对于Dapper论文的理解至关重要。https://blog.csdn.net/bxg_kyjgs/article/details/125297333
13.供应代买服务的零售电商存活几率就异常小西宁网络公司同样的问题,在美团、饿了么身上一样存在,从2010年至今,美团与后来合并的大众点评双方融资总额已达到57亿6400万美金,从当年的百团大战到后来扩张至外卖、电影票、酒店业务,一路走来美团烧钱不止。为了讨好用户,美团不得不在提高平台商户佣金上下手,导致大量店主对此不满,2016年多地餐饮商家集体抵制美团,今年1月浙江《http://www.xc28.cn/show/1106/
14.社会诚信再如淘宝通过用户淘气值判断其信用及消费能力等指标,可以享受极速退款、先用后付的专属便利。除对消费者分级外,平台也对平台内经营者实行信用认证,如大众点评平台出具推荐商家榜单,淘宝平台对商家店铺按照成交量和好评数量实行评分累积,给予爱心、灯笼、钻石、蓝皇冠以及黄皇冠的等级认证等。http://credit.abazhou.gov.cn/web3/1747462665835220993.html
15.真实快手评论网站大众点评刷人气排名真实快手评论网站 大众点评刷人气排名 前言在这个信息爆炸的时代,网络评论和人气排名对于商家来说至关重要,它们不仅影响着消费者的决策,还能在一定程度上反映出一个品牌或产品的受欢迎程度,随着竞争的加剧,一些商家开始寻求 前言 在这个信息爆炸的时代,网络评论和人气排名对于商家来说至关重要,它们不仅影响着消费者https://www.waqceqq.cn/zizhu/202412-3694.html
16.企业数据合规之数据分类分级(下)网络法实务圈一般情况下,重要数据系对政治、国土、军事、经济、文化、社会、科技、电磁、网络、生态、资源、核安全等构成严重威胁,严重影响海外利益、生物、太空、极地、深海、人工智能等与国家安全相关的重点领域的相关数据,处于特殊行业领域的企业需要进行关注。 值得注意的是,《网络数据安全管理条例(征求意见稿)》中规定了数据处理https://www.shangyexinzhi.com/article/7927126.html
17.隐私政策3、美团:本政策中所指的“美团”是指美团旗下所有公司及其附属、关联公司(包括美团网、大众点评、快驴进货等各平台旗下已经成立的公司及未来可能成立的公司)。 4、关联公司:指美团(Meituan)最新上市公司年报披露的美团关联公司。 5、关联账号:您可以使用相同的手机号码登录美团所提供的产品/服务,并授权使用您的美团https://kuailvzaixian.cn/html/privacyPolicy.html
18.前沿技术(精选十篇)因为大型开放式网络课程有为数众多的学习者,以及可能有相当高的学生─教师比例,大型开放式网络课程需要能促进大量回应和互动的教学设计。 以下是两个基本的设计方式: 1.运用大型开放式网络课程网路来处理大众的互动和回应,如同侪审查(peer review)、小组合作等。 https://www.360wenmi.com/f/cnkey4jj4wxf.html
19.注册大众点评显示账号异常限制注册为啥注册大众点评显示账号异常限制注册为啥 1. 如果出现请求次数太多超出限制,用户可以关闭大众点评。 2. 进入手机设置,应用,找到大众点评,将大众点评数据清理掉。 3. 然后断开手机的数据连接,重新连接。 4. 再次进入大众点评,填写手机号码申请注册即可。 以https://wenda.so.com/q/1678750821217666