详解APM数据采样与端到端

 

 

据云智慧统计,APM从客户端采集的性能数据可能占到业务数据的50%,而企业要做到从Request到Response整个链路中涉及到的所有数据的准确采集,并进行有效串接,进而实现真正的端到端,绝非一件易事。

那么云智慧是如何进行APM数据采样的,又是如何在“端到端”应用性能管理中满足用户对业务数据的高性能分析的呢?在2016年9月全球运维大会的APM专场上,云智慧首席架构师高驰涛先生为你揭晓APM背后的大数据奥秘。

高驰涛(Neeke Gao),云智慧首席架构师,PHP/PECL开发组成员,同时也是PECL/SeasLog,PECL/JsonNet,GoCrab等多项开源软件作者。10年+研发管理经验,早期从事大规模企业信息化架构研发,09年涉足互联网数字营销领域并深入研究架构与性能优化。2014 年加入云智慧,致力于 APM 产品的架构研发,崇尚敏捷,高效,GettingReal。

以下是高驰涛的精彩分享:

今天是APM专场,相信大家对APM都有一定了解,我就从APM的数据采样与端到端的几个层面进行分享,这也是云智慧近几年在服务和解决客户需求过程中的实践结果。

APM和大数据

 

详解APM数据采样与端到端

在APM使用过程中有一个非常明显的特征,就是可采集的数据量非常大,大到不可想象,看看上面这个机房,谁能准确说出里面每天有多少数据流转,而这只是几台简单的机柜。我们对客户的数据做过统计,在互联网上,APM从客户端采集回来的数据能够占到企业业务数据的50%以上,这就意味着如果采集数据非常详细,很可能会比原始业务数据量还要庞大。假设业务数据带宽是2T,为了支撑APM又要上2T的带宽,支撑业务的服务器可能要三百台,现在要最少再额外增加150台支撑APM,这在数据处理方面是个很大的挑战,对于大多数企业来说,APM并不是企业的核心业务,但是用了非常多的计算与存储资源。这是数据未作采样时的现状。

什么是APM(Application Performance Management),从字面上看就是“应用+性能+管理”,前面两位嘉宾聊的都是APM的范畴,他们聊的核心就是应用性能,注意不是业务而是性能。APM后面还有一个词是管理,就是从业务的角度理解这个性能数据,比如说一个崩溃或者说一个卡顿会影响多少用户,影响的用户会给企业造成多少损失,这就是APM对业务价值方面的体现,也是我们正在努力和实践的方向。

我们为什么要用APM,今天有腾讯的嘉宾,举个在手机上玩CF游戏的例子,一个玩家在玩CF,最近常常因为应用运行卡顿被人打死,即便买了好枪、好装备还是打不过别人,用户必然会投诉,投诉之后客服会根据系统的知识库问一大堆有的没的问题,然后承诺玩家马上安排运维检查系统,最后往往不了了之。在企业业务人员在服务用户的过程中往往缺少一个工具,或者说一个平台来及时、准确的发现用户问题,甚至定位到具体用户,具体SQL和具体关键代码。

APM有两大好处,一个是可以提升工作效率,减少和用户无效沟通的时间;另一个就是及时发现和准确定位问题,因为运行在互联网上的业务系统,往往是用户最先感知到系统故障,如果能在接到用户反馈的第一时间及时发现和解决问题,就会大大降低故障带来的业务损失。举个简单的例子,云智慧有个客户的生产系统故障导致停服两个小时,造成了好几千万的损失,后台运维的解决办法非常简单,把服务切了一下,重新启了一套集群,把业务切过去,现场保留下来了,之后用了一个星期的时间发现其实是内存泄露。他们用一个星期的时间找到了问题,后来在云智慧透视宝的帮助下,直接在测试系统上重现了这个问题,并且在10分钟内准确地定位到了内存泄露的位置,使用APM可以有效地缩短问题的发现时间,并有效解决,避免再次发生类似问题。

为什么说APM是大数据呢?我们知道大数据有着非常明确的4V特征: 

一个是数据量大(Volume),我们的一个典型用户,每天在APM系统中产生的数据存储量超过了500G;

一个是种类繁多(Variety),例如目前我们已知的移动端APM指标超过三百多个,维度更多;

一个是高速(Velocity),数据产生的速度和消费的速度都是非常恐怖的;

一个是数据价值(Value),单条数据价低,需要综合大量数据进行多纬度综合分析,以得出数据现状和趋势;

详解APM数据采样与端到端