本文主要从如下几个列举对APM的认识:数据库
-什么是APM工具浏览器
-为何要用APM工具,APM工具的价值在哪里;服务器
-什么样的APM工具适合于传统金融业;网络
-如何用好APM工具;架构
-精准告警并发
-深刻分析运维
-可视化展现工具
-如何与传统监控融合性能
-APM工具与大数据之间的探讨学习
注:文中APM的一些解释来自互联网运维大牛的干货,比较零散,不一一列举出处。
一、什么是APM工具,它的分类有哪些
APM,应用性能管理,经过对关键业务系统进行监测、告警与优化,不断改善业务可靠性与稳定性,为客户提供良好的服务,提高核心竞争力。
最先的APM主要是网络为中心,对基础设备的性能数据进行收集与加工,并提供给企业客户,至关于提供一种过后数据的简单处理与告警监控功能。随着APM市场的发展,目前的APM工具在性能监控的基础上有了进化,更加关注于运维数据分析,好比客户端到端的体验状况怎么样?性能瓶颈在哪里?并且当前的APM工具以数据分析为中间实现了更好的可视化,更快更精准预警,更强的问题关联定位等特性。
二、为何要用APM工具,APM工具的价值在哪里
咱们运维人员常常会遇到这样一些场景:
-客户投诉系统慢了或没法访问;
-看资源、查日志、查数据库;
-找开发、找客服、找业务、找客户问状况;
-偶发性?没法定位或定位不许?应急方案?重启试试?
……
上述场景在运维当中很广泛,遇到上面的困难后每每会完善监控提升故障告警及时率,经过额外代码开发量增长各类各样的日志格式,完善手册、培训、应急演练等等方式去提升故障应急处理能力。
APM的出现能够改善上面提到的繁琐的运维工做,提升应用运行质量:
于IT管理层:用户体验可量化,并创建以用户体验的考核体系,并与同业的性能体验比较能够发现自身差距并进行优化,提高客户满意度;
于IT运维人员:实现了以应用运行状况分析为核心的运维,提升运维价值,对运维数据可视化,更快发现、更准肯定位、更精准的作出应急决策;
于业务:掌握用户体验关键业务的关系,提升业务决策。
三、什么样的APM工具适合于传统金融业
根据应用性能监控的目标不一样,APM工具主要能够分为2大类,一类是客户端、一类是服务端:
如下是听云技术副总裁吴静涛对上述几类APM工做的定义:
1)客户端类
主动模拟拨测:主动式监控,客户端监控。主要经过覆盖全面的监测网络,部署自动化的监测工具。
页面插入代码:被动式、客户端监控。主要经过在客户端浏览器插入JavaScript代码以采集最终用户的性能体验,W3C推出了Web性能API标准,如今已经能够作大很是细粒度的监控。
客户端插件采集:由于移动端应用有多种方式,原生应用、Hybrid App以及Web App,所以监控的方式也多样化,有经过手机浏览器自动拨测、嵌入SDK、HTML5页面内插件、JSBridge等方式。
2)服务端类
服务端旁路:部署定位后经过SPAN,TAP旁路应用访问流量进行Sniffer,解析网络报文后再进行各种TCP协议分析和性能采集(NPM)。它的优势是非侵入式,对生产影响最小,缺点是难以适配多种协议,没法定位到问题代码等。
应用服务器端代理:经过在应用代码中埋点来实现性能监控BCI(ByteCode Instrumentation)技术。优势是可实现代码级的监控,缺点是它是侵入式的,对性能有轻微影响。
对于传统的金融企业,在系统性能分析与监控上咱们常常会面临如下困难:
-规模愈来愈大,运维成本愈来愈大:咱们部署了大量应用系统,这些应用系统的架构每每是100个系统就有100个架构,涉及的开发团队各异,咱们但愿有一些更方便的方式进行系统性能分析与监控,好比不须要应用改造、有简单的可视化配置、不影响现有系统的性能等;
-咱们有监控工具实现应用可用性的监控,但对于应用性能咱们运维能力很弱:咱们部署了大量从基础设施、服务器硬件、系统服务、应用服务可用性的监控,可是对于应用在数据中心内运行获得底快不快并不知情,更不用说客户体验方面的性能问题,咱们但愿在应用性能监控方面能够更快发现、更接近客户体验;
-运维的量在增长、人员在减小,咱们须要一个更加自动化的性能分析能力:以应用性能告警为例,它应该包括从数据采集、分析、告警、辅助定位、应急等能力,这就须要咱们在应用性能分析过程当中须要有告警动态基限自动学习能力、自动告警、高度可视化、渠道节点关联的能力,以此来提升运维人员的性能分析能力;
针对上述的问题,再看看上面提到的5个APM工具的比较:
-主动模拟拨测:适合于网络问题的带来的问题,是采用样本监控分析的方式,更适合互联网应用,是主动监控方式。
-页面插入代码:侵入式,须要在浏览器上嵌入代码,是被动监控方式。
-客户端插件采集:侵入式(须要开发部门配合),需在页面代码中插入插件,能够实现代码级的监控,效果依赖开发部门的支持。
-应用服务器端代理:侵入式,须要开发部门配合,能够实现代码级的监控,效果依赖开发部门的支持。
-服务端旁路:非侵入式,运维部门即可以推广使用,能得到服务及应用、交易级别的监控;
综上,基于传统金融企业现存系统多,IT运维开发能力相对弱的现状,服务端旁路的APM工具更适合优先引入解决企业应用系统的性能问题。
下面的议题主要从服务端旁路APM工具进行分析.
四、如何用好APM工具
在IT企业内部,咱们会发现有一些好的工具由于没有用好而被废弃,有些多是由于工具自己不知足预期需求,有些多是由于人员变更;有些则可能推广使用慢致使技术过期;对于APM工具也一样会有这样的问题,那么应该如何将APM工具使用好呢?
在讲如何使用好APM工具前,我先简单讲讲从IT运维向IT运营分析的转型,即经过监控的分析,更快、更准确的发现问题;经过应用性能分析提早发现潜在问题,并提供可视化的分析工具下降故障定位时间、提高用户体验;经过大数据平台提供更深刻的运维、业务数据分析,指导运维、业务的决策。基于IT运营分析的定位,APM工具的使用目标能够考虑如下:
-整合一个可视化的应用性能面板,方便运维技术人员、运维管理人员、应用运营人员在任意时间看到应用性能状况,包括:应用服务是否可用;应用交易量、成功率等维度指标是否正常;应用是否变慢等等;同时,应用性能面板还能监控到服务节点到节点之间的运行性能。
-以应用系统为节点,将应用系统的运行状况是否健康经过综合的分析抽象出来,而不须要运维人员经过复杂的方式整合分析某个应用系统性能是否正常;
-对关键的渠道类应用系统的性能问题进行关联配置,提供更快的告警,并提供问题定位的辅助手段,提升故障应急解决效率,实时的知道甚至预测什么时候可能出现问题,在用户尚未察觉前解决问题。若是作得更好的话,APM还能提供故障自愈的功能;
-提供多维、自定义的应用系统运行性能报表与实时交易级的数据监控,提供给不一样层面的人员;
-为大数据分析提供数据,不只从运维角度看数据,还要从业务角度看数据,经过APM工具将业务数据、性能信息进行整合,提供大数据平台分析,进一步挖掘指导业务的数据;
对于上述的目标,建议采用如下方式用好工具:
1)精准告警
(1)应用可用性:以应用服务为节点,判断应用服务是否崩溃,实现了交易服务级的监控告警;
(2)应用间交易错误:对业务接口的致命异常报错信息,以及异常总体信息进行汇总分析并进行告警;
(3)网络请求响应时间:至少实现数据中心内部服务节点间的网络请求响应耗时分析,对出现短板的节点性能问题进行告警;
(4)自动故障定位:经过对交易流的数据进行采集并关联,自动判断触发告警的根源节点,并告警问题缘由;
(5)利用好动态告警阀值:根据历史数据快速学习告警阀值,自动调整告警阀值在不一样时间、不一样接收者的设置;
(6)复合告警指标:设置更为符合业务特色的告警指标;
2)深刻分析
(1)一笔业务从开始到结束将通过多个节点,好比一笔秒杀业务缓慢,多是秒杀系统应用、数据库、中间件的性能问题,也多是关联系统的性能问题,也多是资源、带宽、运营商的问题。用好APM,就要将重要的渠道系统进行完整的配置,实现端到端交易追踪,反映每一笔业务在各自应用服务节点中实际通过的路径,各路径所消耗时间、处理结果,运维人员能够按需找到交易的处理状况进而判断交易问题出如今什么地方;
(2)完成重要交易的配置整合后,须要结合分析策略,以及前面提到的精准告警结合起来,实现自动告警、问题定位的分析;
3)可视化展现
(1)工具的功能再强大,若是难上手的话将很容易被抛弃,因此须要针对不一样的人员提供多维度的可视化信息展现,并溶合在平常运维工做过程当中;
(2)可视化的信息展现,包括报警信息的查看与处理、实时交易检索与总体分析的报告、以及工具的后台简易的配置功能。
五、如何与传统监控融合
APM不是万能的。
传统金融企业内部确定会有不少关于监控的工具,这些工具经过必定时间的积累,为企业各类应用系统定制了监控指标及自动化监控解决方案,构成了企业IT运行状况最重要的一面镜子。
而APM工具每每是采用一种通用的方案进行开发,它更适用于一些监控、分析方案比较通用的运维场景,同时传统监控工具在服务器、硬件、系统软件等方面的数据采集也更优于APM工具。
因此APM工具是现有企业里监控系统的一个补充,补充监控系统在应用业务级、客户体验、故障定位、性能运行状况等方面的监控。另外,APM工具的成本也推荐主要用于重要的渠道类应用系统。
六、与大数据之间的探讨
服务端旁路的APM工具中,每每能够获取如下信息:
-交易报文类的信息:返回码、交易码、操做码、成功率、渠道标识、交易响应率、交易笔数、响应时间、流水号、金融交易里的金额、帐户等关键数据
-网络通信信息:丢包、TCP重传、带宽、链接成功率
-系统软件信息:数据库、中间件使用响应、并发、链接数状况
从上述获取的数据来看,APM己经初步具有了向大数据提供数据来源的基础,APM采集的这类数据相比应用日志的数据有如下优点:
-采集数据的同时不影响应用系统性能
-采集的数据格式更为统一规范
-采集的数据更快
这些数据能够梳理应用架构、服务访问关系、应用交易指标变化、交易追踪等数据分析,将有助于IT运维向IT运营分析转型。
但若是要让APM工具为大数据提供更多业务级的数据,以此为业务分析支撑、风险控制等提供帮助,还须要APM工具更进一步,好比为应用系统提供一些简易的服务,让应用系统更为简易的提供交易级的数据。