Skip to content

Commit ebfbf8e

Browse files
committed
Update to Sai.
1 parent de48f11 commit ebfbf8e

14 files changed

+99
-101
lines changed

Makefile

+4-4
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,12 @@ install:
77

88
build:
99
@spm build
10-
@googlecc ${PROJ_ROOT}/src/seer-monitor.js ${PROJ_ROOT}/dist/seer-monitor.js
10+
@googlecc ${PROJ_ROOT}/src/seer-sai.js ${PROJ_ROOT}/dist/seer-sai.js
1111
@googlecc ${PROJ_ROOT}/src/seer-jsniffer.js ${PROJ_ROOT}/dist/seer-jsniffer.js
12-
@cat ${PROJ_ROOT}/dist/seer-monitor.js > ${PROJ_ROOT}/dist/seer.js
12+
@cat ${PROJ_ROOT}/dist/seer-sai.js > ${PROJ_ROOT}/dist/seer.js
1313
@cat ${PROJ_ROOT}/dist/seer-jsniffer.js >> ${PROJ_ROOT}/dist/seer.js
14-
@rm ${PROJ_ROOT}/dist/seer-monitor.js ${PROJ_ROOT}/dist/seer-jsniffer.js
15-
@cat ${PROJ_ROOT}/src/seer-monitor.js > ${PROJ_ROOT}/dist/seer-debug.js
14+
@rm ${PROJ_ROOT}/dist/seer-sai.js ${PROJ_ROOT}/dist/seer-jsniffer.js
15+
@cat ${PROJ_ROOT}/src/seer-sai.js > ${PROJ_ROOT}/dist/seer-debug.js
1616
@cat ${PROJ_ROOT}/src/seer-jsniffer.js >> ${PROJ_ROOT}/dist/seer-debug.js
1717

1818
build-doc:

README.md

+21-23
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,16 @@
11

2-
# monitor: 通用前端监控采集脚本。
2+
# Sai: 通用前端监控采集脚本。
33

44
---
55

