插件配置
SDK 通过插件配置管理各个上报的开启和具体配置。
渲染进程插件配置
{
plugin: {
aid?: Boolean | PluginConfigOption;
pv?: Boolean | PluginConfigOption;
assetSpeed?: Boolean | PluginConfigOption;
api?: Boolean | CoreApiConfig;
error?: Boolean | PluginConfigOption;
pagePerformance?: Boolean |{longtask: boolean}; // longtask 收集默认关闭,如需开启可设置为{longtask: true}
spa?: Boolean | PluginConfigOption;
blankScreen?: Boolean | PluginConfigOption;
}
}
aid
Aegis SDK 为每个用户设备分配的唯一标识,会存储在浏览器的 localStorage 里面,用来区分用户,计算 uv 等。aid 只有用户清理浏览器缓存才会更新。 对于一些项目,使用自己构造的 aid 作为上报规则,后端对 aid 的校验规则如下:/^[@=.0-9a-zA-Z_-]{4,36}$/
主进程插件配置
const aegis = new Aegis({
id : 'xxxxx',
appKey: 'xxxxx',
plugin: {
processPerformance: true, // 性能,包括cpu和内存
error: true, // 错误上报
crash: true, // 崩溃上报
api: {
apiDetail: true,
},
},
})
PluginConfigOption的配置:
interface PluginConfigOption {
[key: string]: any;
}
CoreApiConfig配置:
type CoreApiConfig = {
apiDetail?: boolean;
resourceTypeHandler?: Function | undefined;
retCodeHandler?: Function | undefined;
reqParamHandler?: Function | undefined;
resBodyHandler?: Function | undefined;
resHeaders?: Array<string>;
reqHeaders?: Array<string>;
//必须为枚举值 'traceparent', 'sw8', 'b3', 'sentry-trace' 中的一种,开启该参数后,Aegis V2 会在用户请求头中注入相关 trace header。
injectTraceHeader?: string;
//数组中传入 string 或者 RegExp。标记哪些请求 url 需要注入 trace 请求头。
injectTraceUrls?:Array;
//数组中传入 string 或者RegExp。标记哪些请求 url 不需要注入 trace 请求头。
injectTraceIgnoreUrls?: Array;
//标记trace请求的flag设置
traceFlag?: boolean || number;
};
api 配置表
| 配置项 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| api | boolean \| object | {} | 可选。设为 true 时等价于 {},设为 false 时关闭 api 监控 |
| apiDetail | boolean | false | 上报接口信息时,是否同时上报请求参数与返回值 |
| reportAbort | boolean | false | 上报接口信息时,是否上报接口 abort 的日志 |
| retCodeHandler | Function(data, url, ctx): {isErr: boolean, code: string} | - | 返回码上报钩子,可异步;用于自定义判断接口是否异常 |
| reqParamHandler | Function(data, url) | - | 上报前对请求参数进行过滤或加工 |
| resBodyHandler | Function(data, url) | - | 上报前对响应 body 进行过滤或加工 |
| reqHeaders | Array<string> | - | 需要上报的 HTTP 请求头字段列表 |
| resHeaders | Array<string> | - | 需要上报的 HTTP 响应头字段列表(需小写;非 simple header 需在响应头加 Access-Control-Expose-Headers) |
| resourceTypeHandler | Function(url): 'static' \| 'fetch' | - | 自定义请求资源类型修正钩子 |
| injectTraceHeader | 'traceparent' \| 'sw8' \| 'b3' \| 'sentry-trace' | - | 开启后,Aegis V2 会在匹配到的请求头中注入对应 trace header |
| injectTraceUrls | Array<string \| RegExp> | - | 指定哪些 URL 需要注入 trace header(字符串为全匹配,推荐用正则) |
| injectTraceIgnoreUrls | Array<string \| RegExp> | - | 指定哪些 URL 不需要注入 trace header(字符串为全匹配,推荐用正则) |
| traceFlag | boolean \| number | - | trace 请求的 flag 标记 |
| urlHandler | Function(url, body): string | - | 自定义逻辑返回最终上报的 url |