一、APP故障小故事
在一个休息日的周六,你和朋友在公司附近逛街,突然,老板来了一通电话:
-
老板:小王,我们 APP 购物详情页面,怎么突然访问不了,一直在那里加载,出了什么 bug,赶紧看看?
-
小王:好的,老板,你等等,我马上回来看看是咋回事。
丢下朋友,一路小跑,火花带闪电,奔回办公室,开机找 bug。
修好 bug 后,就应该思考一下,老板是咋发现这种情况?为什么他能先于我发现呢?有什么好的手段处理这种情况,我能最先发现网站访问异常?然后抓紧处理。
这时,你可能想到了对网站进行监控,化被动为主动,主动去获取 APP 异常信息。不错,这是一个很好的方法。
二、为什么需要监控
从上面的小故事可以得到一些启发,比如 APP 发生不能访问的异常情况时,相关人员能够快速感知到异常情况的发生,先于用户得到异常情况的信息,能让相关人员及时进行应急处理,减少损失。而不是等到多数用户来报告异常情况才去处理,这时损失就变大了。
监控系统不仅可以监控上面提到的应用程序页面访问异常,还可以监控其他页面访问流量,API 调用情况,响应时间,请求频率,错误率等等,这些都关乎业务整体运行情况。
对应用程序本身也可以进行监控,比如 APM(应用程序性能监控)监控,这样遇到应用程序故障时,可以快速定位问题、处理问题。
还有当运行应用程序服务器的 CPU、内存持续走高,磁盘存储空间所剩不多等等各种异常情况,都需要监控来及时发现,并报给运维人员进行处理。
上面不管是业务访问异常,还是服务器资源运行异常,还是 API 调用异常,程序出 bug 等各种异常情况,都需要及时发现并处理,目的是减少业务损失。
可以通过监控系统来及时发现异常情况,并通过系统记录与异常相关联的信息,还原异常出现的现场环境,从而协助运维或研发人员快速定位问题,并及时处理异常情况。
三、监控作用总结
为什么需要监控,除了上面说的作用外,下面对监控的作用做一些总结。(我理解的最大作用是:化被动为主动)
- 近实时了解业务运行的健康状况
- 提前获知业务异常情况信息并告警通知
- 帮助定位各种异常、bug等故障
- 为排障提供详细信息
- 业务运营信息的统计和监控
- 监控系统资源使用情况,保障系统稳定运行
- 对异常情况发出告警通知,及时进行处理
四、监控系统流程
监控系统一般流程如下图:

-
数据采集:
通过采集工具收集相关监控指标的数据,比如采集操作系统指标, CPU 使用率、内存使用率、TCP 连接数等等。常用的采集数据的方式有代理和埋点 2 种方式。
- 数据采集的软件工具,有 Filebeat,Fluentd,Fluent Bit,LogStash,Promtai,Vector,Mtail,Flume 等等。
-
数据处理:
又可以叫数据计算处理,对采集到的原始数据进行各种纬度的计算处理,得到我们想要的一些监控指标数据。比如对于一些业务指标的计算,今天新增用户的数、7 天新增用户数、7 天某页面的 UV 等等数据指标。
- 处理数据的工具有哪些?一般需要自己开发程序来进行数据处理,简单的指标计算可以通过 SQL 来进行统计。数据量比较大统计实时性高,可以使用 storm,

最低0.47元/天 解锁文章
668

被折叠的 条评论
为什么被折叠?



