2017双11技术揭秘—双十一海量数据下EagleEye的使命和挑战

摘要: 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会专注于架构的演进和智能化的推进,进一步提高问题定位的效率,更好的支撑起基于链路数据的一片生态。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/523071.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2017双11技术揭秘—TDDL/DRDS 的类 KV 查询优化实践

摘要: 性能优化是企业级应用永恒的话题,关系型数据库查询优化更是如此。在前台核心业务场景中,类 KeyValue 查询(以下简称类 KV 查询)是非常常见的,并且在应用总 SQL 流量占比很高,如果仅在SQL层面进行进一步优化会非常困难&#…

揭密|淘宝服务端千万级高并发架构的演进之路

戳蓝字“CSDN云计算”关注我们哦!作者 | huashiou来源 | https://segmentfault.com/a/11900000186261631、概述本文以淘宝作为例子,介绍从一百个并发到千万级并发情况下服务端的架构的演进过程,同时列举出每个演进阶段会遇到的相关技术&#…

VMware安装Centos7超详细过程(图文)

软件版本链接VM14后续补充CentOS7http://isoredirect.centos.org/centos/7/isos/x86_64/CentOS-7-x86_64-DVD-1804.iso参考链接https://blog.csdn.net/babyxue/article/details/80970526文章目录一、虚拟机准备① 打开VMwear选择新建虚拟机② 典型安装与自定义安装③ 虚拟机兼容…

2017双11技术揭秘—X-DB支撑双11进入分布式数据库时代

摘要: 今年双11是X-DB的第一次大考,本次双11X-DB服务于天猫/淘宝核心交易系统、核心物流系统、核心IM系统,经受了零点业务32.5万笔/秒峰值的性能考验,同时X-DB支撑起了新一代单元化架构. 作者:章颖强(江疑)…

ifix虚拟服务器,ifix的客户端和服务器

ifix的客户端和服务器 内容精选换一换介绍使用同一VPC内弹性云服务器ECS上的C# Redis客户端连接Redis实例的方法。更多的客户端的使用方法请参考Redis客户端。已成功申请Redis实例,且状态为“运行中”。已创建弹性云服务器,创建弹性云服务器的方法&#…

一张图看懂阿里云网络产品【四】NAT网关

摘要: NAT网关(NAT Gateway)是一款企业级的VPC公网网关,提供SNAT和DNAT功能,支持多IP,支持共享带宽,具备Tbps级别的集群转发能力和Region级别的高可用性。

Failure to find com.oracle:ojdbc6:jar:11.2.0.1.0

报错原因:oracle的ojdbc.jar是收费的,maven的中央仓库是没有的,需要下载到本地,然后打包进maven仓库 1.下载ojdbc6-11.2.0.1.0.jar包 http://central.maven.org/maven2/com/jslsolucoes/ojdbc6/11.2.0.1.0/ojdbc6-11.2.0.1.0.ja…

c++文件流读取一行_「软帝学院」Java挑战者专栏:IO流详解2

软帝学院笔记Day18IO流(字符流FileReader)1.字符流是什么字符流是可以直接读写字符的IO流字符流读取字符, 就要先读取到字节数据, 然后转为字符. 如果要写出字符, 需要把字符转为字节再写出.2.FileReaderFileReader类的read()方法可以按照字符大小读取FileReader fr new FileR…

“AI捡垃圾”上热搜了!46城垃圾分类将投200亿,你怎么看?

自动上海开始推行垃圾分类,上海人民就成为了广大网友的快乐源泉。据说有一位“机智”的程序员由于加班太忙,把垃圾寄快递到昆山去扔。快递员表示:天才操作!并拒绝了他,然后花半小时教他垃圾分类。在哈哈哈的同时&#…

解决“Failure to find com.oracle:ojdbc6:jar”,手动安装ojdbc的jar包到maven私仓

在使用mvn进行编译的时候,遇到如下错误: Could not resolve dependencies for project com.bairong.platform:auth:jar:3.0: Failure to find com.oracle:ojdbc6:jar:11.2.0.1.0 in http://maven.aliyun.com /nexus/content/groups/public/ was cached …

2017双11技术揭秘—阿里数据库进入全网秒级实时监控时代

摘要: 2017双11再次创下了32.5万笔/秒交易创建的纪录,在这个数字后面,更是每秒多达几千万次的数据库写入,如何大规模进行自动化操作、保证数据库的稳定性、快速发现问题是一个巨大的难题, 这也是数据库管控平台要完成的…

混合云发展之路:前景广阔,巨头混战

戳蓝字“CSDN云计算”关注我们哦!知名云管理服务商RightScale(目前已经被Flexera公司收购) 每年都会对企业使用云的情况进行调查,以此分析全球企业云的采用情况。RightScale 发布的2019年全球云计算市场调查显示,在众多云平台中,混…

2017双11技术揭秘—阿里数据库计算存储分离与离在线混布

摘要: 随着阿里集团电商、物流、大文娱等业务的蓬勃发展,数据库实例以及数据存储规模不断增长,在传统基于单机的运维以及管理模式下,遇到诸多如成本,调度效率等问题,因此,2017年首次对数据库实现…

unoconv 在线预览 doc,doxc,xls,xlsx,ppt,pptx 文件功能环境搭建

接上一篇: SpringBoot 在线预览 doc,doxc,xls,xlsx,ppt,pptx 文件 https://blog.csdn.net/weixin_40816738/article/details/102847228 文章目录服务器环境为linux1.切换到root用户:2.执行unoco…

2017双11技术揭秘—阿里巴巴数据库技术架构演进

摘要: 每年电商双11大促对阿里技术人都是一次大考,对阿里数据库团队更是如此。经过9年的发展,双11单日交易额从2009年的0.5亿一路攀升到2017年的1682亿,秒级交易创建峰值达到了32.5万笔/秒。支撑这一切业务指标的背后,…

SpringBoot 使用unoconv 在线预览 doc,doxc,xls,xlsx,ppt,pptx 文件

接上一篇:linux环境源码安装unoconv Linux环境_源码安装Unoconv实现文件在线预览doc,doxc,xls,xlsx,ppt,pptx 文件 https://gblfy.blog.csdn.net/article/details/103540694 接上一篇:linux环境…

解码2017双11:全球狂欢新记录背后的阿里云存储

摘要: 2017天猫双11再次刷新纪录,这背后是大数据的支撑和阿里云计算的能力的体现。手淘、天猫APP主站的所有图片和视频都存储在阿里云对象存储OSS之上,全球数以亿计的消费者,对这些商品的访问的流量和并发次数,比成交笔…

开发者,什么是你真正关心的问题?| AI ProCon 2019

2018 年,上千名开发者与上百名技术专家齐聚一堂,在 CSDN 2018 AI开发者大会上以“AI技术与应用”为核心,深度聚焦人工智能的技术创新与行业应用,真正做到了“只讲技术,拒绝空谈”。今年,在产业智能化的浪潮…

最大值_Leetcode2 | 滑动窗口最大值(Q239)

:)Sliding Window MaximumQ 239今天也是好心情Problem Description DifficultyYou are given an array of integers nums, there is a sliding window of size k which is moving from the very left of the array to the very right. You can only see the k numbers in the w…