课程名称:Java架构师-十项全能
课程章节:
线上预警和业务埋点
主讲老师:
姚半仙
课程内容:
如何对线上的系统做预警?
监控预警需要根据一些线索触发警报,通常通过业务系统的日志收集来进行来保障核心主链路。如对订单系统的业务量估计,订单和交易量是一个平滑的曲线,就比较容易做一个业务量的阈值的估算,如在日间做一个每分钟信息采集,在下单成功或交易成功产生一条日志,采用收集系统去专门采集特征量,如果发现每分钟产生这个日志的数量小于一个阈值,就认为业务系统出现了一些不可预知的情况。
我们通常还会去监控一些异常的拐点或离群点,如平时平均有500单每秒的业务量,突然间在每10秒,单量出现一个急剧降低或者急剧升高的情况,这种情况叫异常的拐点,或者叫离群点,不一定是系统出现了问题,但是需要人工进行排查,以减少误报。
还可能对异常情况进行监控,比如对商品发布失败进行监控,在业务过程中发生不可恢复的错误,会打一行error日志,可能是上游或者下游业务出现异常。比如核心接口的性能基线,平均响应时间RT大于1000毫秒时,要么是网络阻塞,要么限流规则没有配置好,或者降级没有做到好的规划,导致接口的访问压力比较大。
线上日志组件,如Splunk、Kibana等各类日志系统,都可以集成监测预警报警控件来达到报警的效果。触发预警时,通过发送邮件、短信等通知相关人员。
业务埋点
对关键资源进行审计排查,运营、商户等的操作埋一行审计日志、对所有后台人员的操作,埋一行审计日志。或者通过存储介质,将审计日志保存下来。
统计分析:用户画像等,利用AI等系统对当前用户做精准的用户画像,做一个推荐系统。靠业务买点,用户点击的每一个页面,进行一个业务埋点,等等,做成用户画像。如复购率等。
线上问题排查,阿里鹰眼是个业务系统埋点系统。