一分钟理解APM,把流失的用户找回来

APM这个英文缩写,对网游玩家代表着手速,对血拼族代表着全天候购物中心,对网站站长代表了三大开源软件Apache+PHP+MySQL。而对于所有提供互联网服务的企业和创业者来说,APM是Application Performance Management,翻译成中文是应用性能管理,是全面提升用户体验,解决居高不下的用户流失率的一大法宝。

一个栗子搞懂什么是APM

当我们的身体出现问题时,只有CT才能在几分钟内给患者完成从头到脚的全身扫描,从而准确发现病灶,为后续的治疗提供准确的依据。

今天的互联网就像人体一样强大而复杂,一款看似简单的网络应用,需要服务器、存储、系统、应用环境、网络和用户电脑/手机设备的一系列支持,才能顺畅运行。当应用发生故障时,比如用户无法登录、页面打不开、搜索没结果,谁来帮助我们快速而准确的定位应用的问题?

APM就像是部署在互联网上的CT扫描设备,通过SDK采集用户端数据,通过监控点采集网络数据,通过探针采集服务器上各种软硬件环境数据,然后利用大数据技术把采集到的数据进行快速诊断分析,发现影响应用性能的“病灶”,并给出诊断建议。

一种声(Tou)音(Su)告诉你为什么需要APM

在产品运营的整个生命周期里,我们的反馈系统收集到的用户声音,80%说的不是应用无法打开的可用性问题,而是在投诉应用慢、点击没反应之类性能问题。

“慢”,就像“癌细胞”,在悄悄的吞噬应用的生命力,偷走用户。

然而应用的“慢”同样如“癌细胞”,最难发现和诊断,当你感知到它,常常为时已晚。用户的电脑、手机的运行环境、内存大小、系统甚至程序间的兼容问题可能让应用“慢”下来;国内复杂的网络环境和参差不齐的上网方式会拖累应用查询的响应速度;至于服务器、数据库更是运维人员照顾的重点。此外还有代码,一条有问题的语句,可能会损耗掉应用数百毫秒响应时间。

一个用户行为的事件流,比如登录,从用户操作发出命令,经过网络传输,到服务器和数据库返回数据,再通过网络回传到应用端,哪一个环节的延误,给用户的感知都是一个字“慢”。当响应时间超过5秒,50%移动应用用户会放弃操作,30%用户会卸载你的应用,33%失望的用户会转向竞争对手的应用。

要解决“慢”问题,必须有一种“快”手段,这就是APM。

通过APM,企业能够从被动响应用户投诉,变为主动发现应用在真实用户场景下的各种延迟问题,根据APM的分析报表,运维、开发、运营协同处理,把应用的“癌变”消灭于萌芽,让流畅的用户体验把用户留住。

时间: 2024-11-15 11:59:43

一分钟理解APM,把流失的用户找回来的相关文章

Python——五分钟理解元类(metaclasses)

“元类的魔幻变化比 99% 的用户所担心的更多,当你搞不懂是否真的需要用它的时候,就是不需要.” —Tim Peters 本文源于在 PyCon UK 2008 上的一个快速演讲. 元类被称为 Python 中的“深奥的巫术”.尽管你需要用到它的地方极少(除非你基于zope 编程),可事实上它的基础理论其实令人惊讶地易懂. 一切皆对象 一切皆对象 一切都有类型 “class”和“type”之间本质上并无不同 类也是对象 它们的类型是 type 以前,术语 type 用于内置类型,而术语 clas

5分钟理解一致性哈希算法

5分钟理解一致性哈希算法 每天给你诚意满满的干货 来自:cywosp 链接:https://blog.csdn.net/cywosp/article/details/23397179 一致性哈希算法在1997年由麻省理工学院提出的一种分布式哈希(DHT)实现算法,设计目标是为了解决因特网中的热点(Hot spot)问题,初衷和CARP十分类似.一致性哈希修正了CARP使用的简 单哈希算法带来的问题,使得分布式哈希(DHT)可以在P2P环境中真正得到应用. 一致性hash算法提出了在动态变化的Ca

