代做网站排名,天元建设集团有限公司代码,如何设计app,如何建立网站会员系统摘要#xff1a; EagleEye作为阿里集团老牌的链路跟踪系统#xff0c;其自身业务虽不在交易链路上#xff0c;但却监控着全集团的链路状态#xff0c;特别是在中间件的远程调用上#xff0c;覆盖了集团绝大部分的场景#xff0c;在问题排查和定位上发挥着巨大的作用…摘要 EagleEye作为阿里集团老牌的链路跟踪系统其自身业务虽不在交易链路上但却监控着全集团的链路状态特别是在中间件的远程调用上覆盖了集团绝大部分的场景在问题排查和定位上发挥着巨大的作用保障了各个系统的稳定性为整个技术团队打赢这场战役保驾护航。
作者王华锋水彧
背景 双十一一直是阿里巴巴集团每年要打的一场大战役。要打赢这场战役技术上不仅仅是几个应用、几个系统的事也不是多少个开发多少个测试就能完成的事而是需要各大系统协同作战、每个应用各司其职、技术人员通力合作才能取得最终的胜利。
EagleEye作为阿里集团老牌的链路跟踪系统其自身业务虽不在交易链路上但却监控着全集团的链路状态特别是在中间件的远程调用上覆盖了集团绝大部分的场景在问题排查和定位上发挥着巨大的作用保障了各个系统的稳定性为整个技术团队打赢这场战役保驾护航。图1 EagleEye系统整体情况
近两年集团业务和规模始终保持着高速的增长纵深上交易量屡攀新高双十一零点的交易峰值也再一次刷新了历史横向上集团涉及的行业和领域也不断的拓展各行各业在不断加入阿里高德、优酷、友盟及大麦等等共同前进。
面对数据规模持续增加如何应对在业务高速发展的背景下系统采集的数据量级的持续增长如何在越来越大的数据规模面前保障EagleEye自身业务的稳定成为EagleEye今年双十一面临的巨大挑战。图2 EagleEye支持的业务情况
全链路压测一直是阿里巴巴集团保障双十一的大杀器之一通过在线上环境全真模拟双十一当天的流量来检验各个应用系统的负载能力。EagleEye在全链路压测中承担了重要的责任透传压测标记实现流量的区分压测数据的收集与展现用以帮助业务方的开发同学发现及定位系统的问题。所以保障全链路压测也是EagleEye的重要使命之一。 今年的EagleEye 无论是常态、全链路压测或者是双十一当天EagleEye面临的主要问题是如何保障自身系统在海量数据冲击下的稳定性以及如何更快的展现各个系统的状态及更好的帮助开发同学发现及定位问题。今年EagleEye通过了一系列改造升级提高了系统的稳定性实现了更好更快的辅助业务方定位及排查问题。图3 系统架构图
计算能力下沉 早期的EagleEye在链路跟踪以及数据统计都是基于明细日志完成实时采集全量的明细日志并在流计算中做聚合随着业务量的增长日志的数据量也在急剧上升计算量也随之线性增长资源消耗较高。而且在全链路压测或者大促期间日志量会有明显的峰值极有可能造成计算集群系统过载或者数据延迟甚至有可能导致数据的丢失。
为解决这类问题最初的做法是采样通过采样降低收集的日志量从而稳定计算集群的负载及水位保障EagleEye自身业务的稳定性尽量减少业务峰值对我们的影响。但是带来的问题也是显而易见的统计数据在计算时需要考虑采样率估算出真实的数据在采集数据量较小且采样率较高的场景下导致聚合后的数据不准确无法展现业务真实的状态从而也就失去了其价值。
为彻底解决业务峰值对EagleEye计算集群的冲击将部分实时计算逻辑下沉到业务方的机器中使得业务量和所需采集的日志量解耦保证计算集群的稳定性。具体实现是在业务方的机器上先将数据按照指定维度做聚合一般是以时间维度计算集群采集该统计数据后再次聚合极大的稳定了计算集群的负载。图4 计算能力下沉
计算能力下沉也可以理解成将计算分布式化消耗了业务方极小的一部分资源保证了EagleEye集群的稳定性。而且集群的计算量不再随着业务量的增长而增长只随应用规模应用数量、机器数量和统计维度的增长而增长不会再出现由于业务量的瞬间峰值导致计算机群的负载过高的问题最终使得EagleEye在全链路压测和大促期间都能保持稳定水位并且产出精准的数据。
场景化链路 EagleEye一直专注于中间件层面的调用而阿里巴巴的业务量庞大系统也比较复杂所以各部分的功能划分比较清晰中间件层面的一些数据比较难与业务数据相关联对于链路跟踪、问题定位及针对指定业务场景的容量规划等都有一些难度。
今年EagleEye推出场景化链路的功能开放了添加业务场景标的能力类似于压测流量打压测标对指定的业务打上对应的业务场景标签并关联该标签下所有的中间件调用包括服务、缓存、数据库和消息等一是可以帮助业务方开发同学更好地区分某个RPC流量中的业务语义二是可以清晰的梳理出某个业务场景标下对应的RPC流量对分析一些关键指标如缓存命中率数据库RT等有较大的帮助。图5 流量场景标
基于此数据也可以更好的复盘全链路压测数据。在压测之前也可以在常态下对关键业务打上指定的标签压测后通过各业务场景的流量得出对应的性能基线更好的定位核心链路中的问题及性能拼劲提高压测的效率和价值。 精细化监控 EagleEye的链路数据对于问题的发现和定位有着至关重要的作用更加丰富的数据形式和展现对提高发现的效率有明显的提升。
在整个双十一备战过程中遇到并解决了很多疑难杂症。其中单机问题占了很大的比例。在分布式系统中单机问题是比较常见的一类问题 由于此类问题往往与业务代码不直接相关与容器或者机器有一定的关联性且出现的概率较小有一定的随机性导致该问题往往比较难排查。实际业务的表现可能是RT的抖动也可能是小概率的错误等等。
EagleEye的调用链虽然可以很快定位此类问题但是调用链是站在单次请求的视角上在定位到某个IP之后很可能还需要再分析更多的数据才能做决策针对此类的问题EagleEye提供了错误TopN分布以及系统热点图等功能帮助业务方开发同学快速定位问题。针对单机故障往往对于整体的指标影响不大通过应用级别的监控数据比较难定位EagleEye在流计算中统计了应用各个机器的错误情况汇总并排序出Top10的机器一旦出现单机故障可以很明显的定位到具体的IP并且根据该IP对应的错误数量可以很快做出决策缩短了开发同学排查问题的时间。系统热点图在压测和大促期间对系统健康度的表现非常清晰一是可以清晰看到是否存在离群点的机器二是可以验证流量的去向是否正确。图6 系统热点图
更丰富的生态 在阿里巴巴EagleEye是一款问题排查的利器一直服务于业务方的同学帮助其快速发现并定位问题降低故障的持续时间提升开发及运维效率。其实EagleEye底层还蕴含着一份海量的数据在近一年中我们不断地利用及挖掘这份数据的意义希望发挥其更大的价值同时也希望基于这些数据建立一套生态体系帮助用户更好发展业务期间也孕育出很多有价值的产品为集团的技术发展打下了基础。
天秤项目天秤基于EagleEye的场景数据及其中间件、系统指标等监控数据结合其他多款监控产品构建一个系统稳定性解决方案意在解决问题快速发现和精准定位、大促常态化、压测常态化等问题。
尖兵计划 – 更轻量化的全链路压测尖兵计划基于EagleEye的中间件、系统指标及压测数据实现常态化全链路压测和问题发现是保障双十一及全链路压测顺利的大杀器之一相比去年八次全链路压测今年环境加倍复杂但是只需要三次全链路压测就完成目标为集团节省上千个人力大幅提升交付上线质量和大促效率。
精准回归依托EagleEye调用链采集与计算的能力实现了测试用例精准推荐的效果并在部分应用的精准测试中节约了50%~70%的测试时间。精准测试通过EagleEye采集数据回流的方案的输出在大规模应用上千万链路做到了测试用例与应用代码链路的准实时生成。
天图项目天图依赖了部分EagleEye的链路数据为用户提供面向复杂业务链路、高度分布式架构下的Application Performance Management (APM)方案以全面、实时、可视化、智能的方式让你快速了解应用和业务链路的全貌。
结语 今年的双十一是一次完美的双十一可以说是技术团队的大获全胜EagleEye在这次大考中也交出了一份近乎完美的答卷无论是在全链路压测中还是双十一当天系统的稳定性和数据的实时性都达到了预期为业务方的提供了强有力的支持提高了问题排查的效率。
但是未来的路还很长智能化的发展脚步越来越快业务方对EagleEye的数据质量的要求也越来越高今后EagleEye会专注于架构的演进和智能化的推进进一步提高问题定位的效率更好的支撑起基于链路数据的一片生态。