@cloudcare/rum-uniapp 2.1.11 → 2.1.13

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/README.md CHANGED
@@ -37,18 +37,19 @@ datafluxRum.init({
37
37
 
38
38
  ### 初始化参数
39
39
 
40
- | 参数 | 类型 | 是否必须 | 默认值 | 描述 |
41
- | ----------------------------------------------- | ------- | -------- | --------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
42
- | `applicationId` | String | 是 | | 从 dataflux 创建的应用 ID |
43
- | `datakitOrigin` | String | 是 | | datakit 数据上报 Origin;`注意:需要在小程序管理后台加上request白名单` |
44
- | `env` | String | 否 | | 小程序 应用当前环境, 如 prod:线上环境;gray:灰度环境;pre:预发布环境 common:日常环境;local:本地环境; |
45
- | `service` | String | 否 | | 小程序应用 服务名称,可 用于 apm 关联 tag |
46
- | `version` | String | 否 | | 小程序 应用的版本号 |
47
- | `sampleRate` | Number | 否 | `100` | 指标数据收集百分比: `100`表示全收集,`0`表示不收集 |
48
- | `traceType` $\color{#FF0000}{新增}$ | Enum | 否 | `ddtrace` | 与 APM 采集工具连接的请求header类型,目前兼容的类型包括:`ddtrace`、`zipkin`、`skywalking_v3`、`jaeger`、`zipkin_single_header`、`w3c_traceparent`。*注: opentelemetry 支持 `zipkin_single_header`,`w3c_traceparent`,`zipkin`三种类型* |
49
- | `traceId128Bit` $\color{#FF0000}{新增}$ | Boolean | 否 | `false` | 是否以128位的方式生成 `traceID`,与`traceType` 对应,目前支持类型 `zipkin`、`jaeger` |
50
- | `allowedTracingOrigins` $\color{#FF0000}{新增}$ | Array | 否 | `[]` | 允许注入 `trace` 采集器所需header头部的所有请求列表。可以是请求的origin,也可以是是正则,origin: `协议(包括://),域名(或IP地址)[和端口号]` 例如:`["https://api.example.com", /https:\/\/.*\.my-api-domain\.com/]` |
51
- | `trackInteractions` | Boolean | 否 | `false` | 是否开启用户行为采集 |
40
+ | 参数 | 类型 | 是否必须 | 默认值 | 描述 |
41
+ | ----------------------------------------------- | -------- | -------- | ------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
42
+ | `applicationId` | String | 是 | | 从 dataflux 创建的应用 ID |
43
+ | `datakitOrigin` | String | 是 | | datakit 数据上报 Origin;`注意:需要在小程序管理后台加上request白名单` |
44
+ | `env` | String | 否 | | 小程序 应用当前环境, 如 prod:线上环境;gray:灰度环境;pre:预发布环境 common:日常环境;local:本地环境; |
45
+ | `service` | String | 否 | | 小程序应用 服务名称,可 用于 apm 关联 tag |
46
+ | `version` | String | 否 | | 小程序 应用的版本号 |
47
+ | `sampleRate` | Number | 否 | `100` | 指标数据收集百分比: `100`表示全收集,`0`表示不收集 |
48
+ | `traceType` $\color{#FF0000}{新增}$ | Enum | 否 | `ddtrace` | 与 APM 采集工具连接的请求header类型,目前兼容的类型包括:`ddtrace`、`zipkin`、`skywalking_v3`、`jaeger`、`zipkin_single_header`、`w3c_traceparent`。*注: opentelemetry 支持 `zipkin_single_header`,`w3c_traceparent`,`zipkin`三种类型* |
49
+ | `traceId128Bit` $\color{#FF0000}{新增}$ | Boolean | 否 | `false` | 是否以128位的方式生成 `traceID`,与`traceType` 对应,目前支持类型 `zipkin`、`jaeger` |
50
+ | `allowedTracingOrigins` $\color{#FF0000}{新增}$ | Array | 否 | `[]` | 允许注入 `trace` 采集器所需header头部的所有请求列表。可以是请求的origin,也可以是是正则,origin: `协议(包括://),域名(或IP地址)[和端口号]` 例如:`["https://api.example.com", /https:\/\/.*\.my-api-domain\.com/]` |
51
+ | `trackInteractions` | Boolean | 否 | `false` | 是否开启用户行为采集 |
52
+ | `isIntakeUrl` | Function | 否 | `function(url) {return false}` | 自定义方法根据请求资源 url 判断是否需要采集对应资源数据,默认都采集。 返回:`false` 表示要采集,`true` 表示不需要采集 *该参数 方法返回结果必须为 Boolean 类型, 否则认为是无效参数* |
52
53
 
53
54
  ## 注意事项
54
55
 
@@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.buildEnv = void 0;
7
7
  var buildEnv = {
8
- sdkVersion: '2.1.11',
8
+ sdkVersion: '2.1.13',
9
9
  sdkName: 'df_uniapp_rum_sdk'
10
10
  };
11
11
  exports.buildEnv = buildEnv;
@@ -39,7 +39,11 @@ var DEFAULT_CONFIGURATION = {
39
39
  traceId128Bit: false,
40
40
  allowedTracingOrigins: [],
41
41
  // 新增
42
- isVue2: true
42
+ isVue2: true,
43
+ isIntakeUrl: function isIntakeUrl(url) {
44
+ return false;
45
+ } // 自定义方法根据请求资源 url 判断是否需要采集对应资源数据,默认都采集。 返回:false 表示要采集,true 表示不需要采集
46
+
43
47
  };
44
48
  exports.DEFAULT_CONFIGURATION = DEFAULT_CONFIGURATION;
45
49
 
@@ -57,7 +61,7 @@ function commonInit(userConfiguration, buildEnv) {
57
61
  applicationId: userConfiguration.applicationId,
58
62
  env: userConfiguration.env || '',
59
63
  version: userConfiguration.version || '',
60
- service: userConfiguration.service || '',
64
+ service: userConfiguration.service || 'miniapp',
61
65
  sdkVersion: buildEnv.sdkVersion,
62
66
  sdkName: buildEnv.sdkName,
63
67
  datakitUrl: getDatakitUrlUrl(userConfiguration.datakitUrl || userConfiguration.datakitOrigin),
@@ -88,6 +92,10 @@ function commonInit(userConfiguration, buildEnv) {
88
92
  transportConfiguration.isVue2 = userConfiguration.isVue2;
89
93
  }
90
94
 
95
+ if ('isIntakeUrl' in userConfiguration && (0, _utils.isFunction)(userConfiguration.isIntakeUrl) && (0, _utils.isBoolean)(userConfiguration.isIntakeUrl())) {
96
+ transportConfiguration.isIntakeUrl = userConfiguration.isIntakeUrl;
97
+ }
98
+
91
99
  return (0, _utils.extend2Lev)(DEFAULT_CONFIGURATION, transportConfiguration);
92
100
  }
93
101
 
@@ -104,5 +112,5 @@ var haveSameOrigin = function haveSameOrigin(url1, url2) {
104
112
 
105
113
  function isIntakeRequest(url, configuration) {
106
114
  // return haveSameOrigin(url, configuration.datakitUrl)
107
- return url.indexOf(configuration.datakitUrl) === 0;
115
+ return url.indexOf(configuration.datakitUrl) === 0 || configuration.isIntakeUrl(url);
108
116
  }
@@ -29,7 +29,7 @@ exports.getActivePage = getActivePage;
29
29
  exports.findCommaSeparatedValue = findCommaSeparatedValue;
30
30
  exports.defineGlobal = defineGlobal;
31
31
  exports.getGlobalObject = getGlobalObject;
32
- exports.ONE_KILO_BYTE = exports.ONE_HOUR = exports.ONE_MINUTE = exports.ONE_SECOND = 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.indexOf = exports.keys = exports.values = exports.each = exports.isArguments = void 0;
32
+ exports.ONE_KILO_BYTE = exports.ONE_HOUR = exports.ONE_MINUTE = exports.ONE_SECOND = 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.isFunction = exports.isDate = exports.isString = exports.isUndefined = exports.indexOf = exports.keys = exports.values = exports.each = exports.isArguments = void 0;
33
33
 
34
34
  var _enums = require("./enums");
35
35
 
@@ -161,6 +161,20 @@ var isDate = function isDate(obj) {
161
161
 
162
162
  exports.isDate = isDate;
163
163
 
164
+ var isFunction = function isFunction(f) {
165
+ if (!f) {
166
+ return false;
167
+ }
168
+
169
+ try {
170
+ return /^\s*\bfunction\b/.test(f);
171
+ } catch (err) {
172
+ return false;
173
+ }
174
+ };
175
+
176
+ exports.isFunction = isFunction;
177
+
164
178
  var isBoolean = function isBoolean(obj) {
165
179
  return toString.call(obj) === '[object Boolean]';
166
180
  };
@@ -1,4 +1,4 @@
1
1
  export var buildEnv = {
2
- sdkVersion: '2.1.11',
2
+ sdkVersion: '2.1.13',
3
3
  sdkName: 'df_uniapp_rum_sdk'
4
4
  };
@@ -1,4 +1,4 @@
1
- import { extend2Lev, urlParse, values } from '../helper/utils';
1
+ import { extend2Lev, urlParse, values, isFunction, isBoolean } from '../helper/utils';
2
2
  import { ONE_KILO_BYTE, ONE_SECOND, TraceType } from '../helper/enums';
3
3
  var TRIM_REGIX = /^\s+|\s+$/g;
4
4
  export var DEFAULT_CONFIGURATION = {
@@ -28,7 +28,11 @@ export var DEFAULT_CONFIGURATION = {
28
28
  traceId128Bit: false,
29
29
  allowedTracingOrigins: [],
30
30
  // 新增
31
- isVue2: true
31
+ isVue2: true,
32
+ isIntakeUrl: function isIntakeUrl(url) {
33
+ return false;
34
+ } // 自定义方法根据请求资源 url 判断是否需要采集对应资源数据,默认都采集。 返回:false 表示要采集,true 表示不需要采集
35
+
32
36
  };
33
37
 
34
38
  function trim(str) {
@@ -45,7 +49,7 @@ export function commonInit(userConfiguration, buildEnv) {
45
49
  applicationId: userConfiguration.applicationId,
46
50
  env: userConfiguration.env || '',
47
51
  version: userConfiguration.version || '',
48
- service: userConfiguration.service || '',
52
+ service: userConfiguration.service || 'miniapp',
49
53
  sdkVersion: buildEnv.sdkVersion,
50
54
  sdkName: buildEnv.sdkName,
51
55
  datakitUrl: getDatakitUrlUrl(userConfiguration.datakitUrl || userConfiguration.datakitOrigin),
@@ -76,6 +80,10 @@ export function commonInit(userConfiguration, buildEnv) {
76
80
  transportConfiguration.isVue2 = userConfiguration.isVue2;
77
81
  }
78
82
 
83
+ if ('isIntakeUrl' in userConfiguration && isFunction(userConfiguration.isIntakeUrl) && isBoolean(userConfiguration.isIntakeUrl())) {
84
+ transportConfiguration.isIntakeUrl = userConfiguration.isIntakeUrl;
85
+ }
86
+
79
87
  return extend2Lev(DEFAULT_CONFIGURATION, transportConfiguration);
80
88
  }
81
89
 
@@ -92,5 +100,5 @@ var haveSameOrigin = function haveSameOrigin(url1, url2) {
92
100
 
93
101
  export function isIntakeRequest(url, configuration) {
94
102
  // return haveSameOrigin(url, configuration.datakitUrl)
95
- return url.indexOf(configuration.datakitUrl) === 0;
103
+ return url.indexOf(configuration.datakitUrl) === 0 || configuration.isIntakeUrl(url);
96
104
  }
@@ -97,6 +97,17 @@ export var isString = function isString(obj) {
97
97
  export var isDate = function isDate(obj) {
98
98
  return toString.call(obj) === '[object Date]';
99
99
  };
100
+ export var isFunction = function isFunction(f) {
101
+ if (!f) {
102
+ return false;
103
+ }
104
+
105
+ try {
106
+ return /^\s*\bfunction\b/.test(f);
107
+ } catch (err) {
108
+ return false;
109
+ }
110
+ };
100
111
  export var isBoolean = function isBoolean(obj) {
101
112
  return toString.call(obj) === '[object Boolean]';
102
113
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cloudcare/rum-uniapp",
3
- "version": "2.1.11",
3
+ "version": "2.1.13",
4
4
  "main": "cjs/index.js",
5
5
  "module": "esm/index.js",
6
6
  "miniprogram": "cjs",