架构设计图
几层设计
日志上报
依赖于上报的SDK进行日志上报,将线上的INFO/NOTICE/WARNING/ERROR/FATAL类日志上报到日志服务器。业务上分为三类日志:
- 展现日志,标志页面的一次展现
- 交互日志,标志用户在页面中的交互行为
- 系统日志,标志系统运行状态,运行错误等
Kafka
Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据。上报的日志通过flume日志手机系统传输到Kafka中,通过不同的topic上报,数据在Kafka集群中保存一段时间,需要保证数据要在此段时间内被消费。
消费层
通过消费程序对KafKa中的数据进行实时消费,通过offset来记录消费的标志位,根据不同业务特点进行计算和数据聚合。
MongoDB
依赖NoSQL的非关系型、分布式、水平可扩展等特点。选用MongoDB进行数据存储,利用了MongoDB的Sharding,优秀的查询性能进行数据查询。值得一提的是MongoDB从4.0版本开始支持ACID。
数据监听
对单错误,单页面,单项目,单域名级别进行不同层面的数据监听,监控页面和项目的健康程度,根据阈值进行不同程度的报警监听。
业务接口
- 根据不同人员对不同项目的配置规则,将触发默认规则和自定义规则的报警项进行预警,支持短信,电话,邮件钉钉等。
- 针对重点的错误和特定的情景进行场景重现,通过Selenium集群复现用户的操作情况和报错信息。
平台展示
- 对域级别项目级别和单个错误级别的错误状况进行展示。
- 针对接口请求的情况进行监听展示。
- 项目的注册以及项目人员的管理。