十分钟理解JavaScript引擎的执行机制

关注专栏写文章 十分钟理解JavaScript引擎的执行机制 方伟景 千锋前端开发推动市场提升的学习研究者. 4 人赞同了该文章 首先,请牢记2点: JS是单线程语言 JS的Event Loop是JS的执行机制.深入了解JS的执行,就等于深入了解JS里的event loop 1.灵魂三问:JS为什么是单线程的?为什么需要异步?单线程又是如何实现异步的呢? 技术的出现,都跟现实世界里的应用场景密切相关的.同样的,我们就结合现实场景,来回答这三个问题. (1) JS为什么是单线程的? JS最初被设计

10分钟理解JS引擎的执行机制

10分钟理解JS引擎的执行机制 javascript 阅读约 7 分钟 深入理解JS引擎的执行机制 1.灵魂三问 : JS为什么是单线程的? 为什么需要异步? 单线程又是如何实现异步的呢? 2.JS中的event loop(1) 3.JS中的event loop(2) 4.说说setTimeout 首先,请牢记2点: (1) JS是单线程语言 (2) JS的Event Loop是JS的执行机制.深入了解JS的执行,就等于深入了解JS里的event loop 1.灵魂三问 : JS为什么是单线程的

理解Windows内核模式与用户模式

 1.基础 运行 Windows 的计算机中的处理器有两个不同模式:"用户模式"和"内核模式".根据处理器上运行的代码的类型,处理器在两个模式之间切换.应用程序在用户模式下运行,核心操作系统组件在内核模式下运行.多个驱动程序在内核模式下运行,但某些驱动程序在用户模式下运行. 当启动用户模式的应用程序时,Windows 会为该应用程序创建"进程".进程为应用程序提供专用的"虚拟地址空间"和专用的"句柄表格"

用三分钟理解c语言sizeof

一.概念 sizeof是单目操作符,同++等操作符一样.作用是以字节形式输出操作对象所在储存大小. 二.用法 a.操作数据类型 如sizeof(int),输出int类型在内存中所占的字节长度,具体取决于具体环境,本机输出为4. b.操作变量 如 char a[6]; printf("%d\n" ,sizeof(a)),因为已经定义了char数组长度,所以输出值为6. 三.常见问题 有以下几个例子,需要引起注意: 例子1: int testSizeOf(char x[]) { retur

(转)每天进步一点点——五分钟理解一致性哈希算法(consistent hashing)

背景:在redis集群中,有关于一致性哈希的使用. 一致性哈希:桶大小0~(2^32)-1 哈希指标:平衡性.单调性.分散性.负载性 为了提高平衡性,引入“虚拟节点” 每天进步一点点——五分钟理解一致性哈希算法(consistent hashing) 原文地址:https://www.cnblogs.com/lixuwu/p/10680531.html

10分钟理解BFC原理

10 分钟理解 BFC 原理 一.常见定位方案 在讲 BFC 之前,我们先来了解一下常见的定位方案,定位方案是控制元素的布局,有三种常见方案: 普通流 (normal flow) 在普通流中,元素按照其在 HTML 中的先后位置至上而下布局,在这个过程中,行内元素水平排列,直到当行被占满然后换行,块级元素则会被渲染为完整的一个新行,除非另外指定,否则所有元素默认都是普通流定位,也可以说,普通流中元素的位置由该元素在 HTML 文档中的位置决定. 浮动 (float) 在浮动布局中,元素首先按照普

Linux中root用户找不到JAVA_HOME

Linux中root用户找不到JAVA_HOME 在Ubuntu环境中安装好Java环境后设置环境变量:在/etc/profile中设置好了JAVA_HOME变量并引入到PATH中,用于Ubuntu默认是不以root用户登录的,这时echo $PATH可以看到JAVA_HOME已经被设置好了,java命令也可以执行.接下来su root,再输入java命令提示找不到java命令,$PATH中也找不到JAVA_HOME这个路径了.查了很久的资料也没有找到原因,后来偶然切换用户的时候用了su - r