微服务架构学习与思考(14):监控和可观测性详细介绍

一、APP故障小故事

在一个休息日的周六,你和朋友在公司附近逛街,突然,老板来了一通电话:

  • 老板:小王,我们 APP 购物详情页面,怎么突然访问不了,一直在那里加载,出了什么 bug,赶紧看看?

  • 小王:好的,老板,你等等,我马上回来看看是咋回事。

丢下朋友,一路小跑,火花带闪电,奔回办公室,开机找 bug。

修好 bug 后,就应该思考一下,老板是咋发现这种情况?为什么他能先于我发现呢?有什么好的手段处理这种情况,我能最先发现网站访问异常?然后抓紧处理。

这时,你可能想到了对网站进行监控,化被动为主动,主动去获取 APP 异常信息。不错,这是一个很好的方法。

二、为什么需要监控

从上面的小故事可以得到一些启发,比如 APP 发生不能访问的异常情况时,相关人员能够快速感知到异常情况的发生,先于用户得到异常情况的信息,能让相关人员及时进行应急处理,减少损失。而不是等到多数用户来报告异常情况才去处理,这时损失就变大了。

监控系统不仅可以监控上面提到的应用程序页面访问异常,还可以监控其他页面访问流量,API 调用情况,响应时间,请求频率,错误率等等,这些都关乎业务整体运行情况。

对应用程序本身也可以进行监控,比如 APM(应用程序性能监控)监控,这样遇到应用程序故障时,可以快速定位问题、处理问题。

还有当运行应用程序服务器的 CPU、内存持续走高,磁盘存储空间所剩不多等等各种异常情况,都需要监控来及时发现,并报给运维人员进行处理。

上面不管是业务访问异常,还是服务器资源运行异常,还是 API 调用异常,程序出 bug 等各种异常情况,都需要及时发现并处理,目的是减少业务损失。

可以通过监控系统来及时发现异常情况,并通过系统记录与异常相关联的信息,还原异常出现的现场环境,从而协助运维或研发人员快速定位问题,并及时处理异常情况。

三、监控作用总结

为什么需要监控,除了上面说的作用外,下面对监控的作用做一些总结。(我理解的最大作用是:化被动为主动

  • 近实时了解业务运行的健康状况
  • 提前获知业务异常情况信息并告警通知
  • 帮助定位各种异常、bug等故障
  • 为排障提供详细信息
  • 业务运营信息的统计和监控
  • 监控系统资源使用情况,保障系统稳定运行
  • 对异常情况发出告警通知,及时进行处理

四、监控系统流程

监控系统一般流程如下图:

image-20230620180631261

  • 数据采集

    通过采集工具收集相关监控指标的数据,比如采集操作系统指标, CPU 使用率、内存使用率、TCP 连接数等等。常用的采集数据的方式有代理和埋点 2 种方式。

    • 数据采集的软件工具,有 Filebeat,Fluentd,Fluent Bit,LogStash,Promtai,Vector,Mtail,Flume 等等。
  • 数据处理

    又可以叫数据计算处理,对采集到的原始数据进行各种纬度的计算处理,得到我们想要的一些监控指标数据。比如对于一些业务指标的计算,今天新增用户的数、7 天新增用户数、7 天某页面的 UV 等等数据指标。

    • 处理数据的工具有哪些?一般需要自己开发程序来进行数据处理,简单的指标计算可以通过 SQL 来进行统计。数据量比较大统计实时性高,可以使用 storm,
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值