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
137 lines (118 loc) • 4.2 kB
Markdown
# keepObserverNetwork
### Function
提供 window.XMLHttpRequest 以及window.fetch相关请求api的监听,纯ProducerServer服务
### Config
```TypeScript
/*
function:
默认超时时间 (ms)
default:
20000
explain:
默认超时时间 20S;
*/
timeout: Number
/*
function:
屏蔽URL
default:
[]
explain:
忽略相关url的监听,采用indexOf匹配 request.url
*/
ignoreRequestList: String[]
/*
function:
是否捕获响应内容
default:
true
explain:
是否捕获响应Response内容
*/
isCatchResponseContent:Boolean
/*
function:
是否自动开始上报
default:
true
explain:
keepObserver.use(keepObserverNetwork)注册后,将开启自动监听
*/
automaticStart:Boolean
```
### Api
```TypeScript
/*
function:
停止监听
params
void
return
void
explain:
注册后,使用keepObserver.apis('networkStop') 调用到此方法
*/
stopObserver():void
/*
function:
开始监听,
params
void
return
void
explain:
注册后,使用keepObserver.apis('networkStart') 调用到此方法
*/
startObserver():void
/*
function:
取消patch,返还window相关Api
params
void
return
void
explain:
取消patch,返还window相关Api
注册后,使用keepObserver.apis('networkCancelPatch') 调用到此方法
ps:这种方式会和angular 6的zone 等polyfills.js产生冲突,并且返还后将无法再次开启startObserver也将失效
*/
cancelPatch():void
```
### type
```TypeScript
//上报格式
interface catchParams<networkType> = {
type: 'monitor' //类型, monitor | performance| analyse | report
typeName: string; //类型名, monitor(vue|log|network|error)
data: networkType; //捕获数据
location?: string; //捕获位置
environment?: string; //捕获环境
reportTime?: number //捕获时间搓
//标识项
isIgnoreSendRepeat?: boolean; //是否忽略发送信息重复
isError?: boolean; //是否是错误信息
isPerformance?: boolean; //是否是性能信息
isAnalyse?: boolean;
}
type networkType = {
type: 'ajax'|'fetch',
statusType: 'request'|'response' //请求状态
method: string; //请求方法
url: string; //请求baseUrl
requestHead?: any; //请求头
responseHead?: any; //请求响应头
params?: any; //请求URL上携带的参数
body?: string; //请求postData
status: number; //请求状态码
startTime?:number; //请求开始时间
endTime?: number; //请求结束时间
costTime?: number; //请求耗时
response?: string; //请求原始响应数据
responseType?: string; //请求响应类型
timeout?: number; //如果超时 这里是设置的超时时间
errorContent?: string; //错误信息
//状态
isTimeout?: boolean; //是否超时
isError?: boolean; //这个请求是否出现错误
}
```