6-
[![spm package](http://spmjs.io/badge/monitor)](http://spmjs.io/package/monitor)
7-
[![Build Status](https://secure.travis-ci.org/totorojs/monitor.png?branch=master)](https://travis-ci.org/totorojs/monitor)
8-
[![Coverage Status](https://coveralls.io/repos/totorojs/monitor/badge.png?branch=master)](https://coveralls.io/r/totorojs/monitor)
6+
[![spm package](http://spmjs.io/badge/sai)](http://spmjs.io/package/sai)
7+
[![Build Status](https://secure.travis-ci.org/saijs/sai.js.png?branch=master)](https://travis-ci.org/saijs/sai.js)
8+
[![Coverage Status](https://coveralls.io/repos/saijs/sai.js/badge.png?branch=master)](https://coveralls.io/r/saijs/sai.js)
99

1010

11-
为了和整体的 totoro 质量体系保持一致,特为前端监控脚本取小名为 `chibi`
12-
龙猫中最小的那只龙猫(chibi totoro)。
13-
chibi 体型小巧,白色透明特质正好与前端监控的小巧、不可见特质相匹配。
11+
Sai 是《棋魂》中追求神乎其技的魂,千年来他隐身身后,为追求神乎其技孜孜不倦。
1412

15-
![chibi](resources/chibi.png)
13+
![sai](resources/sai.png)
1614

1715
## 概述
1816

@@ -29,9 +27,9 @@ chibi 体型小巧,白色透明特质正好与前端监控的小巧、不可
2927

3028
大致结构如下图:
3129

32-
![前端监控组件结构](resources/monitor-code-structure.png)
30+
![前端监控组件结构](resources/code-structure.png)
3331

34-
从上图看,前端监控(monitor 模块)提供了核心的 `log()` 接口,
32+
从上图看,前端监控(Sai 模块)提供了核心的 `log()` 接口,
3533
`on()`, `off()` 事件机制,其中 `log()` 接口提供了可扩展的数据传输方案,
3634
`on()`, `off()` 事件机制提供了简单易用的扩展能力。
3735

@@ -42,9 +40,9 @@ JSniffer 同时还扩展了 `lost()` 方法,在外部模块或资源加载失
4240
方法,监控到 JavaScript 异常时,附加这些缺失的资源信息,辅助异常分析。
4341

4442
JavaScript 异常是前端监控中最重要、最常用的信息,同时为了简化 API,所以将
45-
这两个接口扩展附加在 monitor 模块上。
43+
这两个接口扩展附加在 Sai 模块上。
4644

47-
其他的 DOMLint, SENS 等第三方独立的监控模块,都直接调用 `monitor.log()` 接口
45+
其他的 DOMLint, SENS 等第三方独立的监控模块,都直接调用 `Sai.log()` 接口
4846
传输数据。
4947

5048

@@ -57,7 +55,7 @@ JavaScript 异常是前端监控中最重要、最常用的信息,同时为了
5755
小巧的先行脚本建议内联(也可以外联)在页面头部,在所有脚本和外部资源之前。
5856
用于收集全局的异常,并为后续业务准备好可用的 API。
5957

60-
* monitor.js
58+
* sai.js
6159

6260
后置监控模块(这是一个 CMD 模块)可以通过异步方式加载在页面底部,
6361
用于处理监控日志的发送和其他扩展支持。
@@ -74,7 +72,7 @@ JavaScript 异常是前端监控中最重要、最常用的信息,同时为了
7472
page content...
7573

7674
<script type="text/javascript">
77-
seajs.use("monitor", function(monitor){
75+
seajs.use("sai", function(Sai){
7876
});
7977
</script>
8078
</body>
@@ -86,26 +84,26 @@ JavaScript 异常是前端监控中最重要、最常用的信息,同时为了
8684

8785
一般情况下,JavaScript 异常监控前置脚本已经自动收集了页面上抛出的异常,
8886
但也有部分场景,业务逻辑中 catch 捕获住了抛出 JavaScript 异常,避免影响后续
89-
的业务逻辑,但同时希望监控到这个异常场景,可以主动调用 `monitor.error()` 接口:
87+
的业务逻辑,但同时希望监控到这个异常场景,可以主动调用 `Sai.error()` 接口:
9088

9189
```javascript
9290
try{
9391
throw new Error("msg");
9492
}catch(ex){
95-
monitor.error(ex);
93+
Sai.error(ex);
9694
}
9795
```
9896

9997

10098
## API
10199

102100

103-
### monitor.error(Error error)
101+
### Sai.error(Error error)
104102

105103
JavaScript 异常监控的接口,可以用于主动监控被捕获的 JavaScript 异常。
106104

107105

108-
### monitor.log(Object seed [, String profile])
106+
### Sai.log(Object seed [, String profile])
109107

110108
前端监控的通用频次监控接口。通过这个发送监控数据,并配合对应的日志处理和数据分析,
111109
可以完成多种监控需求。
@@ -114,7 +112,7 @@ JavaScript 异常监控的接口,可以用于主动监控被捕获的 JavaScri
114112
* `profile`: 日志类型,默认为 `log`
115113

116114

117-
### monitor.on(String eventName, Function handler)
115+
### Sai.on(String eventName, Function handler)
118116

119117
监控到特定类型的数据时,会触发的特定事件。内置支持的事件类型包括:
120118

@@ -124,24 +122,24 @@ JavaScript 异常监控的接口,可以用于主动监控被捕获的 JavaScri
124122
* 其他任意的自定义类型类似。
125123

126124

127-
### monitor.off(String eventName [, Function handler])
125+
### Sai.off(String eventName [, Function handler])
128126

129127
取消通过 on 绑定的事件。
130128

131129

132-
### monitor.lost(String uri)
130+
### Sai.lost(String uri)
133131

134132
页面加载特定资源失败时,可以调用这个方法。
135133
缺失的资源对于异常分析有较大帮助。
136134

137135
范例:
138136

139137
```html
140-
<script src="sea.js" onerror="window.monitor && monitor.lost && monitor.lost(this.src)"></script>
138+
<script src="sea.js" onerror="window.Sai && Sai.lost && Sai.lost(this.src)"></script>
141139
<script>
142140
// seajs 2.1 开始支持,但 error 事件仍有缺陷,seajs 2.2 的 error 事件较适合本场景。
143141
seajs.on("error", function(module){
144-
window.monitor && monitor.lost && monitor.lost(module.uri);
142+
window.Sai && Sai.lost && Sai.lost(module.uri);
145143
});
146144
</script>
147145
```

doc/install.md

+3-3
Original file line numberDiff line numberDiff line change
@@ -34,9 +34,9 @@
3434
<script type="text/javascript">
3535
3636
// 如果前置脚本未准备好,建议不加载后置脚本。
37-
// 如果需要采样监控,请在采样命中后 use 加载 monitor 模块。
38-
if(window.monitor && rateHited){
39-
seajs.use(["monitor"], function(monitor){
37+
// 如果需要采样监控,请在采样命中后 use 加载 Sai 模块。
38+
if(window.Sai && rateHited){
39+
seajs.use(["sai"], function(Sai){
4040
});
4141
}
4242

examples/index.md

+18-18
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ button{
99
}
1010
</style>
1111

12-
<script type="text/javascript" src="../src/seer-monitor.js"></script>
12+
<script type="text/javascript" src="../src/seer-sai.js"></script>
1313
<script type="text/javascript" src="../src/seer-jsniffer.js"></script>
1414

1515

@@ -26,46 +26,46 @@ button{
2626
// 命中率:[0,1]: 实际对应采样率:[0%,100%]
2727
var rate = 1;
2828
if(!hit(rate)){return;}
29-
seajs.use("monitor", function(monitor){
29+
seajs.use("sai", function(Sai){
3030
});
3131
})();
3232
````
3333

3434
----
3535

36-
<script type="text/javascript" onerror="window.monitor && monitor.lost(this.src)" src="http://example.com/404.js"></script>
36+
<script type="text/javascript" onerror="window.Sai && Sai.lost(this.src)" src="http://example.com/404.js"></script>
3737

3838
<button type="button" id="btn-ex1">throw new Error()</button>
39-
<button type="button" id="btn-ex2">monitor.error(new Error())</button>
39+
<button type="button" id="btn-ex2">Sai.error(new Error())</button>
4040
<button type="button" id="btn-ex3">try undefined var</button>
4141

4242
----
4343

44-
<button type="button" id="btn3">monitor.log(seed)</button>
45-
<button type="button" id="btn4">monitor.log(seed, profile)</button>
46-
<button type="button" id="btn5">monitor.log(productLine, product, code)</button>
47-
<button type="button" id="btn6">monitor.log(Object)</button>
48-
<button type="button" id="btn7">monitor.log({profile})</button>
44+
<button type="button" id="btn3">Sai.log(seed)</button>
45+
<button type="button" id="btn4">Sai.log(seed, profile)</button>
46+
<button type="button" id="btn5">Sai.log(productLine, product, code)</button>
47+
<button type="button" id="btn6">Sai.log(Object)</button>
48+
<button type="button" id="btn7">Sai.log({profile})</button>
4949

5050
<script type="text/javascript">
5151
seajs.on("error", function(module){
52-
window.monitor && monitor.lost(module.uri);
52+
window.Sai && Sai.lost(module.uri);
5353
});
5454
seajs.use("http://www.example.com/404");
5555

56-
seajs.use(["jquery", "monitor"], function($, monitor){
56+
seajs.use(["jquery", "sai"], function($, Sai){
5757
$("#btn-ex1").click(function(clickEx1){
5858
throw new Error("throw new error message.");
5959
});
6060
$("#btn-ex2").click(function(clickEx2){
61-
monitor.error(new Error("log new error message."));
61+
Sai.error(new Error("log new error message."));
6262
});
6363
$("#btn-ex3").click(function(clickEx3){
6464
function a2(a2,a21,a22){
6565
try{
6666
notDefined();
6767
}catch(ex){
68-
monitor.error(ex);
68+
Sai.error(ex);
6969
}
7070
}
7171
function a1(a1){
@@ -74,22 +74,22 @@ seajs.use(["jquery", "monitor"], function($, monitor){
7474
a1(1);
7575
});
7676
$("#btn3").click(function(){
77-
monitor.log("test-seed");
77+
Sai.log("test-seed");
7878
});
7979
$("#btn4").click(function(){
80-
monitor.log("test-seed", "test-profile");
80+
Sai.log("test-seed", "test-profile");
8181
});
8282
$("#btn5").click(function(){
83-
monitor.log("productLine", "product", "code");
83+
Sai.log("productLine", "product", "code");
8484
});
8585
$("#btn6").click(function(){
86-
monitor.log({
86+
Sai.log({
8787
"userKey": 0,
8888
"key2": "2"
8989
});
9090
});
9191
$("#btn7").click(function(){
92-
monitor.log({
92+
Sai.log({
9393
"userKey": 0,
9494
"key2": "2",
9595
"profile": "user-profile"

examples/monitor-on.md examples/sai-on.md

+9-9
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# monitor.on() events.
1+
# Sai.on() events.
22

33
---
44

@@ -9,20 +9,20 @@ button{
99
}
1010
</style>
1111

12-
<script type="text/javascript" src="../src/seer-monitor.js"></script>
12+
<script type="text/javascript" src="../src/seer-sai.js"></script>
1313
<script type="text/javascript" src="../src/seer-jsniffer.js"></script>
1414

1515

1616
````javascript
1717
(function(){
1818

19-
seajs.use("monitor", function(monitor){
19+
seajs.use("sai", function(Sai){
2020

21-
monitor.on("*", function(meta){
21+
Sai.on("*", function(meta){
2222
meta.uid = "user_id";
2323
});
2424

25-
monitor.on("jserror", function(meta){
25+
Sai.on("jserror", function(meta){
2626
meta.error_id = "error_id";
2727
});
2828

@@ -45,19 +45,19 @@ button{
4545

4646
<script type="text/javascript">
4747

48-
seajs.use(["jquery", "monitor"], function($, monitor){
48+
seajs.use(["jquery", "sai"], function($, Sai){
4949
$("#btn-ex1").click(function(clickEx1){
5050
throw new Error("throw new error message.");
5151
});
5252
$("#btn-ex2").click(function(clickEx2){
53-
monitor.error(new Error("log new error message."));
53+
Sai.error(new Error("log new error message."));
5454
});
5555
$("#btn-ex3").click(function(clickEx3){
5656
function a2(a2,a21,a22){
5757
try{
5858
notDefined();
5959
}catch(ex){
60-
monitor.error(ex);
60+
Sai.error(ex);
6161
}
6262
}
6363
function a1(a1){
@@ -66,7 +66,7 @@ seajs.use(["jquery", "monitor"], function($, monitor){
6666
a1(1);
6767
});
6868
$("#btn-log").click(function(clickEx2){
69-
monitor.log("seed");
69+
Sai.log("seed");
7070
});
7171
});
7272
</script>

package.json

+7-7
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,23 @@
11
{
2-
"name": "monitor",
3-
"version": "2.4.0",
2+
"name": "sai",
3+
"version": "3.0.0",
44
"description": "通用前端监控脚本",
5-
"homepage": "https://github.com/totorojs/monitor",
5+
"homepage": "https://github.com/saijs/sai.js",
66
"author": "闲耘 <[email protected]>",
77
"maintainers": [
8-
"冒顿 <[email protected]>"
8+
"闲耘 <[email protected]>"
99
],
1010
"repository": {
1111
"type": "git",
12-
"url": "https://github.com/totorojs/monitor.git"
12+
"url": "https://github.com/saijs/sai.js.git"
1313
},
14-
"bugs": "https://github.com/totorojs/monitor/issues",
14+
"bugs": "https://github.com/saijs/sai.js/issues",
1515
"keywords": ["utility"],
1616
"licenses": "MIT",
1717
"scripts": {
1818
},
1919
"spm": {
20-
"main": "monitor.js",
20+
"main": "sai.js",
2121
"dependencies": {
2222
"detector": "2.0.1",
2323
"arale-events": "1.2.0"

resources/chibi.png

-47.3 KB
Binary file not shown.

resources/code-structure.png

25.2 KB
Loading

resources/monitor-code-structure.png

-23.1 KB
Binary file not shown.

resources/sai.png

371 KB
Loading

monitor.js sai.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
var win = window;
33
var doc = win.document;
44
var loc = win.location;
5-
var M = win.monitor;
5+
var M = win.Sai;
66

77
var detector = require("detector");
88
var Events = require("arale-events");
@@ -207,5 +207,5 @@ M._DATAS.push = function(){
207207
// 主动发送已捕获的异常。
208208
timedSend();
209209

210-
win.monitor = M;
210+
win.Sai = M;
211211
module.exports = M;

0 commit comments

Comments
 (0)