@webex/internal-plugin-metrics 3.0.0-beta.4 → 3.0.0-beta.400
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 +1 -3
- package/dist/batcher.js +42 -22
- package/dist/batcher.js.map +1 -1
- package/dist/call-diagnostic/call-diagnostic-metrics-batcher.js +65 -0
- package/dist/call-diagnostic/call-diagnostic-metrics-batcher.js.map +1 -0
- package/dist/call-diagnostic/call-diagnostic-metrics-latencies.js +508 -0
- package/dist/call-diagnostic/call-diagnostic-metrics-latencies.js.map +1 -0
- package/dist/call-diagnostic/call-diagnostic-metrics.js +860 -0
- package/dist/call-diagnostic/call-diagnostic-metrics.js.map +1 -0
- package/dist/call-diagnostic/call-diagnostic-metrics.util.js +367 -0
- package/dist/call-diagnostic/call-diagnostic-metrics.util.js.map +1 -0
- package/dist/call-diagnostic/config.js +627 -0
- package/dist/call-diagnostic/config.js.map +1 -0
- package/dist/client-metrics-batcher.js +3 -8
- package/dist/client-metrics-batcher.js.map +1 -1
- package/dist/config.js +23 -6
- package/dist/config.js.map +1 -1
- package/dist/index.js +46 -10
- package/dist/index.js.map +1 -1
- package/dist/metrics.js +47 -80
- package/dist/metrics.js.map +1 -1
- package/dist/metrics.types.js +7 -0
- package/dist/metrics.types.js.map +1 -0
- package/dist/new-metrics.js +300 -0
- package/dist/new-metrics.js.map +1 -0
- package/dist/prelogin-metrics-batcher.js +82 -0
- package/dist/prelogin-metrics-batcher.js.map +1 -0
- package/dist/types/batcher.d.ts +7 -0
- package/dist/types/call-diagnostic/call-diagnostic-metrics-batcher.d.ts +2 -0
- package/dist/types/call-diagnostic/call-diagnostic-metrics-latencies.d.ts +218 -0
- package/dist/types/call-diagnostic/call-diagnostic-metrics.d.ts +421 -0
- package/dist/types/call-diagnostic/call-diagnostic-metrics.util.d.ts +103 -0
- package/dist/types/call-diagnostic/config.d.ts +178 -0
- package/dist/types/client-metrics-batcher.d.ts +2 -0
- package/dist/types/config.d.ts +36 -0
- package/dist/types/index.d.ts +15 -0
- package/dist/types/metrics.d.ts +3 -0
- package/dist/types/metrics.types.d.ts +105 -0
- package/dist/types/new-metrics.d.ts +131 -0
- package/dist/types/prelogin-metrics-batcher.d.ts +2 -0
- package/dist/types/utils.d.ts +6 -0
- package/dist/utils.js +27 -0
- package/dist/utils.js.map +1 -0
- package/package.json +16 -8
- package/src/batcher.js +71 -26
- package/src/call-diagnostic/call-diagnostic-metrics-batcher.ts +72 -0
- package/src/call-diagnostic/call-diagnostic-metrics-latencies.ts +467 -0
- package/src/call-diagnostic/call-diagnostic-metrics.ts +919 -0
- package/src/call-diagnostic/call-diagnostic-metrics.util.ts +395 -0
- package/src/call-diagnostic/config.ts +685 -0
- package/src/client-metrics-batcher.js +4 -4
- package/src/config.js +26 -5
- package/src/index.ts +56 -0
- package/src/metrics.js +47 -58
- package/src/metrics.types.ts +170 -0
- package/src/new-metrics.ts +278 -0
- package/src/prelogin-metrics-batcher.ts +95 -0
- package/src/utils.ts +17 -0
- package/test/unit/spec/batcher.js +28 -15
- package/test/unit/spec/call-diagnostic/call-diagnostic-metrics-batcher.ts +457 -0
- package/test/unit/spec/call-diagnostic/call-diagnostic-metrics-latencies.ts +657 -0
- package/test/unit/spec/call-diagnostic/call-diagnostic-metrics.ts +2303 -0
- package/test/unit/spec/call-diagnostic/call-diagnostic-metrics.util.ts +634 -0
- package/test/unit/spec/client-metrics-batcher.js +28 -15
- package/test/unit/spec/metrics.js +94 -116
- package/test/unit/spec/new-metrics.ts +231 -0
- package/test/unit/spec/prelogin-metrics-batcher.ts +250 -0
- package/test/unit/spec/utils.ts +22 -0
- package/tsconfig.json +6 -0
- package/dist/call-diagnostic-events-batcher.js +0 -70
- package/dist/call-diagnostic-events-batcher.js.map +0 -1
- package/src/call-diagnostic-events-batcher.js +0 -62
- package/src/index.js +0 -17
- package/test/unit/spec/call-diagnostic-events-batcher.js +0 -180
package/README.md
CHANGED
|
@@ -21,14 +21,12 @@ npm install --save @webex/internal-plugin-metrics
|
|
|
21
21
|
## Usage
|
|
22
22
|
|
|
23
23
|
```js
|
|
24
|
-
|
|
25
24
|
import '@webex/internal-plugin-metrics';
|
|
26
25
|
|
|
27
26
|
import WebexCore from '@webex/webex-core';
|
|
28
27
|
|
|
29
28
|
const webex = new WebexCore();
|
|
30
|
-
webex.internal.metrics.WHATEVER
|
|
31
|
-
|
|
29
|
+
webex.internal.metrics.WHATEVER;
|
|
32
30
|
```
|
|
33
31
|
|
|
34
32
|
## Maintainers
|
package/dist/batcher.js
CHANGED
|
@@ -1,36 +1,35 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
|
|
4
|
-
|
|
5
4
|
var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
|
|
6
|
-
|
|
7
5
|
_Object$defineProperty(exports, "__esModule", {
|
|
8
6
|
value: true
|
|
9
7
|
});
|
|
10
|
-
|
|
11
8
|
exports.default = void 0;
|
|
12
|
-
|
|
13
9
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/slicedToArray"));
|
|
14
|
-
|
|
15
10
|
var _symbol = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/symbol"));
|
|
16
|
-
|
|
17
11
|
var _now = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/date/now"));
|
|
18
|
-
|
|
19
12
|
var _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/promise"));
|
|
20
|
-
|
|
21
13
|
var _apply = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/reflect/apply"));
|
|
22
|
-
|
|
23
14
|
var _webexCore = require("@webex/webex-core");
|
|
24
|
-
|
|
25
15
|
var _commonTimers = require("@webex/common-timers");
|
|
26
|
-
|
|
27
16
|
/*!
|
|
28
17
|
* Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
|
|
29
18
|
*/
|
|
19
|
+
|
|
30
20
|
var sym = (0, _symbol.default)('metric id');
|
|
31
21
|
|
|
22
|
+
/**
|
|
23
|
+
* @class
|
|
24
|
+
* @extends Batcher
|
|
25
|
+
* @memberof Metrics
|
|
26
|
+
*/
|
|
32
27
|
var MetricsBatcher = _webexCore.Batcher.extend({
|
|
33
28
|
namespace: 'Metrics',
|
|
29
|
+
/**
|
|
30
|
+
* @param {any} item
|
|
31
|
+
* @returns {Promise<any>}
|
|
32
|
+
*/
|
|
34
33
|
prepareItem: function prepareItem(item) {
|
|
35
34
|
// Keep non-prod data out of metrics
|
|
36
35
|
var env = process.env.NODE_ENV === 'production' ? null : 'TEST';
|
|
@@ -40,12 +39,20 @@ var MetricsBatcher = _webexCore.Batcher.extend({
|
|
|
40
39
|
item.version = item.version || this.webex.version;
|
|
41
40
|
return _promise.default.resolve(item);
|
|
42
41
|
},
|
|
42
|
+
/**
|
|
43
|
+
* @param {any[]} queue
|
|
44
|
+
* @returns {Promise<any[]>}
|
|
45
|
+
*/
|
|
43
46
|
prepareRequest: function prepareRequest(queue) {
|
|
44
47
|
return _promise.default.resolve(queue.map(function (item) {
|
|
45
48
|
item.postTime = item.postTime || (0, _now.default)();
|
|
46
49
|
return item;
|
|
47
50
|
}));
|
|
48
51
|
},
|
|
52
|
+
/**
|
|
53
|
+
* @param {any} payload
|
|
54
|
+
* @returns {Promise<any>}
|
|
55
|
+
*/
|
|
49
56
|
submitHttpRequest: function submitHttpRequest(payload) {
|
|
50
57
|
return this.webex.request({
|
|
51
58
|
method: 'POST',
|
|
@@ -53,46 +60,52 @@ var MetricsBatcher = _webexCore.Batcher.extend({
|
|
|
53
60
|
resource: 'metrics',
|
|
54
61
|
body: {
|
|
55
62
|
metrics: payload
|
|
56
|
-
}
|
|
63
|
+
},
|
|
64
|
+
waitForServiceTimeout: this.webex.config.metrics.waitForServiceTimeout
|
|
57
65
|
});
|
|
58
66
|
},
|
|
67
|
+
/**
|
|
68
|
+
* @param {any} res
|
|
69
|
+
* @returns {Promise<any>}
|
|
70
|
+
*/
|
|
59
71
|
handleHttpSuccess: function handleHttpSuccess(res) {
|
|
60
72
|
var _this = this;
|
|
61
|
-
|
|
62
73
|
return _promise.default.all(res.options.body.metrics.map(function (item) {
|
|
63
74
|
return _this.acceptItem(item);
|
|
64
75
|
}));
|
|
65
76
|
},
|
|
77
|
+
/**
|
|
78
|
+
* @param {any} reason
|
|
79
|
+
* @returns {Promise<any>}
|
|
80
|
+
*/
|
|
66
81
|
handleHttpError: function handleHttpError(reason) {
|
|
67
82
|
var _this2 = this;
|
|
68
|
-
|
|
69
83
|
if (reason instanceof _webexCore.WebexHttpError.NetworkOrCORSError) {
|
|
70
84
|
this.logger.warn('metrics-batcher: received network error submitting metrics, reenqueuing payload');
|
|
71
85
|
return _promise.default.all(reason.options.body.metrics.map(function (item) {
|
|
72
86
|
return new _promise.default(function (resolve) {
|
|
73
87
|
var delay = item[sym].nextDelay;
|
|
74
|
-
|
|
75
88
|
if (delay < _this2.config.batcherRetryPlateau) {
|
|
76
89
|
item[sym].nextDelay *= 2;
|
|
77
90
|
}
|
|
78
|
-
|
|
79
91
|
(0, _commonTimers.safeSetTimeout)(function () {
|
|
80
92
|
resolve(_this2.rerequest(item));
|
|
81
93
|
}, delay);
|
|
82
94
|
});
|
|
83
95
|
}));
|
|
84
96
|
}
|
|
85
|
-
|
|
86
97
|
return (0, _apply.default)(_webexCore.Batcher.prototype.handleHttpError, this, [reason]);
|
|
87
98
|
},
|
|
99
|
+
/**
|
|
100
|
+
* @param {any} item
|
|
101
|
+
* @returns {Promise<any>}
|
|
102
|
+
*/
|
|
88
103
|
rerequest: function rerequest(item) {
|
|
89
104
|
var _this3 = this;
|
|
90
|
-
|
|
91
105
|
return _promise.default.all([this.getDeferredForRequest(item), this.prepareItem(item)]).then(function (_ref) {
|
|
92
106
|
var _ref2 = (0, _slicedToArray2.default)(_ref, 2),
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
107
|
+
defer = _ref2[0],
|
|
108
|
+
req = _ref2[1];
|
|
96
109
|
_this3.enqueue(req).then(function () {
|
|
97
110
|
return _this3.bounce();
|
|
98
111
|
}).catch(function (reason) {
|
|
@@ -100,17 +113,24 @@ var MetricsBatcher = _webexCore.Batcher.extend({
|
|
|
100
113
|
});
|
|
101
114
|
});
|
|
102
115
|
},
|
|
116
|
+
/**
|
|
117
|
+
* @param {any} item
|
|
118
|
+
* @returns {Promise<any>}
|
|
119
|
+
*/
|
|
103
120
|
fingerprintRequest: function fingerprintRequest(item) {
|
|
104
121
|
item[sym] = item[sym] || {
|
|
105
122
|
nextDelay: 1000
|
|
106
123
|
};
|
|
107
124
|
return _promise.default.resolve(item[sym]);
|
|
108
125
|
},
|
|
126
|
+
/**
|
|
127
|
+
* @param {any} item
|
|
128
|
+
* @returns {Promise<any>}
|
|
129
|
+
*/
|
|
109
130
|
fingerprintResponse: function fingerprintResponse(item) {
|
|
110
131
|
return _promise.default.resolve(item[sym]);
|
|
111
132
|
}
|
|
112
133
|
});
|
|
113
|
-
|
|
114
134
|
var _default = MetricsBatcher;
|
|
115
135
|
exports.default = _default;
|
|
116
136
|
//# sourceMappingURL=batcher.js.map
|
package/dist/batcher.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["sym","MetricsBatcher","Batcher","extend","namespace","prepareItem","item","env","process","NODE_ENV","appType","config","time","version","webex","resolve","prepareRequest","queue","map","postTime","submitHttpRequest","payload","request","method","service","resource","body","metrics","handleHttpSuccess","res","all","options","acceptItem","handleHttpError","reason","WebexHttpError","NetworkOrCORSError","logger","warn","delay","nextDelay","batcherRetryPlateau","safeSetTimeout","rerequest","prototype","getDeferredForRequest","then","defer","req","enqueue","bounce","catch","reject","fingerprintRequest","fingerprintResponse"],"sources":["batcher.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {Batcher, WebexHttpError} from '@webex/webex-core';\nimport {safeSetTimeout} from '@webex/common-timers';\n\nconst sym = Symbol('metric id');\n\nconst MetricsBatcher = Batcher.extend({\n namespace: 'Metrics',\n\n prepareItem(item) {\n // Keep non-prod data out of metrics\n const env = process.env.NODE_ENV === 'production' ? null : 'TEST';\n\n item.appType = item.appType || this.config.appType;\n item.env = item.env || env;\n item.time = item.time || Date.now();\n item.version = item.version || this.webex.version;\n\n return Promise.resolve(item);\n },\n\n prepareRequest(queue) {\n return Promise.resolve(queue.map((item) => {\n
|
|
1
|
+
{"version":3,"names":["sym","MetricsBatcher","Batcher","extend","namespace","prepareItem","item","env","process","NODE_ENV","appType","config","time","version","webex","resolve","prepareRequest","queue","map","postTime","submitHttpRequest","payload","request","method","service","resource","body","metrics","waitForServiceTimeout","handleHttpSuccess","res","all","options","acceptItem","handleHttpError","reason","WebexHttpError","NetworkOrCORSError","logger","warn","delay","nextDelay","batcherRetryPlateau","safeSetTimeout","rerequest","prototype","getDeferredForRequest","then","defer","req","enqueue","bounce","catch","reject","fingerprintRequest","fingerprintResponse"],"sources":["batcher.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {Batcher, WebexHttpError} from '@webex/webex-core';\nimport {safeSetTimeout} from '@webex/common-timers';\n\nconst sym = Symbol('metric id');\n\n/**\n * @class\n * @extends Batcher\n * @memberof Metrics\n */\nconst MetricsBatcher = Batcher.extend({\n namespace: 'Metrics',\n\n /**\n * @param {any} item\n * @returns {Promise<any>}\n */\n prepareItem(item) {\n // Keep non-prod data out of metrics\n const env = process.env.NODE_ENV === 'production' ? null : 'TEST';\n\n item.appType = item.appType || this.config.appType;\n item.env = item.env || env;\n item.time = item.time || Date.now();\n item.version = item.version || this.webex.version;\n\n return Promise.resolve(item);\n },\n\n /**\n * @param {any[]} queue\n * @returns {Promise<any[]>}\n */\n prepareRequest(queue) {\n return Promise.resolve(\n queue.map((item) => {\n item.postTime = item.postTime || Date.now();\n\n return item;\n })\n );\n },\n\n /**\n * @param {any} payload\n * @returns {Promise<any>}\n */\n submitHttpRequest(payload) {\n return this.webex.request({\n method: 'POST',\n service: 'metrics',\n resource: 'metrics',\n body: {\n metrics: payload,\n },\n waitForServiceTimeout: this.webex.config.metrics.waitForServiceTimeout,\n });\n },\n\n /**\n * @param {any} res\n * @returns {Promise<any>}\n */\n handleHttpSuccess(res) {\n return Promise.all(res.options.body.metrics.map((item) => this.acceptItem(item)));\n },\n\n /**\n * @param {any} reason\n * @returns {Promise<any>}\n */\n handleHttpError(reason) {\n if (reason instanceof WebexHttpError.NetworkOrCORSError) {\n this.logger.warn(\n 'metrics-batcher: received network error submitting metrics, reenqueuing payload'\n );\n\n return Promise.all(\n reason.options.body.metrics.map(\n (item) =>\n new Promise((resolve) => {\n const delay = item[sym].nextDelay;\n\n if (delay < this.config.batcherRetryPlateau) {\n item[sym].nextDelay *= 2;\n }\n safeSetTimeout(() => {\n resolve(this.rerequest(item));\n }, delay);\n })\n )\n );\n }\n\n return Reflect.apply(Batcher.prototype.handleHttpError, this, [reason]);\n },\n\n /**\n * @param {any} item\n * @returns {Promise<any>}\n */\n rerequest(item) {\n return Promise.all([this.getDeferredForRequest(item), this.prepareItem(item)]).then(\n ([defer, req]) => {\n this.enqueue(req)\n .then(() => this.bounce())\n .catch((reason) => defer.reject(reason));\n }\n );\n },\n\n /**\n * @param {any} item\n * @returns {Promise<any>}\n */\n fingerprintRequest(item) {\n item[sym] = item[sym] || {\n nextDelay: 1000,\n };\n\n return Promise.resolve(item[sym]);\n },\n\n /**\n * @param {any} item\n * @returns {Promise<any>}\n */\n fingerprintResponse(item) {\n return Promise.resolve(item[sym]);\n },\n});\n\nexport default MetricsBatcher;\n"],"mappings":"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"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
|
|
4
|
+
var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
|
|
5
|
+
_Object$defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.default = void 0;
|
|
9
|
+
var _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/promise"));
|
|
10
|
+
var _uniqueId2 = _interopRequireDefault(require("lodash/uniqueId"));
|
|
11
|
+
var _batcher = _interopRequireDefault(require("../batcher"));
|
|
12
|
+
var _callDiagnosticMetrics = require("./call-diagnostic-metrics.util");
|
|
13
|
+
var _config = require("./config");
|
|
14
|
+
var _utils = require("../utils");
|
|
15
|
+
var CallDiagnosticEventsBatcher = _batcher.default.extend({
|
|
16
|
+
namespace: 'Metrics',
|
|
17
|
+
/**
|
|
18
|
+
* Prepare item
|
|
19
|
+
* @param {any} item
|
|
20
|
+
* @returns {Promise<any>}
|
|
21
|
+
*/
|
|
22
|
+
prepareItem: function prepareItem(item) {
|
|
23
|
+
return _promise.default.resolve((0, _callDiagnosticMetrics.prepareDiagnosticMetricItem)(this.webex, item));
|
|
24
|
+
},
|
|
25
|
+
/**
|
|
26
|
+
* Prepare request, add time sensitive date etc.
|
|
27
|
+
* @param {any[]} queue
|
|
28
|
+
* @returns {Promise<any[]>}
|
|
29
|
+
*/
|
|
30
|
+
prepareRequest: function prepareRequest(queue) {
|
|
31
|
+
// Add sent timestamp
|
|
32
|
+
queue.forEach(function (item) {
|
|
33
|
+
item.eventPayload.originTime = item.eventPayload.originTime || {};
|
|
34
|
+
item.eventPayload.originTime.sent = new Date().toISOString();
|
|
35
|
+
});
|
|
36
|
+
return _promise.default.resolve(queue);
|
|
37
|
+
},
|
|
38
|
+
/**
|
|
39
|
+
*
|
|
40
|
+
* @param {any} payload
|
|
41
|
+
* @returns {Promise<any>}
|
|
42
|
+
*/
|
|
43
|
+
submitHttpRequest: function submitHttpRequest(payload) {
|
|
44
|
+
var _this = this;
|
|
45
|
+
var batchId = (0, _uniqueId2.default)('ca-batch-');
|
|
46
|
+
return this.webex.request({
|
|
47
|
+
method: 'POST',
|
|
48
|
+
service: 'metrics',
|
|
49
|
+
resource: 'clientmetrics',
|
|
50
|
+
body: {
|
|
51
|
+
metrics: payload
|
|
52
|
+
},
|
|
53
|
+
waitForServiceTimeout: this.webex.config.metrics.waitForServiceTimeout
|
|
54
|
+
}).then(function (res) {
|
|
55
|
+
_this.webex.logger.log(_config.CALL_DIAGNOSTIC_LOG_IDENTIFIER, "CallDiagnosticEventsBatcher: @submitHttpRequest#".concat(batchId, ". Request successful."));
|
|
56
|
+
return res;
|
|
57
|
+
}).catch(function (err) {
|
|
58
|
+
_this.webex.logger.error(_config.CALL_DIAGNOSTIC_LOG_IDENTIFIER, "CallDiagnosticEventsBatcher: @submitHttpRequest#".concat(batchId, ". Request failed:"), "error: ".concat((0, _utils.generateCommonErrorMetadata)(err)));
|
|
59
|
+
return _promise.default.reject(err);
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
});
|
|
63
|
+
var _default = CallDiagnosticEventsBatcher;
|
|
64
|
+
exports.default = _default;
|
|
65
|
+
//# sourceMappingURL=call-diagnostic-metrics-batcher.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["CallDiagnosticEventsBatcher","Batcher","extend","namespace","prepareItem","item","resolve","prepareDiagnosticMetricItem","webex","prepareRequest","queue","forEach","eventPayload","originTime","sent","Date","toISOString","submitHttpRequest","payload","batchId","request","method","service","resource","body","metrics","waitForServiceTimeout","config","then","res","logger","log","CALL_DIAGNOSTIC_LOG_IDENTIFIER","catch","err","error","generateCommonErrorMetadata","reject"],"sources":["call-diagnostic-metrics-batcher.ts"],"sourcesContent":["import {uniqueId} from 'lodash';\nimport Batcher from '../batcher';\nimport {prepareDiagnosticMetricItem} from './call-diagnostic-metrics.util';\nimport {CALL_DIAGNOSTIC_LOG_IDENTIFIER} from './config';\nimport {generateCommonErrorMetadata} from '../utils';\n\nconst CallDiagnosticEventsBatcher = Batcher.extend({\n namespace: 'Metrics',\n\n /**\n * Prepare item\n * @param {any} item\n * @returns {Promise<any>}\n */\n prepareItem(item) {\n return Promise.resolve(prepareDiagnosticMetricItem(this.webex, item));\n },\n\n /**\n * Prepare request, add time sensitive date etc.\n * @param {any[]} queue\n * @returns {Promise<any[]>}\n */\n prepareRequest(queue) {\n // Add sent timestamp\n queue.forEach((item) => {\n item.eventPayload.originTime = item.eventPayload.originTime || {};\n item.eventPayload.originTime.sent = new Date().toISOString();\n });\n\n return Promise.resolve(queue);\n },\n\n /**\n *\n * @param {any} payload\n * @returns {Promise<any>}\n */\n submitHttpRequest(payload) {\n const batchId = uniqueId('ca-batch-');\n\n return this.webex\n .request({\n method: 'POST',\n service: 'metrics',\n resource: 'clientmetrics',\n body: {\n metrics: payload,\n },\n waitForServiceTimeout: this.webex.config.metrics.waitForServiceTimeout,\n })\n .then((res) => {\n this.webex.logger.log(\n CALL_DIAGNOSTIC_LOG_IDENTIFIER,\n `CallDiagnosticEventsBatcher: @submitHttpRequest#${batchId}. Request successful.`\n );\n\n return res;\n })\n .catch((err) => {\n this.webex.logger.error(\n CALL_DIAGNOSTIC_LOG_IDENTIFIER,\n `CallDiagnosticEventsBatcher: @submitHttpRequest#${batchId}. Request failed:`,\n `error: ${generateCommonErrorMetadata(err)}`\n );\n\n return Promise.reject(err);\n });\n },\n});\n\nexport default CallDiagnosticEventsBatcher;\n"],"mappings":";;;;;;;;;;AACA;AACA;AACA;AACA;AAEA,IAAMA,2BAA2B,GAAGC,gBAAO,CAACC,MAAM,CAAC;EACjDC,SAAS,EAAE,SAAS;EAEpB;AACF;AACA;AACA;AACA;EACEC,WAAW,uBAACC,IAAI,EAAE;IAChB,OAAO,iBAAQC,OAAO,CAAC,IAAAC,kDAA2B,EAAC,IAAI,CAACC,KAAK,EAAEH,IAAI,CAAC,CAAC;EACvE,CAAC;EAED;AACF;AACA;AACA;AACA;EACEI,cAAc,0BAACC,KAAK,EAAE;IACpB;IACAA,KAAK,CAACC,OAAO,CAAC,UAACN,IAAI,EAAK;MACtBA,IAAI,CAACO,YAAY,CAACC,UAAU,GAAGR,IAAI,CAACO,YAAY,CAACC,UAAU,IAAI,CAAC,CAAC;MACjER,IAAI,CAACO,YAAY,CAACC,UAAU,CAACC,IAAI,GAAG,IAAIC,IAAI,EAAE,CAACC,WAAW,EAAE;IAC9D,CAAC,CAAC;IAEF,OAAO,iBAAQV,OAAO,CAACI,KAAK,CAAC;EAC/B,CAAC;EAED;AACF;AACA;AACA;AACA;EACEO,iBAAiB,6BAACC,OAAO,EAAE;IAAA;IACzB,IAAMC,OAAO,GAAG,wBAAS,WAAW,CAAC;IAErC,OAAO,IAAI,CAACX,KAAK,CACdY,OAAO,CAAC;MACPC,MAAM,EAAE,MAAM;MACdC,OAAO,EAAE,SAAS;MAClBC,QAAQ,EAAE,eAAe;MACzBC,IAAI,EAAE;QACJC,OAAO,EAAEP;MACX,CAAC;MACDQ,qBAAqB,EAAE,IAAI,CAAClB,KAAK,CAACmB,MAAM,CAACF,OAAO,CAACC;IACnD,CAAC,CAAC,CACDE,IAAI,CAAC,UAACC,GAAG,EAAK;MACb,KAAI,CAACrB,KAAK,CAACsB,MAAM,CAACC,GAAG,CACnBC,sCAA8B,4DACqBb,OAAO,2BAC3D;MAED,OAAOU,GAAG;IACZ,CAAC,CAAC,CACDI,KAAK,CAAC,UAACC,GAAG,EAAK;MACd,KAAI,CAAC1B,KAAK,CAACsB,MAAM,CAACK,KAAK,CACrBH,sCAA8B,4DACqBb,OAAO,yCAChD,IAAAiB,kCAA2B,EAACF,GAAG,CAAC,EAC3C;MAED,OAAO,iBAAQG,MAAM,CAACH,GAAG,CAAC;IAC5B,CAAC,CAAC;EACN;AACF,CAAC,CAAC;AAAC,eAEYlC,2BAA2B;AAAA"}
|