Skip to content

Commit f0929c8

Browse files
committed
Merge branch 'release/docs'
2 parents 7219eac + 1f10de1 commit f0929c8

File tree

3 files changed

+49
-11
lines changed

3 files changed

+49
-11
lines changed

docs/sdk.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ const consoleErrorPlugin: BasePluginType<BrowserErrorTypes, BrowserClient> = {
5757
notify(BrowserErrorTypes.CE, args); // 将一阶段处理结果通过notify进行订阅
5858
};
5959
},
60-
transform(args: any[]) { // use 中 watch 进行消息发布
60+
transform(args: any[]) { // 参数格式转化,得到 最终格式的 上传数据
6161
const _reportData:ReportErrorData = {
6262
type: 'error',
6363
subType: BrowserErrorTypes.CE,
@@ -72,7 +72,7 @@ const consoleErrorPlugin: BasePluginType<BrowserErrorTypes, BrowserClient> = {
7272
};
7373
return _reportData;
7474
},
75-
consumer(reportData: ReportErrorData) { // use 中 watch 进行消息发布
75+
consumer(reportData: ReportErrorData) { // use 中 watch 进行消息发布, 观察者模式消费者进行消费
7676
this.report.send(reportData, true);
7777
}
7878
};

packages/browser/README.md

Lines changed: 36 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,46 @@ import { init } from '@qmonitor/browser';
1414

1515
init({
1616
url: 'http://localhost:8083/reportData',
17-
appName: '直客',
18-
appID: 'zhike',
17+
appName: '七猫',
18+
appID: 'qimao',
1919
cacheNum: 10,
2020
vue: {
2121
Vue,
2222
router
2323
}
2424
});
2525
```
26+
27+
## api
28+
```js
29+
{
30+
url?: string; // 上报地址
31+
appID?: string; // 项目ID
32+
appName?: string; // 项目名称
33+
userID?: string; // 用户ID
34+
cacheNum?:number; // 缓存数据
35+
sample?: number; // 采样率
36+
vue?: { // vue项目需要
37+
Vue?: VueInstance,
38+
router?: VueRouter
39+
}
40+
disabledConsoleError?: boolean; // 是否禁止监控 控制台错误, 默认是false
41+
disabledJsError?: boolean; // 是否禁止监控 JsError, 默认是false
42+
disabledPromiseError?: boolean; // 是否禁止监控 PromiseError, 默认是false
43+
disabledResourceError?: boolean; // 是否禁止监控 资源加载错误, 默认是false
44+
disabledFirstPaint?: boolean; // 是否禁止监控 首次绘制, 默认是false
45+
disabledFirstContentfulPaint?: boolean; // 是否禁止监控 首次有效绘制, 默认是false
46+
disabledLargestContentfulPaint?: boolean; // 是否禁止监控 最大内容绘制, 默认是false
47+
disabledFirstInputDelay?: boolean; // 是否禁止监控 首次输入延迟, 默认是false
48+
disabledCumulativeLayoutShift?: boolean; // 是否禁止监控 绘画偏移分数, 默认是false
49+
disabledNavigation?: boolean; // 是否禁止监控 页面关键时间点, 默认是false
50+
disabledResource?: boolean; // 是否禁止监控 资源文件, 默认是false
51+
disabledFetch?: boolean; // 是否禁止监控 api, 默认是false
52+
disabledXhr?: boolean; // 是否禁止监控 api, 默认是false
53+
disabledFirstMeaningPaint? : boolean; // 是否禁止监控 首次有效绘制, 默认是false
54+
// 钩子方法
55+
configReportXhr?(xhr: XMLHttpRequest, reportData: any): void // 钩子函数,配置发送到服务端的xhr, 一般浏览器使用beacon, 所以用不到
56+
beforeDataReport?(event: ReportBaseInfo):Promise<ReportBaseInfo | CANCEL> | ReportBaseInfo | any | CANCEL // 在每次发送事件前会调用, 可自定义对上传数据进行更改
57+
beforeAppAjaxSend?(config: IRequestHeaderConfig, setRequestHeader: IBeforeAppAjaxSendConfig): void // 拦截用户页面的ajax请求,并在ajax请求发送前执行该hook
58+
}
59+
```

packages/browser/src/index.ts

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -15,16 +15,20 @@ import { consoleErrorPlugin,
1515
navigationPlugin,
1616
resourceErrorPlugin} from './plugins';
1717
import { on_beforeunload, sampling, _global } from '@qmonitor/utils';
18+
import { BrowserEventTypes } from '@qmonitor/enums';
1819

1920
function create_browser_instance(options:BrowserOptionsType = {}, plugins: BasePluginType[] = []) {
2021
const _browserClient = new BrowserClient(options);
2122
const _sample = _browserClient.getOptions().sample;
22-
if (sampling(_sample)) {
23-
const _browserPlugin = [
24-
consoleErrorPlugin,
25-
jsErrorPlugin,
26-
resourceErrorPlugin,
27-
promiseErrorPlugin,
23+
let _browserPlugin:BasePluginType<BrowserEventTypes, BrowserClient>[] = [
24+
consoleErrorPlugin,
25+
jsErrorPlugin,
26+
resourceErrorPlugin,
27+
promiseErrorPlugin
28+
];
29+
if (sampling(_sample)) { // 抽样上报
30+
_browserPlugin = [
31+
..._browserPlugin,
2832
xhrPlugin,
2933
fetchPlugin,
3034
clsPlugin,
@@ -35,7 +39,6 @@ function create_browser_instance(options:BrowserOptionsType = {}, plugins: BaseP
3539
resourcePlugin,
3640
navigationPlugin
3741
];
38-
_browserClient.use([..._browserPlugin, ...plugins]);
3942
const _callback = () => {
4043
const _data = _browserClient.report.queue.get_cache();
4144
if (_data.length > 0) {
@@ -46,6 +49,7 @@ function create_browser_instance(options:BrowserOptionsType = {}, plugins: BaseP
4649
on_beforeunload(_global, _callback); // 当页面关闭前,将剩余所有数据进行上报
4750
return _browserClient;
4851
}
52+
_browserClient.use([..._browserPlugin, ...plugins]);
4953
return;
5054
}
5155

0 commit comments

Comments
 (0)