版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
鹰眼下的淘宝分布式调用跟踪系统介绍淘宝网司徒放jifeng@大纲鹰眼是什么鹰眼的使用场景鹰眼的实现2现状日趋复杂的分布式系统服务框架消息中间件数据层分布式缓存分布式存储……3现状应用A应用B应用C应用D应用E消息服务器应用F应用G应用HDB分布式
缓存搜索HSFHSFHSFHSFHSFHSFHSF发消息收消息收消息收消息TDDLTDDLTairTairSearchTOPAPI请求无线客户端请求Web网页请求4如何理清这些后端调用关系?5举个例子设想高速收费站将车辆通行信息记录成日志[2013-05-0112:23:34]鲁A123BC,平度2,S16,济南,¥12[2013-05-0112:23:40]鲁A987DE,平度2,S16,淄博,¥10[2013-05-0112:43:15]鲁A123BC,潍坊1,G20,济南,¥18[2013-05-0113:38:29]鲁A123BC,青州西1,G20,济南,¥10[2013-05-0113:38:30]鲁A567AB,青州西2,G20,潍坊,¥10[2013-05-0114:39:27]鲁A123BC,淄博3,G20,淄博,¥15[2013-05-0116:42:58]鲁A123BC,济南3,G20,济南,¥25……6*上述日志内容仅作举例示意说明用,纯属虚构,请勿当真7*图片来源:/main/business/outlets.jsp举个例子可以得到收费站的每日总车流量和流量趋势鲁A123BC在五一期间的行驶路线和费用G20上的车速、路况G20流量过高时,车的来源分布8举个例子高速上行驶的车辆:前端请求高速上的收费站:处理请求的应用由中间件去记录请求的网络调用情况关键点:关联日志中记录的车牌号9简介鹰眼(EagleEye)基于日志的分布式调用跟踪系统脱胎于GoogleDapper论文核心:调用链,每次请求都生成
一个全局唯一的ID(TraceId),
通过它将不同系统的“孤立的”
日志串在一起,重组成调用链,
使其价值达到1+1>2的效果10*《三国杀》铁索连环卡牌版权归游卡桌游(YokaGames)所有简介目前状况日均调用链超过600亿,来自500多个前端应用,500多个后端应用,还有上百个数据库、存储,调用日志超过千亿行覆盖了淘宝主要使用的网络通讯中间件前端请求接入:Tengine(nginx)/tbsession服务调用框架:HSF消息通讯:Notify数据库:TDDL分布式缓存:Tair分布式存储:TFS特定功能的客户端,如搜索、支付等其他中间件,如:HttpClient……11大纲鹰眼是什么鹰眼的使用场景鹰眼的实现12调用链跟踪13调用链跟踪排查前端某页面响应很慢或报错的原因查看这个页面的调用链,定位瓶颈点、故障点应用在日志中打印当前上下文的调用链ID,关联异常堆栈日志关联系统资源数据,如load、内存、JVM状况实时跟踪当前客户端的所有请求的调用链了解每个请求背后的应用间交互过程14调用路径分析15调用路径分析应用的关键路径应用被调用得最多的入口、服务是哪些突出关键:热点、耗时瓶颈、易故障点、变化点主要用于容量评估、性能优化验证调用路径是否符合预期衡量网络调用的均衡性调用在单元内的路由正确性实时分析前端入口的容量走势大促链路监控和高峰预警16调用去向分析依赖关系应用直接或间接依赖了哪些服务各个层次上的依赖的调用指标和错误指标找出调用链路上的不正常的、多余的依赖调用异常分析依赖会产生哪些异常异常时会造成什么影响把主流程的强依赖转化为弱依赖17调用来源分析18调用来源分析19调用来源分析20透明的分布式数据传输应用A应用B应用D应用E消息服务器应用F应用GHSFHSFHSF发消息投递消息投递消息get(“sellerId”)=8d6402…get(“sellerId”)=8d6402…put(“orderId”,22f9b7…)get(“sellerId”)=8d6402…get(“orderId”)=22f9b7…clear(“sellerId”)get(“sellerId”)=nulleagleeyex_sellerId21透明的分布式数据传输鹰眼自身需要传递调用上下文在调用链上透明传输业务数据子帐号业务、风控业务把前端网关才有的数据传到后端某个服务中项目环境隔离传递线下环境的项目标识,用于路由判断依赖检测系统在URL上设置一些调试指令22与业务日志结合将业务信息与链路结合交易的创建、支付相关数据卖家、小二的操作记录为业务提供日志“后处理”服务直接存储到HDFS,建立Hive表把每条日志做消息发布,供业务订阅解析日志,生成多维度的实时统计报表为日志的指定字段建索引,提供模糊搜索23小结调用链跟踪调用路径分析调用去向分析调用来源分析透明的分布式数据传输与业务日志结合24大纲鹰眼是什么鹰眼的使用场景鹰眼的实现25应用集群日志文件带鹰眼埋点
的中间件日志收集agent读取写入鹰眼Storm集群实时收取日志实时收取日志HBaseHDFSHadoop集群MapReduce实时日志计算结果鹰眼服务器读取原始日志
与分析结果实时
数据写入统
计数据数据输出与展现全量日志整体架构26整体实现介绍埋点和生成日志抓取和存储日志汇总和重组调用链分析和统计调用链27整体实现介绍埋点和生成日志抓取和存储日志汇总和重组调用链分析和统计调用链28埋点和生成日志如何埋点通过中间件创建调用上下文,生成埋点调用上下文放在本地ThreadLocal,对应用透明调用上下文随着中间件的网络调用在系统间传递“前端型”:生成TraceId,创建调用链,结束调用链“单向型”:仅客户端,生成日志(服务端未埋点)“双向型”:客户端+服务端,传输上下文,生成日志29埋点和生成日志前端应用后端应用1数据库请求服务调用后端应用2服务调用响应服务响应服务响应数据访问startTraceclientSendserverRecvserverSendclientRecvclientSendserverRecvclientSendclientRecv数据访问clientSendclientRecvserverSendclientRecvendTrace创建
上下文生成
日志图示30埋点和生成日志埋了些什么数据TraceId、RpcId、开始时间、调用类型、对端IP耗时:多个阶段的处理耗时传输量:请求大小/响应大小处理结果(ResultCode)与中间件相关的数据31埋点和生成日志调用上下文:TraceId关联一次请求相关的日志,需要保证全局唯一,在各个系统间传递是否需要业务语义?IP地址:用于识别前端应用和来源机器创建时间:在存储时用于分区顺序数:用于链路采样标志位:可选,用于调试和标记进程号:可选,单机多进程的应用使用32埋点和生成日志调用上下文:RpcId标识日志埋点顺序和嵌套关系,也在各个系统间传递调用关系同步/异步/一对多调用用什么方式实现RpcId适合表示上述关系?顺序编号:1、2、3…多级编号:0、0.1、0.2、0.2.1…33埋点和生成日志应用A应用B应用C应用D应用E消息服务器应用F应用G应用HDBTair搜索...3.1.2TOPAPI请求无线客户端请求Web网页请求34埋点和生成日志埋点遇到的问题异步调用业务使用异步线程处理逻辑时会丢失上下文异步IO:Send和Recv不在同一线程异步servlet:业务逻辑在不同线程中切换执行一对多的调用方式非前端请求触发的调用链35埋点和生成日志写日志面临的挑战尽可能减少对业务线程的影响,降低系统消耗每个网络请求至少1行日志,QPS越高日志产生越快解决方案:自己实现日志输出用异步线程写日志开关控制以及采样输出对长字符串做编码日志IOPS限制,输出缓存,按秒刷新日志文件按大小滚动,自动清理统一字符编码,统一时区36整体实现介绍埋点和生成日志抓取和存储日志汇总和重组调用链分析和统计调用链37抓取和存储日志日志的生成方式决定了需要实时抓取离线+实时相结合的方案存储调用链全量业务日志、线下日志:实时存HBase线上调用日志:全量存HDFS,按需存HBaseTradeOff:离线的代价“按需抓取”38抓取和存储日志HDFS存储方案存全量数据
10TB+顺序块存储多级索引压缩率1:10随机单链查询
200~500ms调用链记录块(压缩)调用链记录块(压缩)调用链记录块(压缩)…块索引0块索引n块索引1…SequenceFile01n按TraceId的哈希值定位…索引二
分查找块内顺序查找按TraceId的时间戳定位时间段目录39整体实现介绍埋点和生成日志抓取和存储日志汇总和重组调用链分析和统计调用链40汇总和重组调用链按TraceId汇总日志一条调用链的日志散落在调用经过的各个服务器上因此,这是链路日志分析必不可少的一步汇总方案基于HBase:用TraceId做rowkey,天然汇总基于HDFS:需要MapReduce做汇总汇总真的必不可少吗?41汇总和重组调用链按RpcId重组调用链重组的问题日志数据残缺埋点信息本身有错误解决办法冗余补全、利用父子关系推导使用“占位符”表示不完整的信息基于历史来修正错误数据42整体实现介绍埋点和生成日志抓取和存储日志汇总和重组调用链分析和统计调用链43分析和统计调用链对同一个入口的调用链做统计标准化入口URLURL中的不规范内容和可选内容,动态参数应用有多个域名,或自定义域名静态化URL中的RESTFUL变量http://shop123456./view_9876abc.htm解决方案:按应用、域名归类的正则表达式替换44分析和统计调用链统计链路上每次调用的上下文对DAG上的每个节点做深度优先遍历为链路上的每个节点进行编码+|A+|A|B+|A|B|E+|A|B|E|G+|A|B|F+|A|
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 人才培养留存计划承诺书4篇
- 环境治理技术提升承诺书4篇范文
- 校园网络安全防护措施指导书
- 食品安全风险量化评估与管理手册
- 牙周病预防的综合管理
- 销售业绩分析报告框架模板
- 绿色能源项目投资守信承诺书7篇范文
- 营销活动成功策划及执行模板
- 销售业绩分析报告模板业绩数据与市场趋势结合版
- 2026中小学生端午节安全教育主题班会课件
- 【游戏案例】建构故事:家乡的桥
- 生死疲劳读书分享
- 2024年多人承诺协议书模板
- 六宫对角线数独题目10已知数
- DB41-T 2744-2024 农村公路建设指南
- 空气动力学方程:RANS方程在飞机设计中的应用
- 奥体中心体育场工程施工组织设计
- 紫外线灯使用及强度监测方法
- 第2课-《生涯规划-筑梦未来》课件
- 毕业设计(论文)-落叶清扫机设计
- 1.《Linux网络操作系统》课程标准
评论
0/150
提交评论