异常监控项目架构

2021-09-13  本文已影响0人  科研者

目录

内容

1. 简介

前端监控 是一套用于 监测 前端项目运行时情况,及时上报错、统计错误、性能和用户行为的系统。它能我们及时地发现线上客户端产品的错误、了解客户端产品的性能 等;

目前提供了如下功能:

2. 项目成员

整个前端监控项目由以下几部分组成

项目关系图

此图是由 dot 和 plantUML 语言绘成,如需修改,请看 [项目关系图.dot][]、[项目关系图.puml][]

各部分的仓库地址如下:

3. 整体架构

整个监控项目的整体架构如下:


整体架构

各个模块的详细的介绍如下

3.1. 上报SDK

上报SDK 运行于被监控的前端项目中,用于收集相关数据 并将收集的数据上报给 后端服务。

上报的数据分为两类:

3.2. 日志任务

日志任务是用来 消费、清洗 SDK 上报的数据的,这个过程中,每一个环境都有相应的定时任务来处理,所以的定时任务统一由 Task:Manager 命令来统一调度,所以,我们需要通过 Task:Manager 命令来启动日志任务。

3.2.1. 日志任务数据处理流程

从 SDK 上报数据 到 存入数据库,这个数据的处理过程如下:

日志任务数据处理流程
  1. 数据收集:上报SDK 收集数据,然后将数据发送给后端;
  2. 生成日志:Nginx 将上报的数据记录成日志文件;
  3. 结构化数据:通过 SaveLog 命令将上一步生成的日志转成 JSON 格式 并保存成 以分钟为单位分隔的文件;
  4. 解析并存入原始表:通过 Parse 命令解析上一步的 JSON 数据,然后将数据存入到数据库相应的原始数据表中;
  5. 统计:通过 Summary 命令对上一步解析后的数据进行统计,并将统计结果存入 数据库的 结果数据表 和 Redis 中;

3.2.2. 命令的语法及作用

日志任务应用的入口文件是 dist/fee.js,所以,我们需要通过 node dist/fee.js 命令 参数 的方式来执行下面描述的命令,比如:执行 Utils:GenerateSQL命令的的方式为 node dist/fee.js Utils:GenerateSQL '1,2,3' 2020-12 2021-04

由于 package.json 配置了 fee.js 的脚本,所以你也可以用 npm run fee 命令 参数 来执行相应的命令。

结构化

监控

统计

缓存

工具

其它

3.2.3. 执行周期

一次性命令: 整个应用生命周期只需要执行一次

每分钟执行一次:

每10分钟执行一次的任务:

每1小时执行一次的任务: 每小时15分30秒启动

每6小时执行一次的任务: 每过6小时在35分45秒启动

3.3. 管理系统

管理系统 是一个 Web应用,是用来以图形化的方式展示 上报SDK 收集的各种数据,并提供了一些 用户、权限、项目管理的功能,详情请看 监控前端仓库

3.4. Web服务

Web服务 是 管理系统 的后端服务,应用程序的入口文件是 dist/app

3.5. 公司基础设施

监控项目接入了公司的基础服务,如:PMS、MySQL、Redis、Kafka、Zookeeper 等等。

上一篇 下一篇

猜你喜欢

热点阅读