作为一个架构师,要有一张上报的表格,明确每种服务要上报哪些属性。有些常规上报内容可以设计到开发框架和底层运维系统中,自动上报。
| <br>分类<br> | <br>上报或日志内容<br> | 告警设置 |
| <br>硬件资源<br> | <br>CPU使用率<br> | <br>>=70%<br> |
| <br>硬件资源<br> | <br>网卡入包/出包流量<br> | <br>>=网卡流量70%<br> |
| <br>硬件资源<br> | <br>TCP连接数<br> | <br> |
| <br>硬件资源<br> | <br>磁盘I/O读写量<br> | <br> |
| <br>硬件资源<br> | <br>磁盘I/O时延<br> | <br> |
| <br>硬件资源<br> | <br>内存使用率<br> | <br>>=70%<br> |
这些硬件资源指标在 Linux 系统中都有相应的工具可以查看,只要监控程序定期读取并上报即可。
| <br>分类<br> | <br>上报或日志内容<br> | <br>告警设置<br> |
| <br>底层软件<br> | <br>php-fpm进程数<br> | <br> |
| <br>底层软件<br> | <br>php-fpm重启<br> | <br>告警<br> |
| <br>底层软件<br> | <br>Nginx重启<br> | <br>告警<br> |
| <br>底层软件<br> | <br>Mysql慢日志<br> | <br>监控日志量告警<br> |
| <br>底层软件<br> | <br>PHP慢日志<br> | <br>监控日志量告警<br> |
| <br>底层软件<br> | <br>Nginx错误日志<br> | <br>定期查看<br> |
这些底层软件为业务提供了底层服务。平时要做好对这些软件是否正常运行的监控工作,同时这些软件也提供了一些慢日志供我们分析问题,直接采用即可。
这些进程的启动、退出、僵死等状态,以及进程启动数量,也都要上报,有些异常被监控到以后,还触发一些恢复性的操作,让程序的运行状态恢复正常。
例如,用户点击次数,用户到哪个页面流失了,都需要客户端来上报,通过对这些数据的监控,为产品和设计人员提供数据支持,衡量业务功能是否有效。
访问质量包括用户接入的失败率、访问时延等。
从用户端到服务端,中间还有很多程序不可控环节。
有时在后端测速正常,访问质量也很高,但用户侧却不行。可能是用户所在的网络和服务器机房网络属于不同的运营商,运营商之间传输有时时延会增加。这时就需要从用户侧获得数据,以用户的感知质量为准,从用户端来查看并优化服务。
为了了解用户侧的访问质量,还要提供用户主动上传日志的功能,当用户反馈问题时,能够让用户通过授权,把本地日志上传到云端,供研发人员分析问题。
| <br>分类<br> | <br>上报或日志内容<br> | <br>告警设置<br> |
| <br>接入层<br> | <br>请求包量<br> | <br>超过系统最大量60%<br> |
| <br>接入层<br> | <br>返回包量<br> | <br> |
| <br>接入层<br> | <br>应答正确数<br> | <br> |
| <br>接入层<br> | <br>应答错误数<br> | <br>根据SLA制定<br> |
| <br>接入层<br> | <br>上报:应答超时数<br><br>Error日志:记录请求参数,返回结果<br> | <br>根据SLA制定<br> |
| <br>接入层<br> | <br>PV<br> | <br> |
| <br>接入层<br> | <br>UV<br><br>INFO日志:记录每个ID的访问<br> | <br> |
| <br>接入层<br> | <br>处理时延分布<br> | <br>超过SLA的部分告警<br> |
处理耗时分布的两种方法:
方法一:对于每个请求都记录一条日志,记录处理时延,然后把日志汇总后分析。如果日志量大,也可以抽样一些记录日志,可以反映大体的趋势。
方法二:把系统耗时处理分为多个区间段,比如[0,100ms) 、[100ms,200ms) 、[200ms,500ms) 、[500ms,无限大),分别统计每个时间段的处理量。
方案一记录得更准确,但日志量大,系统资源消耗大;方案二的时间统计粒度一旦设置后就不能修改,但处理速度快,对于确定程序处理时延是否正常已经足够。
| <br>分类<br> | <br>上报或日志内容<br> | <br>告警设置<br> |
| <br>逻辑层<br> | <br>业务执行成功量<br> | <br> |
| <br>逻辑层<br> | <br>业务执行失败量<br> | <br>超过SLA的部分告警<br> |
| <br>逻辑层<br> | <br>业务执行超时量<br> | <br>超过SLA的部分告警<br> |
| <br>逻辑层<br> | <br>资源库存<br> | <br>库存预警(例如,奖品即将发放完;库存没有高级)<br> |
| <br>逻辑层<br> | <br>依赖第三方正确量<br> | <br> |
| <br>逻辑层<br> | <br>依赖第三方失败量<br><br>ERROR日志:记录请求和返回内容。<br> | <br>超过SLA的部分告警<br> |
| <br>逻辑层<br> | <br>依赖第三方超时量<br><br>ERROR日志:记录请求内容,超时时间<br> | <br>超过SLA的部分告警<br> |
| <br>分类<br> | <br>上报或日志内容<br> | <br>告警设置<br> |
| <br>数据层<br> | <br>存储使用率<br><br>INFO日志:记录当前使用率<br> | <br>超过60%告警<br> |
| <br>数据层<br> | <br>存储成功量<br> | <br>超过预想值告警,掉零告警<br> |
| <br>数据层<br> | <br>存储失败量<br> | <br>失败量超过阀值告警<br> |
| <br>数据层<br> | <br>时延分布<br> | <br>超过SLA的部分告警<br> |
| <br>数据层<br> | <br>来源上报<br> | <br> |
| <br>数据层<br> | <br>缓存使用量<br> | <br>超过最大值60%告警<br> |
| <br>数据层<br> | <br>缓存命中率<br> | <br>命中率低于预期告警<br> |
| <br>数据层<br> | <br>缓存淘汰率<br> | <br>淘汰率异常告警<br> |
数据层通过上报以上属性来反映数据存储资源的使用情况。
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://blog.csdn.net/chengqiuming/article/details/122029640
内容来源于网络,如有侵权,请联系作者删除!