@cloudcare/rum-uniapp 1.0.3 → 2.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cjs/boot/buildEnv.js +1 -1
- package/cjs/boot/rum.entry.js +56 -1
- package/cjs/boot/rum.js +2 -2
- package/cjs/core/boundedBuffer.js +28 -0
- package/cjs/core/configuration.js +22 -1
- package/cjs/core/dataMap.js +5 -1
- package/cjs/core/transport.js +123 -69
- package/cjs/core/xhrProxy.js +3 -2
- package/cjs/helper/enums.js +11 -2
- package/cjs/helper/utils.js +163 -6
- package/cjs/rumEventsCollection/assembly.js +19 -2
- package/cjs/rumEventsCollection/page/index.js +1 -11
- package/cjs/rumEventsCollection/requestCollection.js +9 -2
- package/cjs/rumEventsCollection/resource/resourceCollection.js +20 -1
- package/cjs/rumEventsCollection/tracing/ddtraceTracer.js +50 -0
- package/cjs/rumEventsCollection/tracing/jaegerTracer.js +58 -0
- package/cjs/rumEventsCollection/tracing/skywalkingTracer.js +75 -0
- package/cjs/rumEventsCollection/tracing/tracer.js +108 -0
- package/cjs/rumEventsCollection/tracing/w3cTraceParentTracer.js +51 -0
- package/cjs/rumEventsCollection/tracing/zipkinMultiTracer.js +58 -0
- package/cjs/rumEventsCollection/tracing/zipkinSingleTracer.js +51 -0
- package/esm/boot/buildEnv.js +1 -1
- package/esm/boot/rum.entry.js +55 -2
- package/esm/boot/rum.js +2 -2
- package/esm/core/boundedBuffer.js +20 -0
- package/esm/core/configuration.js +24 -3
- package/esm/core/dataMap.js +5 -1
- package/esm/core/transport.js +120 -70
- package/esm/core/xhrProxy.js +3 -2
- package/esm/helper/enums.js +8 -0
- package/esm/helper/utils.js +145 -5
- package/esm/rumEventsCollection/assembly.js +20 -3
- package/esm/rumEventsCollection/page/index.js +1 -11
- package/esm/rumEventsCollection/requestCollection.js +8 -2
- package/esm/rumEventsCollection/resource/resourceCollection.js +21 -2
- package/esm/rumEventsCollection/tracing/ddtraceTracer.js +42 -0
- package/esm/rumEventsCollection/tracing/jaegerTracer.js +50 -0
- package/esm/rumEventsCollection/tracing/skywalkingTracer.js +66 -0
- package/esm/rumEventsCollection/tracing/tracer.js +90 -0
- package/esm/rumEventsCollection/tracing/w3cTraceParentTracer.js +43 -0
- package/esm/rumEventsCollection/tracing/zipkinMultiTracer.js +50 -0
- package/esm/rumEventsCollection/tracing/zipkinSingleTracer.js +43 -0
- package/package.json +1 -1
package/cjs/boot/buildEnv.js
CHANGED
package/cjs/boot/rum.entry.js
CHANGED
|
@@ -9,8 +9,20 @@ var _utils = require("../helper/utils");
|
|
|
9
9
|
|
|
10
10
|
var _rum = require("./rum");
|
|
11
11
|
|
|
12
|
+
function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
|
|
13
|
+
|
|
12
14
|
var makeRum = function makeRum(startRumImpl) {
|
|
13
15
|
var isAlreadyInitialized = false;
|
|
16
|
+
var globalContextManager = (0, _utils.createContextManager)();
|
|
17
|
+
var user = {};
|
|
18
|
+
|
|
19
|
+
function clonedCommonContext() {
|
|
20
|
+
return (0, _utils.extend2Lev)({}, {
|
|
21
|
+
context: globalContextManager.get(),
|
|
22
|
+
user: user
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
|
|
14
26
|
var rumGlobal = {
|
|
15
27
|
init: function init(Vue, userConfiguration) {
|
|
16
28
|
if (typeof userConfiguration === 'undefined') {
|
|
@@ -23,8 +35,29 @@ var makeRum = function makeRum(startRumImpl) {
|
|
|
23
35
|
return;
|
|
24
36
|
}
|
|
25
37
|
|
|
26
|
-
startRumImpl(Vue, userConfiguration)
|
|
38
|
+
startRumImpl(Vue, userConfiguration, function () {
|
|
39
|
+
return {
|
|
40
|
+
user: user,
|
|
41
|
+
context: globalContextManager.get()
|
|
42
|
+
};
|
|
43
|
+
});
|
|
27
44
|
isAlreadyInitialized = true;
|
|
45
|
+
},
|
|
46
|
+
addRumGlobalContext: globalContextManager.add,
|
|
47
|
+
removeRumGlobalContext: globalContextManager.remove,
|
|
48
|
+
getRumGlobalContext: globalContextManager.get,
|
|
49
|
+
setRumGlobalContext: globalContextManager.set,
|
|
50
|
+
setUser: function setUser(newUser) {
|
|
51
|
+
var sanitizedUser = sanitizeUser(newUser);
|
|
52
|
+
|
|
53
|
+
if (sanitizedUser) {
|
|
54
|
+
user = sanitizedUser;
|
|
55
|
+
} else {
|
|
56
|
+
console.error('Unsupported user:', newUser);
|
|
57
|
+
}
|
|
58
|
+
},
|
|
59
|
+
removeUser: function removeUser() {
|
|
60
|
+
user = {};
|
|
28
61
|
}
|
|
29
62
|
};
|
|
30
63
|
return rumGlobal;
|
|
@@ -52,6 +85,28 @@ var makeRum = function makeRum(startRumImpl) {
|
|
|
52
85
|
|
|
53
86
|
return true;
|
|
54
87
|
}
|
|
88
|
+
|
|
89
|
+
function sanitizeUser(newUser) {
|
|
90
|
+
if (_typeof(newUser) !== 'object' || !newUser) {
|
|
91
|
+
return;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
var result = (0, _utils.extend2Lev)({}, newUser);
|
|
95
|
+
|
|
96
|
+
if ('id' in result) {
|
|
97
|
+
result.id = String(result.id);
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
if ('name' in result) {
|
|
101
|
+
result.name = String(result.name);
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
if ('email' in result) {
|
|
105
|
+
result.email = String(result.email);
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
return result;
|
|
109
|
+
}
|
|
55
110
|
};
|
|
56
111
|
|
|
57
112
|
exports.makeRum = makeRum;
|
package/cjs/boot/rum.js
CHANGED
|
@@ -35,12 +35,12 @@ var _actionCollection = require("../rumEventsCollection/action/actionCollection"
|
|
|
35
35
|
|
|
36
36
|
var _sdk = require("../core/sdk");
|
|
37
37
|
|
|
38
|
-
var startRum = function startRum(Vue, userConfiguration) {
|
|
38
|
+
var startRum = function startRum(Vue, userConfiguration, getCommonContext) {
|
|
39
39
|
var configuration = (0, _configuration.commonInit)(userConfiguration, _buildEnv.buildEnv);
|
|
40
40
|
var lifeCycle = new _lifeCycle.LifeCycle();
|
|
41
41
|
var parentContexts = (0, _parentContexts.startParentContexts)(lifeCycle);
|
|
42
42
|
var batch = (0, _batch.startRumBatch)(configuration, lifeCycle);
|
|
43
|
-
(0, _assembly.startRumAssembly)(userConfiguration.applicationId, configuration, lifeCycle, parentContexts);
|
|
43
|
+
(0, _assembly.startRumAssembly)(userConfiguration.applicationId, configuration, lifeCycle, parentContexts, getCommonContext);
|
|
44
44
|
(0, _appCollection.startAppCollection)(lifeCycle, configuration);
|
|
45
45
|
(0, _resourceCollection.startResourceCollection)(lifeCycle, configuration);
|
|
46
46
|
(0, _viewCollection.startViewCollection)(lifeCycle, configuration, Vue);
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.BoundedBuffer = void 0;
|
|
7
|
+
|
|
8
|
+
var _BoundedBuffer = function _BoundedBuffer() {
|
|
9
|
+
this.buffer = [];
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
_BoundedBuffer.prototype = {
|
|
13
|
+
add: function add(item) {
|
|
14
|
+
var length = this.buffer.push(item);
|
|
15
|
+
|
|
16
|
+
if (length > this.limit) {
|
|
17
|
+
this.buffer.splice(0, 1);
|
|
18
|
+
}
|
|
19
|
+
},
|
|
20
|
+
drain: function drain(fn) {
|
|
21
|
+
this.buffer.forEach(function (item) {
|
|
22
|
+
fn(item);
|
|
23
|
+
});
|
|
24
|
+
this.buffer.length = 0;
|
|
25
|
+
}
|
|
26
|
+
};
|
|
27
|
+
var BoundedBuffer = _BoundedBuffer;
|
|
28
|
+
exports.BoundedBuffer = BoundedBuffer;
|
|
@@ -34,7 +34,11 @@ var DEFAULT_CONFIGURATION = {
|
|
|
34
34
|
* arbitrary value, byte precision not needed
|
|
35
35
|
*/
|
|
36
36
|
requestErrorResponseLengthLimit: 32 * _enums.ONE_KILO_BYTE,
|
|
37
|
-
trackInteractions: false
|
|
37
|
+
trackInteractions: false,
|
|
38
|
+
traceType: _enums.TraceType.DDTRACE,
|
|
39
|
+
traceId128Bit: false,
|
|
40
|
+
allowedTracingOrigins: [] // 新增
|
|
41
|
+
|
|
38
42
|
};
|
|
39
43
|
exports.DEFAULT_CONFIGURATION = DEFAULT_CONFIGURATION;
|
|
40
44
|
|
|
@@ -62,9 +66,26 @@ function commonInit(userConfiguration, buildEnv) {
|
|
|
62
66
|
transportConfiguration.trackInteractions = !!userConfiguration.trackInteractions;
|
|
63
67
|
}
|
|
64
68
|
|
|
69
|
+
if ('allowedTracingOrigins' in userConfiguration) {
|
|
70
|
+
transportConfiguration.allowedTracingOrigins = userConfiguration.allowedTracingOrigins;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
if ('traceId128Bit' in userConfiguration) {
|
|
74
|
+
transportConfiguration.traceId128Bit = !!userConfiguration.traceId128Bit;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
if ('traceType' in userConfiguration && hasTraceType(userConfiguration.traceType)) {
|
|
78
|
+
transportConfiguration.traceType = userConfiguration.traceType;
|
|
79
|
+
}
|
|
80
|
+
|
|
65
81
|
return (0, _utils.extend2Lev)(DEFAULT_CONFIGURATION, transportConfiguration);
|
|
66
82
|
}
|
|
67
83
|
|
|
84
|
+
function hasTraceType(traceType) {
|
|
85
|
+
if (traceType && (0, _utils.values)(_enums.TraceType).indexOf(traceType) > -1) return true;
|
|
86
|
+
return false;
|
|
87
|
+
}
|
|
88
|
+
|
|
68
89
|
var haveSameOrigin = function haveSameOrigin(url1, url2) {
|
|
69
90
|
var parseUrl1 = (0, _utils.urlParse)(url1).getParse();
|
|
70
91
|
var parseUrl2 = (0, _utils.urlParse)(url2).getParse();
|
package/cjs/core/dataMap.js
CHANGED
|
@@ -14,7 +14,9 @@ var commonTags = {
|
|
|
14
14
|
app_id: 'application.id',
|
|
15
15
|
env: '_dd.env',
|
|
16
16
|
version: '_dd.version',
|
|
17
|
-
userid: 'user.
|
|
17
|
+
userid: 'user.id',
|
|
18
|
+
user_email: 'user.email',
|
|
19
|
+
user_name: 'user.name',
|
|
18
20
|
session_id: 'session.id',
|
|
19
21
|
session_type: 'session.type',
|
|
20
22
|
is_signin: 'user.is_signin',
|
|
@@ -59,6 +61,8 @@ var dataMap = {
|
|
|
59
61
|
resource: {
|
|
60
62
|
type: _enums.RumEventType.RESOURCE,
|
|
61
63
|
tags: {
|
|
64
|
+
trace_id: '_dd.trace_id',
|
|
65
|
+
span_id: '_dd.span_id',
|
|
62
66
|
resource_type: 'resource.type',
|
|
63
67
|
resource_status: 'resource.status',
|
|
64
68
|
resource_status_group: 'resource.status_group',
|
package/cjs/core/transport.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.Batch = exports.HttpRequest = void 0;
|
|
6
|
+
exports.Batch = exports.processedMessageByDataMap = exports.HttpRequest = void 0;
|
|
7
7
|
|
|
8
8
|
var _utils = require("../helper/utils");
|
|
9
9
|
|
|
@@ -13,8 +13,11 @@ var _lifeCycle = require("../core/lifeCycle");
|
|
|
13
13
|
|
|
14
14
|
var _dataMap = require("./dataMap");
|
|
15
15
|
|
|
16
|
+
var _enums = require("../helper/enums");
|
|
17
|
+
|
|
16
18
|
// https://en.wikipedia.org/wiki/UTF-8
|
|
17
19
|
var HAS_MULTI_BYTES_CHARACTERS = /[^\u0000-\u007F]/;
|
|
20
|
+
var CUSTOM_KEYS = 'custom_keys';
|
|
18
21
|
|
|
19
22
|
function addBatchPrecision(url) {
|
|
20
23
|
if (!url) return url;
|
|
@@ -43,6 +46,124 @@ httpRequest.prototype = {
|
|
|
43
46
|
var HttpRequest = httpRequest;
|
|
44
47
|
exports.HttpRequest = HttpRequest;
|
|
45
48
|
|
|
49
|
+
var processedMessageByDataMap = function processedMessageByDataMap(message) {
|
|
50
|
+
if (!message || !message.type) return {
|
|
51
|
+
rowStr: '',
|
|
52
|
+
rowData: undefined
|
|
53
|
+
};
|
|
54
|
+
var rowData = {
|
|
55
|
+
tags: {},
|
|
56
|
+
fields: {}
|
|
57
|
+
};
|
|
58
|
+
var hasFileds = false;
|
|
59
|
+
var rowStr = '';
|
|
60
|
+
(0, _utils.each)(_dataMap.dataMap, function (value, key) {
|
|
61
|
+
if (value.type === message.type) {
|
|
62
|
+
if (value.alias_key) {
|
|
63
|
+
rowStr += value.alias_key + ',';
|
|
64
|
+
} else {
|
|
65
|
+
rowStr += key + ',';
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
rowData.measurement = key;
|
|
69
|
+
var tagsStr = [];
|
|
70
|
+
var tags = (0, _utils.extend)({}, _dataMap.commonTags, value.tags);
|
|
71
|
+
var filterFileds = ['date', 'type']; // 已经在datamap中定义过的fields和tags
|
|
72
|
+
|
|
73
|
+
(0, _utils.each)(tags, function (value_path, _key) {
|
|
74
|
+
var _value = (0, _utils.findByPath)(message, value_path);
|
|
75
|
+
|
|
76
|
+
filterFileds.push(_key);
|
|
77
|
+
|
|
78
|
+
if (_value || (0, _utils.isNumber)(_value)) {
|
|
79
|
+
rowData.tags[_key] = _value;
|
|
80
|
+
tagsStr.push((0, _utils.escapeRowData)(_key) + '=' + (0, _utils.escapeRowData)(_value));
|
|
81
|
+
}
|
|
82
|
+
});
|
|
83
|
+
|
|
84
|
+
if (message.tags && (0, _utils.isObject)(message.tags) && !(0, _utils.isEmptyObject)(message.tags)) {
|
|
85
|
+
// 自定义tag
|
|
86
|
+
var _tagKeys = [];
|
|
87
|
+
(0, _utils.each)(message.tags, function (_value, _key) {
|
|
88
|
+
// 如果和之前tag重名,则舍弃
|
|
89
|
+
if (filterFileds.indexOf(_key) > -1) return;
|
|
90
|
+
filterFileds.push(_key);
|
|
91
|
+
|
|
92
|
+
if (_value || (0, _utils.isNumber)(_value)) {
|
|
93
|
+
_tagKeys.push(_key);
|
|
94
|
+
|
|
95
|
+
rowData.tags[_key] = _value;
|
|
96
|
+
tagsStr.push((0, _utils.escapeRowData)(_key) + '=' + (0, _utils.escapeRowData)(_value));
|
|
97
|
+
}
|
|
98
|
+
});
|
|
99
|
+
|
|
100
|
+
if (_tagKeys.length) {
|
|
101
|
+
rowData.tags[CUSTOM_KEYS] = _tagKeys;
|
|
102
|
+
tagsStr.push((0, _utils.escapeRowData)(CUSTOM_KEYS) + '=' + (0, _utils.escapeRowData)(_tagKeys));
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
var fieldsStr = [];
|
|
107
|
+
(0, _utils.each)(value.fields, function (_value, _key) {
|
|
108
|
+
if ((0, _utils.isArray)(_value) && _value.length === 2) {
|
|
109
|
+
var type = _value[0],
|
|
110
|
+
value_path = _value[1];
|
|
111
|
+
|
|
112
|
+
var _valueData = (0, _utils.findByPath)(message, value_path);
|
|
113
|
+
|
|
114
|
+
filterFileds.push(_key);
|
|
115
|
+
|
|
116
|
+
if (_valueData || (0, _utils.isNumber)(_valueData)) {
|
|
117
|
+
rowData.fields[_key] = _valueData; // 这里不需要转译
|
|
118
|
+
|
|
119
|
+
_valueData = type === 'string' ? '"' + _valueData.replace(/[\\]*"/g, '"').replace(/"/g, '\\"') + '"' : (0, _utils.escapeRowData)(_valueData);
|
|
120
|
+
fieldsStr.push((0, _utils.escapeRowData)(_key) + '=' + _valueData);
|
|
121
|
+
}
|
|
122
|
+
} else if ((0, _utils.isString)(_value)) {
|
|
123
|
+
var _valueData = (0, _utils.findByPath)(message, _value);
|
|
124
|
+
|
|
125
|
+
filterFileds.push(_key);
|
|
126
|
+
|
|
127
|
+
if (_valueData || (0, _utils.isNumber)(_valueData)) {
|
|
128
|
+
rowData.fields[_key] = _valueData; // 这里不需要转译
|
|
129
|
+
|
|
130
|
+
_valueData = (0, _utils.escapeRowData)(_valueData);
|
|
131
|
+
fieldsStr.push((0, _utils.escapeRowData)(_key) + '=' + _valueData);
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
});
|
|
135
|
+
|
|
136
|
+
if (message.type === _enums.RumEventType.LOGGER) {
|
|
137
|
+
// 这里处理日志类型数据自定义字段
|
|
138
|
+
(0, _utils.each)(message, function (value, key) {
|
|
139
|
+
if (filterFileds.indexOf(key) === -1 && ((0, _utils.isNumber)(value) || (0, _utils.isString)(value) || (0, _utils.isBoolean)(value))) {
|
|
140
|
+
tagsStr.push((0, _utils.escapeRowData)(key) + '=' + (0, _utils.escapeRowData)(value));
|
|
141
|
+
}
|
|
142
|
+
});
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
if (tagsStr.length) {
|
|
146
|
+
rowStr += tagsStr.join(',');
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
if (fieldsStr.length) {
|
|
150
|
+
rowStr += ' ';
|
|
151
|
+
rowStr += fieldsStr.join(',');
|
|
152
|
+
hasFileds = true;
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
rowStr = rowStr + ' ' + message.date;
|
|
156
|
+
rowData.time = (0, _utils.toServerDuration)(message.date); // 这里不需要转译
|
|
157
|
+
}
|
|
158
|
+
});
|
|
159
|
+
return {
|
|
160
|
+
rowStr: hasFileds ? rowStr : '',
|
|
161
|
+
rowData: hasFileds ? rowData : undefined
|
|
162
|
+
};
|
|
163
|
+
};
|
|
164
|
+
|
|
165
|
+
exports.processedMessageByDataMap = processedMessageByDataMap;
|
|
166
|
+
|
|
46
167
|
function batch(request, maxSize, bytesLimit, maxMessageSize, flushTimeout, lifeCycle) {
|
|
47
168
|
this.request = request;
|
|
48
169
|
this.maxSize = maxSize;
|
|
@@ -76,74 +197,7 @@ batch.prototype = {
|
|
|
76
197
|
}
|
|
77
198
|
},
|
|
78
199
|
processSendData: function processSendData(message) {
|
|
79
|
-
|
|
80
|
-
if (!message || !message.type) return '';
|
|
81
|
-
var rowStr = '';
|
|
82
|
-
var hasFileds = false;
|
|
83
|
-
(0, _utils.each)(_dataMap.dataMap, function (value, key) {
|
|
84
|
-
if (value.type === message.type) {
|
|
85
|
-
// 做一下别名处理
|
|
86
|
-
if (value.alias_key) {
|
|
87
|
-
rowStr += value.alias_key + ',';
|
|
88
|
-
} else {
|
|
89
|
-
rowStr += key + ',';
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
var tagsStr = [];
|
|
93
|
-
var tags = (0, _utils.extend)({}, _dataMap.commonTags, value.tags);
|
|
94
|
-
(0, _utils.each)(tags, function (value_path, _key) {
|
|
95
|
-
var _value = (0, _utils.findByPath)(message, value_path);
|
|
96
|
-
|
|
97
|
-
if (_value || (0, _utils.isNumber)(_value)) {
|
|
98
|
-
tagsStr.push((0, _utils.escapeRowData)(_key) + '=' + (0, _utils.escapeRowData)(_value));
|
|
99
|
-
}
|
|
100
|
-
});
|
|
101
|
-
|
|
102
|
-
if (message.tags.length) {
|
|
103
|
-
// 自定义tag
|
|
104
|
-
(0, _utils.each)(message.tags, function (_value, _key) {
|
|
105
|
-
if (_value || (0, _utils.isNumber)(_value)) {
|
|
106
|
-
tagsStr.push((0, _utils.escapeRowData)(_key) + '=' + (0, _utils.escapeRowData)(_value));
|
|
107
|
-
}
|
|
108
|
-
});
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
var fieldsStr = [];
|
|
112
|
-
(0, _utils.each)(value.fields, function (_value, _key) {
|
|
113
|
-
if (Array.isArray(_value) && _value.length === 2) {
|
|
114
|
-
var type = _value[0],
|
|
115
|
-
value_path = _value[1];
|
|
116
|
-
|
|
117
|
-
var _valueData = (0, _utils.findByPath)(message, value_path);
|
|
118
|
-
|
|
119
|
-
if (_valueData || (0, _utils.isNumber)(_valueData)) {
|
|
120
|
-
_valueData = type === 'string' ? '"' + String(_valueData).replace(/[\\]*"/g, '"').replace(/"/g, '\\"') + '"' : (0, _utils.escapeRowData)(_valueData);
|
|
121
|
-
fieldsStr.push((0, _utils.escapeRowData)(_key) + '=' + _valueData);
|
|
122
|
-
}
|
|
123
|
-
} else if ((0, _utils.isString)(_value)) {
|
|
124
|
-
var _valueData = (0, _utils.findByPath)(message, _value);
|
|
125
|
-
|
|
126
|
-
if (_valueData || (0, _utils.isNumber)(_valueData)) {
|
|
127
|
-
_valueData = (0, _utils.escapeRowData)(_valueData);
|
|
128
|
-
fieldsStr.push((0, _utils.escapeRowData)(_key) + '=' + _valueData);
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
});
|
|
132
|
-
|
|
133
|
-
if (tagsStr.length) {
|
|
134
|
-
rowStr += tagsStr.join(',');
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
if (fieldsStr.length) {
|
|
138
|
-
rowStr += ' ';
|
|
139
|
-
rowStr += fieldsStr.join(',');
|
|
140
|
-
hasFileds = true;
|
|
141
|
-
}
|
|
142
|
-
|
|
143
|
-
rowStr = rowStr + ' ' + message.date;
|
|
144
|
-
}
|
|
145
|
-
});
|
|
146
|
-
return hasFileds ? rowStr : '';
|
|
200
|
+
return processedMessageByDataMap(message).rowStr;
|
|
147
201
|
},
|
|
148
202
|
sizeInBytes: function sizeInBytes(candidate) {
|
|
149
203
|
// Accurate byte size computations can degrade performances when there is a lot of events to process
|
package/cjs/core/xhrProxy.js
CHANGED
|
@@ -53,7 +53,8 @@ function proxyXhr() {
|
|
|
53
53
|
startTime: 0,
|
|
54
54
|
url: arguments[0].url,
|
|
55
55
|
type: _enums.RequestType.XHR,
|
|
56
|
-
responseType: arguments[0].responseType || 'text'
|
|
56
|
+
responseType: arguments[0].responseType || 'text',
|
|
57
|
+
option: arguments[0]
|
|
57
58
|
};
|
|
58
59
|
dataflux_xhr.startTime = (0, _utils.now)();
|
|
59
60
|
var originalSuccess = arguments[0].success;
|
|
@@ -97,6 +98,6 @@ function proxyXhr() {
|
|
|
97
98
|
beforeSendCallbacks.forEach(function (callback) {
|
|
98
99
|
callback(dataflux_xhr);
|
|
99
100
|
});
|
|
100
|
-
return originalXhrRequest.
|
|
101
|
+
return originalXhrRequest.call(this, dataflux_xhr.option);
|
|
101
102
|
};
|
|
102
103
|
}
|
package/cjs/helper/enums.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.MpHook = exports.ActionType = exports.RequestType = exports.RumEventType = exports.CLIENT_ID_TOKEN = exports.ONE_KILO_BYTE = exports.ONE_HOUR = exports.ONE_MINUTE = exports.ONE_SECOND = void 0;
|
|
6
|
+
exports.TraceType = exports.MpHook = exports.ActionType = exports.RequestType = exports.RumEventType = exports.CLIENT_ID_TOKEN = exports.ONE_KILO_BYTE = exports.ONE_HOUR = exports.ONE_MINUTE = exports.ONE_SECOND = void 0;
|
|
7
7
|
|
|
8
8
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
9
9
|
|
|
@@ -52,4 +52,13 @@ var MpHook = {
|
|
|
52
52
|
onHide: 1,
|
|
53
53
|
onUnload: 1
|
|
54
54
|
};
|
|
55
|
-
exports.MpHook = MpHook;
|
|
55
|
+
exports.MpHook = MpHook;
|
|
56
|
+
var TraceType = {
|
|
57
|
+
DDTRACE: 'ddtrace',
|
|
58
|
+
ZIPKIN_MULTI_HEADER: 'zipkin',
|
|
59
|
+
ZIPKIN_SINGLE_HEADER: 'zipkin_single_header',
|
|
60
|
+
W3C_TRACEPARENT: 'w3c_traceparent',
|
|
61
|
+
SKYWALKING_V3: 'skywalking_v3',
|
|
62
|
+
JAEGER: 'jaeger'
|
|
63
|
+
};
|
|
64
|
+
exports.TraceType = TraceType;
|
package/cjs/helper/utils.js
CHANGED
|
@@ -4,6 +4,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.round = round;
|
|
7
|
+
exports.toServerDuration = toServerDuration;
|
|
7
8
|
exports.msToNs = msToNs;
|
|
8
9
|
exports.UUID = UUID;
|
|
9
10
|
exports.jsonStringify = jsonStringify;
|
|
@@ -19,7 +20,10 @@ exports.withSnakeCaseKeys = withSnakeCaseKeys;
|
|
|
19
20
|
exports.deepSnakeCase = deepSnakeCase;
|
|
20
21
|
exports.toSnakeCase = toSnakeCase;
|
|
21
22
|
exports.escapeRowData = escapeRowData;
|
|
22
|
-
exports.
|
|
23
|
+
exports.getOrigin = getOrigin;
|
|
24
|
+
exports.createContextManager = createContextManager;
|
|
25
|
+
exports.getActivePage = getActivePage;
|
|
26
|
+
exports.deepMixObject = exports.defineObject = exports.getOwnObjectKeys = exports.urlParse = exports.throttle = exports.now = exports.safeJSONParse = exports.isJSONString = exports.isEmptyObject = exports.isObject = exports.trim = exports.extend2Lev = exports.extend = exports.getURLSearchParams = exports.getQueryParamsFromUrl = exports.base64Encode = exports.utf8Encode = exports.areInOrder = exports.toArray = exports.isArray = exports.isNumber = exports.isBoolean = exports.isDate = exports.isString = exports.isUndefined = exports.values = exports.each = exports.isArguments = void 0;
|
|
23
27
|
|
|
24
28
|
var _enums = require("./enums");
|
|
25
29
|
|
|
@@ -32,6 +36,7 @@ var hasOwnProperty = ObjProto.hasOwnProperty;
|
|
|
32
36
|
var slice = ArrayProto.slice;
|
|
33
37
|
var toString = ObjProto.toString;
|
|
34
38
|
var nativeForEach = ArrayProto.forEach;
|
|
39
|
+
var nativeIsArray = Array.isArray;
|
|
35
40
|
var breaker = false;
|
|
36
41
|
|
|
37
42
|
var isArguments = function isArguments(obj) {
|
|
@@ -83,6 +88,14 @@ function round(num, decimals) {
|
|
|
83
88
|
return +num.toFixed(decimals);
|
|
84
89
|
}
|
|
85
90
|
|
|
91
|
+
function toServerDuration(duration) {
|
|
92
|
+
if (!isNumber(duration)) {
|
|
93
|
+
return duration;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
return round(duration * 1e6, 0);
|
|
97
|
+
}
|
|
98
|
+
|
|
86
99
|
function msToNs(duration) {
|
|
87
100
|
if (typeof duration !== 'number') {
|
|
88
101
|
return duration;
|
|
@@ -121,6 +134,12 @@ var isNumber = function isNumber(obj) {
|
|
|
121
134
|
|
|
122
135
|
exports.isNumber = isNumber;
|
|
123
136
|
|
|
137
|
+
var isArray = nativeIsArray || function (obj) {
|
|
138
|
+
return toString.call(obj) === '[object Array]';
|
|
139
|
+
};
|
|
140
|
+
|
|
141
|
+
exports.isArray = isArray;
|
|
142
|
+
|
|
124
143
|
var toArray = function toArray(iterable) {
|
|
125
144
|
if (!iterable) return [];
|
|
126
145
|
|
|
@@ -210,6 +229,98 @@ function jsonStringify(value, replacer, space) {
|
|
|
210
229
|
return result;
|
|
211
230
|
}
|
|
212
231
|
|
|
232
|
+
var utf8Encode = function utf8Encode(string) {
|
|
233
|
+
string = (string + '').replace(/\r\n/g, '\n').replace(/\r/g, '\n');
|
|
234
|
+
var utftext = '',
|
|
235
|
+
start,
|
|
236
|
+
end;
|
|
237
|
+
var stringl = 0,
|
|
238
|
+
n;
|
|
239
|
+
start = end = 0;
|
|
240
|
+
stringl = string.length;
|
|
241
|
+
|
|
242
|
+
for (n = 0; n < stringl; n++) {
|
|
243
|
+
var c1 = string.charCodeAt(n);
|
|
244
|
+
var enc = null;
|
|
245
|
+
|
|
246
|
+
if (c1 < 128) {
|
|
247
|
+
end++;
|
|
248
|
+
} else if (c1 > 127 && c1 < 2048) {
|
|
249
|
+
enc = String.fromCharCode(c1 >> 6 | 192, c1 & 63 | 128);
|
|
250
|
+
} else {
|
|
251
|
+
enc = String.fromCharCode(c1 >> 12 | 224, c1 >> 6 & 63 | 128, c1 & 63 | 128);
|
|
252
|
+
}
|
|
253
|
+
|
|
254
|
+
if (enc !== null) {
|
|
255
|
+
if (end > start) {
|
|
256
|
+
utftext += string.substring(start, end);
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
utftext += enc;
|
|
260
|
+
start = end = n + 1;
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
|
|
264
|
+
if (end > start) {
|
|
265
|
+
utftext += string.substring(start, string.length);
|
|
266
|
+
}
|
|
267
|
+
|
|
268
|
+
return utftext;
|
|
269
|
+
};
|
|
270
|
+
|
|
271
|
+
exports.utf8Encode = utf8Encode;
|
|
272
|
+
|
|
273
|
+
var base64Encode = function base64Encode(data) {
|
|
274
|
+
data = String(data);
|
|
275
|
+
var b64 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';
|
|
276
|
+
var o1,
|
|
277
|
+
o2,
|
|
278
|
+
o3,
|
|
279
|
+
h1,
|
|
280
|
+
h2,
|
|
281
|
+
h3,
|
|
282
|
+
h4,
|
|
283
|
+
bits,
|
|
284
|
+
i = 0,
|
|
285
|
+
ac = 0,
|
|
286
|
+
enc = '',
|
|
287
|
+
tmp_arr = [];
|
|
288
|
+
|
|
289
|
+
if (!data) {
|
|
290
|
+
return data;
|
|
291
|
+
}
|
|
292
|
+
|
|
293
|
+
data = utf8Encode(data);
|
|
294
|
+
|
|
295
|
+
do {
|
|
296
|
+
o1 = data.charCodeAt(i++);
|
|
297
|
+
o2 = data.charCodeAt(i++);
|
|
298
|
+
o3 = data.charCodeAt(i++);
|
|
299
|
+
bits = o1 << 16 | o2 << 8 | o3;
|
|
300
|
+
h1 = bits >> 18 & 0x3f;
|
|
301
|
+
h2 = bits >> 12 & 0x3f;
|
|
302
|
+
h3 = bits >> 6 & 0x3f;
|
|
303
|
+
h4 = bits & 0x3f;
|
|
304
|
+
tmp_arr[ac++] = b64.charAt(h1) + b64.charAt(h2) + b64.charAt(h3) + b64.charAt(h4);
|
|
305
|
+
} while (i < data.length);
|
|
306
|
+
|
|
307
|
+
enc = tmp_arr.join('');
|
|
308
|
+
|
|
309
|
+
switch (data.length % 3) {
|
|
310
|
+
case 1:
|
|
311
|
+
enc = enc.slice(0, -2) + '==';
|
|
312
|
+
break;
|
|
313
|
+
|
|
314
|
+
case 2:
|
|
315
|
+
enc = enc.slice(0, -1) + '=';
|
|
316
|
+
break;
|
|
317
|
+
}
|
|
318
|
+
|
|
319
|
+
return enc;
|
|
320
|
+
};
|
|
321
|
+
|
|
322
|
+
exports.base64Encode = base64Encode;
|
|
323
|
+
|
|
213
324
|
function hasToJSON(value) {
|
|
214
325
|
return _typeof(value) === 'object' && value !== null && value.hasOwnProperty('toJSON');
|
|
215
326
|
}
|
|
@@ -482,7 +593,12 @@ function toSnakeCase(word) {
|
|
|
482
593
|
}
|
|
483
594
|
|
|
484
595
|
function escapeRowData(str) {
|
|
485
|
-
if (
|
|
596
|
+
if (_typeof(str) === 'object' && str) {
|
|
597
|
+
str = jsonStringify(str);
|
|
598
|
+
} else if (!isString(str)) {
|
|
599
|
+
return str;
|
|
600
|
+
}
|
|
601
|
+
|
|
486
602
|
var reg = /[\s=,"]/g;
|
|
487
603
|
return String(str).replace(reg, function (word) {
|
|
488
604
|
return '\\' + word;
|
|
@@ -553,8 +669,8 @@ var urlParse = function urlParse(para) {
|
|
|
553
669
|
|
|
554
670
|
URLParser.prototype.getUrl = function () {
|
|
555
671
|
var url = '';
|
|
556
|
-
url += this._values.Origin;
|
|
557
|
-
|
|
672
|
+
url += this._values.Origin; // url += this._values.Port ? ':' + this._values.Port : ''
|
|
673
|
+
|
|
558
674
|
url += this._values.Path;
|
|
559
675
|
url += this._values.QueryString ? '?' + this._values.QueryString : '';
|
|
560
676
|
return url;
|
|
@@ -575,8 +691,9 @@ var urlParse = function urlParse(para) {
|
|
|
575
691
|
}
|
|
576
692
|
}
|
|
577
693
|
|
|
694
|
+
this._values['Path'] = this._values['Path'] || '/';
|
|
578
695
|
this._values['Hostname'] = this._values['Host'].replace(/:\d+$/, '');
|
|
579
|
-
this._values['Origin'] = this._values['Protocol'] + '://' + this._values['Hostname'];
|
|
696
|
+
this._values['Origin'] = this._values['Protocol'] + '://' + this._values['Hostname'] + (this._values.Port ? ':' + this._values.Port : '');
|
|
580
697
|
};
|
|
581
698
|
|
|
582
699
|
return new URLParser(para);
|
|
@@ -643,4 +760,44 @@ var deepMixObject = function deepMixObject(targetObj) {
|
|
|
643
760
|
return targetObj;
|
|
644
761
|
};
|
|
645
762
|
|
|
646
|
-
exports.deepMixObject = deepMixObject;
|
|
763
|
+
exports.deepMixObject = deepMixObject;
|
|
764
|
+
|
|
765
|
+
function getOrigin(url) {
|
|
766
|
+
return urlParse(url).getParse().Origin;
|
|
767
|
+
}
|
|
768
|
+
|
|
769
|
+
function createContextManager() {
|
|
770
|
+
var context = {};
|
|
771
|
+
return {
|
|
772
|
+
get: function get() {
|
|
773
|
+
return context;
|
|
774
|
+
},
|
|
775
|
+
add: function add(key, value) {
|
|
776
|
+
if (isString(key)) {
|
|
777
|
+
context[key] = value;
|
|
778
|
+
} else {
|
|
779
|
+
console.error('key 需要传递字符串类型');
|
|
780
|
+
}
|
|
781
|
+
},
|
|
782
|
+
remove: function remove(key) {
|
|
783
|
+
delete context[key];
|
|
784
|
+
},
|
|
785
|
+
set: function set(newContext) {
|
|
786
|
+
if (isObject(newContext)) {
|
|
787
|
+
context = newContext;
|
|
788
|
+
} else {
|
|
789
|
+
console.error('content 需要传递对象类型数据');
|
|
790
|
+
}
|
|
791
|
+
}
|
|
792
|
+
};
|
|
793
|
+
}
|
|
794
|
+
|
|
795
|
+
function getActivePage() {
|
|
796
|
+
var curPages = typeof getCurrentPages === 'function' ? getCurrentPages() : [];
|
|
797
|
+
|
|
798
|
+
if (curPages.length) {
|
|
799
|
+
return curPages[curPages.length - 1];
|
|
800
|
+
}
|
|
801
|
+
|
|
802
|
+
return {};
|
|
803
|
+
}
|