@webex/internal-plugin-metrics 3.0.0-beta.3 → 3.0.0-beta.300
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 +5 -23
- package/dist/batcher.js.map +1 -1
- package/dist/call-diagnostic/call-diagnostic-metrics-batcher.js +66 -0
- package/dist/call-diagnostic/call-diagnostic-metrics-batcher.js.map +1 -0
- package/dist/call-diagnostic/call-diagnostic-metrics-latencies.js +456 -0
- package/dist/call-diagnostic/call-diagnostic-metrics-latencies.js.map +1 -0
- package/dist/call-diagnostic/call-diagnostic-metrics.js +798 -0
- package/dist/call-diagnostic/call-diagnostic-metrics.js.map +1 -0
- package/dist/call-diagnostic/call-diagnostic-metrics.util.js +337 -0
- package/dist/call-diagnostic/call-diagnostic-metrics.util.js.map +1 -0
- package/dist/call-diagnostic/config.js +604 -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 +31 -10
- package/dist/index.js.map +1 -1
- package/dist/metrics.js +43 -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 +333 -0
- package/dist/new-metrics.js.map +1 -0
- package/dist/types/batcher.d.ts +2 -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 +194 -0
- package/dist/types/call-diagnostic/call-diagnostic-metrics.d.ts +405 -0
- package/dist/types/call-diagnostic/call-diagnostic-metrics.util.d.ts +96 -0
- package/dist/types/call-diagnostic/config.d.ts +171 -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 +13 -0
- package/dist/types/metrics.d.ts +3 -0
- package/dist/types/metrics.types.d.ts +103 -0
- package/dist/types/new-metrics.d.ts +139 -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 +13 -8
- package/src/batcher.js +34 -26
- package/src/call-diagnostic/call-diagnostic-metrics-batcher.ts +83 -0
- package/src/call-diagnostic/call-diagnostic-metrics-latencies.ts +414 -0
- package/src/call-diagnostic/call-diagnostic-metrics.ts +863 -0
- package/src/call-diagnostic/call-diagnostic-metrics.util.ts +362 -0
- package/src/call-diagnostic/config.ts +660 -0
- package/src/client-metrics-batcher.js +4 -4
- package/src/config.js +26 -5
- package/src/index.ts +43 -0
- package/src/metrics.js +44 -58
- package/src/metrics.types.ts +159 -0
- package/src/new-metrics.ts +317 -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 +465 -0
- package/test/unit/spec/call-diagnostic/call-diagnostic-metrics-latencies.ts +477 -0
- package/test/unit/spec/call-diagnostic/call-diagnostic-metrics.ts +1943 -0
- package/test/unit/spec/call-diagnostic/call-diagnostic-metrics.util.ts +565 -0
- package/test/unit/spec/client-metrics-batcher.js +28 -15
- package/test/unit/spec/metrics.js +86 -116
- package/test/unit/spec/new-metrics.ts +269 -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,34 +1,23 @@
|
|
|
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
|
*/
|
|
30
|
-
var sym = (0, _symbol.default)('metric id');
|
|
31
19
|
|
|
20
|
+
var sym = (0, _symbol.default)('metric id');
|
|
32
21
|
var MetricsBatcher = _webexCore.Batcher.extend({
|
|
33
22
|
namespace: 'Metrics',
|
|
34
23
|
prepareItem: function prepareItem(item) {
|
|
@@ -53,46 +42,40 @@ var MetricsBatcher = _webexCore.Batcher.extend({
|
|
|
53
42
|
resource: 'metrics',
|
|
54
43
|
body: {
|
|
55
44
|
metrics: payload
|
|
56
|
-
}
|
|
45
|
+
},
|
|
46
|
+
waitForServiceTimeout: this.webex.config.metrics.waitForServiceTimeout
|
|
57
47
|
});
|
|
58
48
|
},
|
|
59
49
|
handleHttpSuccess: function handleHttpSuccess(res) {
|
|
60
50
|
var _this = this;
|
|
61
|
-
|
|
62
51
|
return _promise.default.all(res.options.body.metrics.map(function (item) {
|
|
63
52
|
return _this.acceptItem(item);
|
|
64
53
|
}));
|
|
65
54
|
},
|
|
66
55
|
handleHttpError: function handleHttpError(reason) {
|
|
67
56
|
var _this2 = this;
|
|
68
|
-
|
|
69
57
|
if (reason instanceof _webexCore.WebexHttpError.NetworkOrCORSError) {
|
|
70
58
|
this.logger.warn('metrics-batcher: received network error submitting metrics, reenqueuing payload');
|
|
71
59
|
return _promise.default.all(reason.options.body.metrics.map(function (item) {
|
|
72
60
|
return new _promise.default(function (resolve) {
|
|
73
61
|
var delay = item[sym].nextDelay;
|
|
74
|
-
|
|
75
62
|
if (delay < _this2.config.batcherRetryPlateau) {
|
|
76
63
|
item[sym].nextDelay *= 2;
|
|
77
64
|
}
|
|
78
|
-
|
|
79
65
|
(0, _commonTimers.safeSetTimeout)(function () {
|
|
80
66
|
resolve(_this2.rerequest(item));
|
|
81
67
|
}, delay);
|
|
82
68
|
});
|
|
83
69
|
}));
|
|
84
70
|
}
|
|
85
|
-
|
|
86
71
|
return (0, _apply.default)(_webexCore.Batcher.prototype.handleHttpError, this, [reason]);
|
|
87
72
|
},
|
|
88
73
|
rerequest: function rerequest(item) {
|
|
89
74
|
var _this3 = this;
|
|
90
|
-
|
|
91
75
|
return _promise.default.all([this.getDeferredForRequest(item), this.prepareItem(item)]).then(function (_ref) {
|
|
92
76
|
var _ref2 = (0, _slicedToArray2.default)(_ref, 2),
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
77
|
+
defer = _ref2[0],
|
|
78
|
+
req = _ref2[1];
|
|
96
79
|
_this3.enqueue(req).then(function () {
|
|
97
80
|
return _this3.bounce();
|
|
98
81
|
}).catch(function (reason) {
|
|
@@ -110,7 +93,6 @@ var MetricsBatcher = _webexCore.Batcher.extend({
|
|
|
110
93
|
return _promise.default.resolve(item[sym]);
|
|
111
94
|
}
|
|
112
95
|
});
|
|
113
|
-
|
|
114
96
|
var _default = MetricsBatcher;
|
|
115
97
|
exports.default = _default;
|
|
116
98
|
//# 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\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(\n queue.map((item) => {\n item.postTime = item.postTime || Date.now();\n\n return item;\n })\n );\n },\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 handleHttpSuccess(res) {\n return Promise.all(res.options.body.metrics.map((item) => this.acceptItem(item)));\n },\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 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 fingerprintRequest(item) {\n item[sym] = item[sym] || {\n nextDelay: 1000,\n };\n\n return Promise.resolve(item[sym]);\n },\n\n fingerprintResponse(item) {\n return Promise.resolve(item[sym]);\n },\n});\n\nexport default MetricsBatcher;\n"],"mappings":";;;;;;;;;;;;;AAIA;AACA;AALA;AACA;AACA;;AAKA,IAAMA,GAAG,GAAG,qBAAO,WAAW,CAAC;AAE/B,IAAMC,cAAc,GAAGC,kBAAO,CAACC,MAAM,CAAC;EACpCC,SAAS,EAAE,SAAS;EAEpBC,WAAW,uBAACC,IAAI,EAAE;IAChB;IACA,IAAMC,GAAG,GAAGC,OAAO,CAACD,GAAG,CAACE,QAAQ,KAAK,YAAY,GAAG,IAAI,GAAG,MAAM;IAEjEH,IAAI,CAACI,OAAO,GAAGJ,IAAI,CAACI,OAAO,IAAI,IAAI,CAACC,MAAM,CAACD,OAAO;IAClDJ,IAAI,CAACC,GAAG,GAAGD,IAAI,CAACC,GAAG,IAAIA,GAAG;IAC1BD,IAAI,CAACM,IAAI,GAAGN,IAAI,CAACM,IAAI,IAAI,mBAAU;IACnCN,IAAI,CAACO,OAAO,GAAGP,IAAI,CAACO,OAAO,IAAI,IAAI,CAACC,KAAK,CAACD,OAAO;IAEjD,OAAO,iBAAQE,OAAO,CAACT,IAAI,CAAC;EAC9B,CAAC;EAEDU,cAAc,0BAACC,KAAK,EAAE;IACpB,OAAO,iBAAQF,OAAO,CACpBE,KAAK,CAACC,GAAG,CAAC,UAACZ,IAAI,EAAK;MAClBA,IAAI,CAACa,QAAQ,GAAGb,IAAI,CAACa,QAAQ,IAAI,mBAAU;MAE3C,OAAOb,IAAI;IACb,CAAC,CAAC,CACH;EACH,CAAC;EAEDc,iBAAiB,6BAACC,OAAO,EAAE;IACzB,OAAO,IAAI,CAACP,KAAK,CAACQ,OAAO,CAAC;MACxBC,MAAM,EAAE,MAAM;MACdC,OAAO,EAAE,SAAS;MAClBC,QAAQ,EAAE,SAAS;MACnBC,IAAI,EAAE;QACJC,OAAO,EAAEN;MACX,CAAC;MACDO,qBAAqB,EAAE,IAAI,CAACd,KAAK,CAACH,MAAM,CAACgB,OAAO,CAACC;IACnD,CAAC,CAAC;EACJ,CAAC;EAEDC,iBAAiB,6BAACC,GAAG,EAAE;IAAA;IACrB,OAAO,iBAAQC,GAAG,CAACD,GAAG,CAACE,OAAO,CAACN,IAAI,CAACC,OAAO,CAACT,GAAG,CAAC,UAACZ,IAAI;MAAA,OAAK,KAAI,CAAC2B,UAAU,CAAC3B,IAAI,CAAC;IAAA,EAAC,CAAC;EACnF,CAAC;EAED4B,eAAe,2BAACC,MAAM,EAAE;IAAA;IACtB,IAAIA,MAAM,YAAYC,yBAAc,CAACC,kBAAkB,EAAE;MACvD,IAAI,CAACC,MAAM,CAACC,IAAI,CACd,iFAAiF,CAClF;MAED,OAAO,iBAAQR,GAAG,CAChBI,MAAM,CAACH,OAAO,CAACN,IAAI,CAACC,OAAO,CAACT,GAAG,CAC7B,UAACZ,IAAI;QAAA,OACH,qBAAY,UAACS,OAAO,EAAK;UACvB,IAAMyB,KAAK,GAAGlC,IAAI,CAACN,GAAG,CAAC,CAACyC,SAAS;UAEjC,IAAID,KAAK,GAAG,MAAI,CAAC7B,MAAM,CAAC+B,mBAAmB,EAAE;YAC3CpC,IAAI,CAACN,GAAG,CAAC,CAACyC,SAAS,IAAI,CAAC;UAC1B;UACA,IAAAE,4BAAc,EAAC,YAAM;YACnB5B,OAAO,CAAC,MAAI,CAAC6B,SAAS,CAACtC,IAAI,CAAC,CAAC;UAC/B,CAAC,EAAEkC,KAAK,CAAC;QACX,CAAC,CAAC;MAAA,EACL,CACF;IACH;IAEA,OAAO,oBAActC,kBAAO,CAAC2C,SAAS,CAACX,eAAe,EAAE,IAAI,EAAE,CAACC,MAAM,CAAC,CAAC;EACzE,CAAC;EAEDS,SAAS,qBAACtC,IAAI,EAAE;IAAA;IACd,OAAO,iBAAQyB,GAAG,CAAC,CAAC,IAAI,CAACe,qBAAqB,CAACxC,IAAI,CAAC,EAAE,IAAI,CAACD,WAAW,CAACC,IAAI,CAAC,CAAC,CAAC,CAACyC,IAAI,CACjF,gBAAkB;MAAA;QAAhBC,KAAK;QAAEC,GAAG;MACV,MAAI,CAACC,OAAO,CAACD,GAAG,CAAC,CACdF,IAAI,CAAC;QAAA,OAAM,MAAI,CAACI,MAAM,EAAE;MAAA,EAAC,CACzBC,KAAK,CAAC,UAACjB,MAAM;QAAA,OAAKa,KAAK,CAACK,MAAM,CAAClB,MAAM,CAAC;MAAA,EAAC;IAC5C,CAAC,CACF;EACH,CAAC;EAEDmB,kBAAkB,8BAAChD,IAAI,EAAE;IACvBA,IAAI,CAACN,GAAG,CAAC,GAAGM,IAAI,CAACN,GAAG,CAAC,IAAI;MACvByC,SAAS,EAAE;IACb,CAAC;IAED,OAAO,iBAAQ1B,OAAO,CAACT,IAAI,CAACN,GAAG,CAAC,CAAC;EACnC,CAAC;EAEDuD,mBAAmB,+BAACjD,IAAI,EAAE;IACxB,OAAO,iBAAQS,OAAO,CAACT,IAAI,CAACN,GAAG,CAAC,CAAC;EACnC;AACF,CAAC,CAAC;AAAC,eAEYC,cAAc;AAAA"}
|
|
@@ -0,0 +1,66 @@
|
|
|
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 item
|
|
20
|
+
* @returns
|
|
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 queue
|
|
28
|
+
* @returns
|
|
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 payload
|
|
41
|
+
* @returns
|
|
42
|
+
*/
|
|
43
|
+
submitHttpRequest: function submitHttpRequest(payload) {
|
|
44
|
+
var _this = this;
|
|
45
|
+
var batchId = (0, _uniqueId2.default)('call-diagnostic-metrics-batch-');
|
|
46
|
+
this.webex.logger.log(_config.CALL_DIAGNOSTIC_LOG_IDENTIFIER, "CallDiagnosticEventsBatcher: @submitHttpRequest#".concat(batchId, ". Sending the request:"), 'payload:', payload);
|
|
47
|
+
return this.webex.request({
|
|
48
|
+
method: 'POST',
|
|
49
|
+
service: 'metrics',
|
|
50
|
+
resource: 'clientmetrics',
|
|
51
|
+
body: {
|
|
52
|
+
metrics: payload
|
|
53
|
+
},
|
|
54
|
+
waitForServiceTimeout: this.webex.config.metrics.waitForServiceTimeout
|
|
55
|
+
}).then(function (res) {
|
|
56
|
+
_this.webex.logger.log(_config.CALL_DIAGNOSTIC_LOG_IDENTIFIER, "CallDiagnosticEventsBatcher: @submitHttpRequest#".concat(batchId, ". Request successful:"), "response:", res);
|
|
57
|
+
return res;
|
|
58
|
+
}).catch(function (err) {
|
|
59
|
+
_this.webex.logger.error(_config.CALL_DIAGNOSTIC_LOG_IDENTIFIER, "CallDiagnosticEventsBatcher: @submitHttpRequest#".concat(batchId, ". Request failed:"), "error: ".concat((0, _utils.generateCommonErrorMetadata)(err)));
|
|
60
|
+
return _promise.default.reject(err);
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
});
|
|
64
|
+
var _default = CallDiagnosticEventsBatcher;
|
|
65
|
+
exports.default = _default;
|
|
66
|
+
//# 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","logger","log","CALL_DIAGNOSTIC_LOG_IDENTIFIER","request","method","service","resource","body","metrics","waitForServiceTimeout","config","then","res","catch","err","error","generateCommonErrorMetadata","reject"],"sources":["call-diagnostic-metrics-batcher.ts"],"sourcesContent":["/* eslint-disable class-methods-use-this */\n/* eslint-disable valid-jsdoc */\n\nimport {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 item\n * @returns\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 queue\n * @returns\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 payload\n * @returns\n */\n submitHttpRequest(payload) {\n const batchId = uniqueId('call-diagnostic-metrics-batch-');\n this.webex.logger.log(\n CALL_DIAGNOSTIC_LOG_IDENTIFIER,\n `CallDiagnosticEventsBatcher: @submitHttpRequest#${batchId}. Sending the request:`,\n 'payload:',\n payload\n );\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 `response:`,\n res\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":";;;;;;;;;;AAIA;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,gCAAgC,CAAC;IAC1D,IAAI,CAACX,KAAK,CAACY,MAAM,CAACC,GAAG,CACnBC,sCAA8B,4DACqBH,OAAO,6BAC1D,UAAU,EACVD,OAAO,CACR;IAED,OAAO,IAAI,CAACV,KAAK,CACde,OAAO,CAAC;MACPC,MAAM,EAAE,MAAM;MACdC,OAAO,EAAE,SAAS;MAClBC,QAAQ,EAAE,eAAe;MACzBC,IAAI,EAAE;QACJC,OAAO,EAAEV;MACX,CAAC;MACDW,qBAAqB,EAAE,IAAI,CAACrB,KAAK,CAACsB,MAAM,CAACF,OAAO,CAACC;IACnD,CAAC,CAAC,CACDE,IAAI,CAAC,UAACC,GAAG,EAAK;MACb,KAAI,CAACxB,KAAK,CAACY,MAAM,CAACC,GAAG,CACnBC,sCAA8B,4DACqBH,OAAO,yCAE1Da,GAAG,CACJ;MAED,OAAOA,GAAG;IACZ,CAAC,CAAC,CACDC,KAAK,CAAC,UAACC,GAAG,EAAK;MACd,KAAI,CAAC1B,KAAK,CAACY,MAAM,CAACe,KAAK,CACrBb,sCAA8B,4DACqBH,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"}
|