keep-observers
Version:
This is a monitoring service applied to the web side Support Elasticsearch+kiban The middleware extension interface is provided by means of plug-in service compositionkeep-observers
144 lines (101 loc) • 5.59 kB
Markdown
# Keep-observer
##### **这是一个应用于 javascript web端中的监控服务**
- **关于keep-observer:**
- 这是一个基于javascript编写的用于线上生产环境监控,适用于web:PC端以及移动端的无感嵌入捕获,
- 采用插槽服务组合方式,各捕获相关服务上报数据在消息管道中流通,由上报服务在管道消息中接收捕获信息选择性上报服务端后台
- 支持可自由组合监控内容,并且允许自定义监扩充控捕获服务,自定义上报服务等。
- **功能:**
- keepObserverLog相关服务
- 拦截捕获全局 ***console*** 相关日志,包括(error,log,warn,time,timeEnd,clear,info,debug)等
- 捕获javascript 允行期间全局错误: ***JSerror***等错误信息
- keepObserverNetwork相关服务
- 捕获全局 ***XMLHttpRequest*** 请求
- keepObserverVue相关服务
- ***vue项目*** 捕获相关错误
- keepObserverLoad相关服务
- 性能捕获分析 ***项目首屏加载等性能分析***
- keepObserverReport相关服务
- 应用于将拦截数据包上报相关后台服务器
- 详细信息见下方:**关于上报服务**
- **兼容与支持:** 兼容目前所有主流框架运行版本, **vue angular react**等框架。**IE 678暂未测试**
## Use And reportMonitorData
#### 关于keepObserver使用:
- keepObserver支持自定义配置监控服务,在不自定义配置服务的情况,默认加载全部服务,包括(keepObserverLog,keepObserverNetwork, keepObserverVue,keepObserverLoad,keepObserverReport)等
- keepObserver 在 new keepObserver()后 : **开始运行监控。首先尝试读取系统首屏加载信息, 在嵌入拦截window.console相关的方法以及window.XMLHttpRequest方法,进行监控log和ajax网络请求**,
- 注意在keepObserver运行期间 **如果不设置develop = true 将默认生产环境**,在生产环境中.window.console相关的接口打印信息,将被keepObserver拦截,**并不显示在控制台console中**
- 同时 window.console相关的方法的打印信息,以及window.XMLHttpRequest方法的每一次请求,也被拦截并记录在localStorage缓存中,在上报的时候按需要打包合并上报。
#### 关于上报服务器:
##### keepObserverReport 在遇到以下几种情况下,将进行上报服务器操作
##### Monitor类型:(并且合并发生错误时,前几条正常的request和window.console相关信息,用于提供向前追踪错误)
```javascript
: 捕获到js错误 script Error
: console.error() 被调用输出错误信息
: ajax请求响应超时 network timeout
: ajax请求出现错误 status !== 200
: 如果配置自定义判断ajax请求onHandleJudgeResponse钩子, 在钩子返回不等于false时,判断为ajax请求不正确
: 如果需要监控vue,在vue拦截到错误信息后
```
**Performance类型:以下内容将会直接上传并且无合并追踪信息**
```javascript
: 首屏load相关信息,每天首次打开将上报
```
**更多配置信息,以及上报参数,请参考Documentation**
## Installation
请使用 npm安装包
```
npm install keep-observers
```
## Examples
#### 一个简单的使用例子
```javascript
import KeepObserver from 'keep-observers';
//启动
var keepObserver = new KeepObserver({
project:'netcar',
develop:true,
//网络监控配置
networkCustom:{
timeout:30000,
},
//数据上传相关配置
reportCustom:{
reportUrl:['http://localhost:3000/api/v1/keepObserver/report'],
}
});
```
#### 自定义服务例子
```javascript
import keepObserver from 'keep-observers/dist/keepObserver.js'
import keepObserverReport from 'keep-observers/dist/keepObserverReport.js'
import KeepObserverLog from 'keep-observers/dist/KeepObserverLog.js'
import KeepObserverNetwork from 'keep-observers/dist/KeepObserverNetwork.js'
//import KeepObserverVue from 'keep-observers/dist/KeepObserverVue.js'
import KeepObserverLoad from 'keep-observers/dist/KeepObserverLoad.js'
var keepObserver = new KeepObserver({
project:'netcar',
develop:true,
//网络监控配置
networkCustom:{
timeout:30000,
},
//数据上传相关配置
reportCustom:{
reportUrl:['http://localhost:3000/api/v1/keepObserver/report'],
}
});
// not Monitor vue
keepObserver.use(keepObserverReport)
keepObserver.use(KeepObserverLog)
keepObserver.use(KeepObserverNetwork)
//keepObserver.use(KeepObserverVue)
keepObserver.use(KeepObserverLoad)
```
##### 更多config配置详情,以及相关api等,请参考Documentation。
## Documentation
#### 相关文档说明
- **keepObserver实例和自定义插件服务** **[keepObserver](https://github.com/keep-observer/keepObserver/blob/master/document-cn/keepObserver.md)**
- **上报服务:** **[keepObserverReport](https://github.com/keep-observer/keepObserver/blob/master/document-cn/report.md)**
- **window.console以及jsError相关监控服务:** **[KeepObserverLog](https://github.com/keep-observer/keepObserver/blob/master/document-cn/log.md)**
- **XMLHttpRequest相关监控服务** **[KeepObserverNetwork](https://github.com/keep-observer/keepObserver/blob/master/document-cn/network.md)**
- **vue错误相关拦截服务:** **[KeepObserverVue](https://github.com/keep-observer/keepObserver/blob/master/document-cn/vue.md)**
- **首屏加载分析onload服务:** **[KeepObserverLoad](https://github.com/keep-observer/keepObserver/blob/master/document-cn/load.md)**