@webex/internal-plugin-metrics 3.4.0 → 3.5.0-next.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/dist/behavioral-metrics.js +63 -0
- package/dist/behavioral-metrics.js.map +1 -0
- package/dist/business-metrics.js +62 -0
- package/dist/business-metrics.js.map +1 -0
- package/dist/call-diagnostic/call-diagnostic-metrics.js +15 -5
- package/dist/call-diagnostic/call-diagnostic-metrics.js.map +1 -1
- package/dist/call-diagnostic/call-diagnostic-metrics.util.js +8 -3
- package/dist/call-diagnostic/call-diagnostic-metrics.util.js.map +1 -1
- package/dist/{behavioral/behavioral-metrics.js → generic-metrics.js} +77 -92
- package/dist/generic-metrics.js.map +1 -0
- package/dist/index.js +15 -1
- package/dist/index.js.map +1 -1
- package/dist/metrics.js +1 -1
- package/dist/metrics.types.js.map +1 -1
- package/dist/new-metrics.js +122 -24
- package/dist/new-metrics.js.map +1 -1
- package/dist/operational-metrics.js +56 -0
- package/dist/operational-metrics.js.map +1 -0
- package/dist/types/behavioral-metrics.d.ts +25 -0
- package/dist/types/business-metrics.d.ts +19 -0
- package/dist/types/call-diagnostic/call-diagnostic-metrics.d.ts +21 -5
- package/dist/types/call-diagnostic/call-diagnostic-metrics.util.d.ts +2 -1
- package/dist/types/generic-metrics.d.ts +63 -0
- package/dist/types/index.d.ts +4 -2
- package/dist/types/metrics.types.d.ts +26 -14
- package/dist/types/new-metrics.d.ts +41 -9
- package/dist/types/operational-metrics.d.ts +19 -0
- package/package.json +12 -12
- package/src/behavioral-metrics.ts +40 -0
- package/src/business-metrics.ts +30 -0
- package/src/call-diagnostic/call-diagnostic-metrics.ts +19 -2
- package/src/call-diagnostic/call-diagnostic-metrics.util.ts +7 -0
- package/src/generic-metrics.ts +146 -0
- package/src/index.ts +5 -1
- package/src/metrics.types.ts +30 -16
- package/src/new-metrics.ts +95 -17
- package/src/operational-metrics.ts +24 -0
- package/test/unit/spec/behavioral/behavioral-metrics.ts +51 -10
- package/test/unit/spec/business/business-metrics.ts +120 -0
- package/test/unit/spec/call-diagnostic/call-diagnostic-metrics.ts +166 -1
- package/test/unit/spec/call-diagnostic/call-diagnostic-metrics.util.ts +15 -5
- package/test/unit/spec/new-metrics.ts +14 -0
- package/test/unit/spec/operational/operational-metrics.ts +115 -0
- package/dist/behavioral/behavioral-metrics.js.map +0 -1
- package/dist/behavioral/config.js +0 -11
- package/dist/behavioral/config.js.map +0 -1
- package/dist/types/behavioral/behavioral-metrics.d.ts +0 -63
- package/dist/types/behavioral/config.d.ts +0 -1
- package/src/behavioral/behavioral-metrics.ts +0 -179
- package/src/behavioral/config.ts +0 -3
package/dist/new-metrics.js
CHANGED
|
@@ -19,7 +19,9 @@ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime-corejs2/he
|
|
|
19
19
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
|
|
20
20
|
var _webexCore = require("@webex/webex-core");
|
|
21
21
|
var _callDiagnosticMetrics = _interopRequireDefault(require("./call-diagnostic/call-diagnostic-metrics"));
|
|
22
|
-
var _behavioralMetrics = _interopRequireDefault(require("./behavioral
|
|
22
|
+
var _behavioralMetrics = _interopRequireDefault(require("./behavioral-metrics"));
|
|
23
|
+
var _operationalMetrics = _interopRequireDefault(require("./operational-metrics"));
|
|
24
|
+
var _businessMetrics = _interopRequireDefault(require("./business-metrics"));
|
|
23
25
|
var _callDiagnosticMetricsLatencies = _interopRequireDefault(require("./call-diagnostic/call-diagnostic-metrics-latencies"));
|
|
24
26
|
var _callDiagnosticMetrics2 = require("./call-diagnostic/call-diagnostic-metrics.util");
|
|
25
27
|
var _utils = require("./utils");
|
|
@@ -58,6 +60,9 @@ var Metrics = /*#__PURE__*/function (_WebexPlugin) {
|
|
|
58
60
|
// Helper classes to handle the different types of metrics
|
|
59
61
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "callDiagnosticMetrics", void 0);
|
|
60
62
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "behavioralMetrics", void 0);
|
|
63
|
+
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "operationalMetrics", void 0);
|
|
64
|
+
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "businessMetrics", void 0);
|
|
65
|
+
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "isReady", false);
|
|
61
66
|
_this.callDiagnosticLatencies = new _callDiagnosticMetricsLatencies.default({}, {
|
|
62
67
|
parent: _this.webex
|
|
63
68
|
});
|
|
@@ -78,10 +83,7 @@ var Metrics = /*#__PURE__*/function (_WebexPlugin) {
|
|
|
78
83
|
_this2.callDiagnosticMetrics = new _callDiagnosticMetrics.default({}, {
|
|
79
84
|
parent: _this2.webex
|
|
80
85
|
});
|
|
81
|
-
|
|
82
|
-
_this2.behavioralMetrics = new _behavioralMetrics.default({}, {
|
|
83
|
-
parent: _this2.webex
|
|
84
|
-
});
|
|
86
|
+
_this2.isReady = true;
|
|
85
87
|
});
|
|
86
88
|
}
|
|
87
89
|
|
|
@@ -104,13 +106,79 @@ var Metrics = /*#__PURE__*/function (_WebexPlugin) {
|
|
|
104
106
|
}
|
|
105
107
|
}
|
|
106
108
|
|
|
109
|
+
/**
|
|
110
|
+
* if webex metrics is ready, build behavioral metric backend if not already done.
|
|
111
|
+
*/
|
|
112
|
+
}, {
|
|
113
|
+
key: "lazyBuildBehavioralMetrics",
|
|
114
|
+
value: function lazyBuildBehavioralMetrics() {
|
|
115
|
+
if (this.isReady && !this.behavioralMetrics) {
|
|
116
|
+
// @ts-ignore
|
|
117
|
+
this.behavioralMetrics = new _behavioralMetrics.default({}, {
|
|
118
|
+
parent: this.webex
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
/**
|
|
124
|
+
* if webex metrics is ready, build operational metric backend if not already done.
|
|
125
|
+
*/
|
|
126
|
+
}, {
|
|
127
|
+
key: "lazyBuildOperationalMetrics",
|
|
128
|
+
value: function lazyBuildOperationalMetrics() {
|
|
129
|
+
if (this.isReady && !this.operationalMetrics) {
|
|
130
|
+
// @ts-ignore
|
|
131
|
+
this.operationalMetrics = new _operationalMetrics.default({}, {
|
|
132
|
+
parent: this.webex
|
|
133
|
+
});
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
/**
|
|
138
|
+
* if webex metrics is ready, build business metric backend if not already done.
|
|
139
|
+
*/
|
|
140
|
+
}, {
|
|
141
|
+
key: "lazyBuildBusinessMetrics",
|
|
142
|
+
value: function lazyBuildBusinessMetrics() {
|
|
143
|
+
if (this.isReady && !this.businessMetrics) {
|
|
144
|
+
// @ts-ignore
|
|
145
|
+
this.businessMetrics = new _businessMetrics.default({}, {
|
|
146
|
+
parent: this.webex
|
|
147
|
+
});
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
|
|
107
151
|
/**
|
|
108
152
|
* @returns true once we have the deviceId we need to submit behavioral events to Amplitude
|
|
109
153
|
*/
|
|
110
154
|
}, {
|
|
111
155
|
key: "isReadyToSubmitBehavioralEvents",
|
|
112
156
|
value: function isReadyToSubmitBehavioralEvents() {
|
|
113
|
-
|
|
157
|
+
var _this$behavioralMetri, _this$behavioralMetri2;
|
|
158
|
+
this.lazyBuildBehavioralMetrics();
|
|
159
|
+
return (_this$behavioralMetri = (_this$behavioralMetri2 = this.behavioralMetrics) === null || _this$behavioralMetri2 === void 0 ? void 0 : _this$behavioralMetri2.isReadyToSubmitEvents()) !== null && _this$behavioralMetri !== void 0 ? _this$behavioralMetri : false;
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
/**
|
|
163
|
+
* @returns true once we have the deviceId we need to submit operational events
|
|
164
|
+
*/
|
|
165
|
+
}, {
|
|
166
|
+
key: "isReadyToSubmitOperationalEvents",
|
|
167
|
+
value: function isReadyToSubmitOperationalEvents() {
|
|
168
|
+
var _this$operationalMetr, _this$operationalMetr2;
|
|
169
|
+
this.lazyBuildOperationalMetrics();
|
|
170
|
+
return (_this$operationalMetr = (_this$operationalMetr2 = this.operationalMetrics) === null || _this$operationalMetr2 === void 0 ? void 0 : _this$operationalMetr2.isReadyToSubmitEvents()) !== null && _this$operationalMetr !== void 0 ? _this$operationalMetr : false;
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
/**
|
|
174
|
+
* @returns true once we have the deviceId we need to submit buisness events
|
|
175
|
+
*/
|
|
176
|
+
}, {
|
|
177
|
+
key: "isReadyToSubmitBusinessEvents",
|
|
178
|
+
value: function isReadyToSubmitBusinessEvents() {
|
|
179
|
+
var _this$businessMetrics, _this$businessMetrics2;
|
|
180
|
+
this.lazyBuildBusinessMetrics();
|
|
181
|
+
return (_this$businessMetrics = (_this$businessMetrics2 = this.businessMetrics) === null || _this$businessMetrics2 === void 0 ? void 0 : _this$businessMetrics2.isReadyToSubmitEvents()) !== null && _this$businessMetrics !== void 0 ? _this$businessMetrics : false;
|
|
114
182
|
}
|
|
115
183
|
|
|
116
184
|
/**
|
|
@@ -125,11 +193,12 @@ var Metrics = /*#__PURE__*/function (_WebexPlugin) {
|
|
|
125
193
|
target = _ref2.target,
|
|
126
194
|
verb = _ref2.verb,
|
|
127
195
|
payload = _ref2.payload;
|
|
128
|
-
if (!this.
|
|
196
|
+
if (!this.isReady) {
|
|
129
197
|
// @ts-ignore
|
|
130
198
|
this.webex.logger.log("NewMetrics: @submitBehavioralEvent. Attempted to submit before webex.ready: ".concat(product, ".").concat(agent, ".").concat(target, ".").concat(verb));
|
|
131
199
|
return _promise.default.resolve();
|
|
132
200
|
}
|
|
201
|
+
this.lazyBuildBehavioralMetrics();
|
|
133
202
|
return this.behavioralMetrics.submitBehavioralEvent({
|
|
134
203
|
product: product,
|
|
135
204
|
agent: agent,
|
|
@@ -147,9 +216,38 @@ var Metrics = /*#__PURE__*/function (_WebexPlugin) {
|
|
|
147
216
|
key: "submitOperationalEvent",
|
|
148
217
|
value: function submitOperationalEvent(_ref3) {
|
|
149
218
|
var name = _ref3.name,
|
|
150
|
-
payload = _ref3.payload
|
|
151
|
-
|
|
152
|
-
|
|
219
|
+
payload = _ref3.payload;
|
|
220
|
+
if (!this.isReady) {
|
|
221
|
+
// @ts-ignore
|
|
222
|
+
this.webex.logger.log("NewMetrics: @submitOperationalEvent. Attempted to submit before webex.ready: ".concat(name));
|
|
223
|
+
return _promise.default.resolve();
|
|
224
|
+
}
|
|
225
|
+
this.lazyBuildOperationalMetrics();
|
|
226
|
+
return this.operationalMetrics.submitOperationalEvent({
|
|
227
|
+
name: name,
|
|
228
|
+
payload: payload
|
|
229
|
+
});
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
/**
|
|
233
|
+
* Buisness event
|
|
234
|
+
* @param args
|
|
235
|
+
*/
|
|
236
|
+
}, {
|
|
237
|
+
key: "submitBusinessEvent",
|
|
238
|
+
value: function submitBusinessEvent(_ref4) {
|
|
239
|
+
var name = _ref4.name,
|
|
240
|
+
payload = _ref4.payload;
|
|
241
|
+
if (!this.isReady) {
|
|
242
|
+
// @ts-ignore
|
|
243
|
+
this.webex.logger.log("NewMetrics: @submitBusinessEvent. Attempted to submit before webex.ready: ".concat(name));
|
|
244
|
+
return _promise.default.resolve();
|
|
245
|
+
}
|
|
246
|
+
this.lazyBuildBusinessMetrics();
|
|
247
|
+
return this.businessMetrics.submitBusinessEvent({
|
|
248
|
+
name: name,
|
|
249
|
+
payload: payload
|
|
250
|
+
});
|
|
153
251
|
}
|
|
154
252
|
|
|
155
253
|
/**
|
|
@@ -158,10 +256,10 @@ var Metrics = /*#__PURE__*/function (_WebexPlugin) {
|
|
|
158
256
|
*/
|
|
159
257
|
}, {
|
|
160
258
|
key: "submitMQE",
|
|
161
|
-
value: function submitMQE(
|
|
162
|
-
var name =
|
|
163
|
-
payload =
|
|
164
|
-
options =
|
|
259
|
+
value: function submitMQE(_ref5) {
|
|
260
|
+
var name = _ref5.name,
|
|
261
|
+
payload = _ref5.payload,
|
|
262
|
+
options = _ref5.options;
|
|
165
263
|
this.callDiagnosticLatencies.saveTimestamp({
|
|
166
264
|
key: name
|
|
167
265
|
});
|
|
@@ -178,10 +276,10 @@ var Metrics = /*#__PURE__*/function (_WebexPlugin) {
|
|
|
178
276
|
*/
|
|
179
277
|
}, {
|
|
180
278
|
key: "submitFeatureEvent",
|
|
181
|
-
value: function submitFeatureEvent(
|
|
182
|
-
var name =
|
|
183
|
-
payload =
|
|
184
|
-
options =
|
|
279
|
+
value: function submitFeatureEvent(_ref6) {
|
|
280
|
+
var name = _ref6.name,
|
|
281
|
+
payload = _ref6.payload,
|
|
282
|
+
options = _ref6.options;
|
|
185
283
|
throw new Error('Not implemented.');
|
|
186
284
|
}
|
|
187
285
|
|
|
@@ -192,10 +290,10 @@ var Metrics = /*#__PURE__*/function (_WebexPlugin) {
|
|
|
192
290
|
*/
|
|
193
291
|
}, {
|
|
194
292
|
key: "submitClientEvent",
|
|
195
|
-
value: function submitClientEvent(
|
|
196
|
-
var name =
|
|
197
|
-
payload =
|
|
198
|
-
options =
|
|
293
|
+
value: function submitClientEvent(_ref7) {
|
|
294
|
+
var name = _ref7.name,
|
|
295
|
+
payload = _ref7.payload,
|
|
296
|
+
options = _ref7.options;
|
|
199
297
|
if (!this.callDiagnosticLatencies || !this.callDiagnosticMetrics) {
|
|
200
298
|
// @ts-ignore
|
|
201
299
|
this.webex.logger.log("NewMetrics: @submitClientEvent. Attempted to submit before webex.ready. Event name: ".concat(name));
|
|
@@ -271,12 +369,12 @@ var Metrics = /*#__PURE__*/function (_WebexPlugin) {
|
|
|
271
369
|
}, {
|
|
272
370
|
key: "buildClientEventFetchRequestOptions",
|
|
273
371
|
value: (function () {
|
|
274
|
-
var _buildClientEventFetchRequestOptions = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(
|
|
372
|
+
var _buildClientEventFetchRequestOptions = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(_ref8) {
|
|
275
373
|
var name, payload, options;
|
|
276
374
|
return _regenerator.default.wrap(function _callee$(_context) {
|
|
277
375
|
while (1) switch (_context.prev = _context.next) {
|
|
278
376
|
case 0:
|
|
279
|
-
name =
|
|
377
|
+
name = _ref8.name, payload = _ref8.payload, options = _ref8.options;
|
|
280
378
|
return _context.abrupt("return", this.callDiagnosticMetrics.buildClientEventFetchRequestOptions({
|
|
281
379
|
name: name,
|
|
282
380
|
payload: payload,
|
package/dist/new-metrics.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_webexCore","require","_callDiagnosticMetrics","_interopRequireDefault","_behavioralMetrics","_callDiagnosticMetricsLatencies","_callDiagnosticMetrics2","_utils","_class","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","default","result","NewTarget","constructor","_Reflect$construct","arguments","apply","_possibleConstructorReturn2","Reflect","sham","Proxy","Boolean","prototype","valueOf","call","e","Metrics","_WebexPlugin","_inherits2","_super","_this","_classCallCheck2","_len","length","args","Array","_key","concat","_defineProperty2","_assertThisInitialized2","callDiagnosticLatencies","CallDiagnosticLatencies","parent","webex","onReady","_createClass2","key","value","_this2","once","callDiagnosticMetrics","CallDiagnosticMetrics","behavioralMetrics","BehavioralMetrics","submitInternalEvent","_ref","name","payload","options","clearTimestamps","saveTimestamp","isReadyToSubmitBehavioralEvents","submitBehavioralEvent","_ref2","product","agent","target","verb","logger","log","_promise","resolve","submitOperationalEvent","_ref3","Error","submitMQE","_ref4","submitFeatureEvent","_ref5","submitClientEvent","_ref6","meetingId","clientMetricsAliasUser","preLoginId","_this3","request","method","api","resource","headers","body","qs","alias","then","res","catch","err","error","generateCommonErrorMetadata","reject","_buildClientEventFetchRequestOptions","_asyncToGenerator2","_regenerator","mark","_callee","_ref7","wrap","_callee$","_context","prev","next","abrupt","buildClientEventFetchRequestOptions","stop","_x","setMetricTimingsAndFetch","setTimingsAndFetch","setMetricTimings","isServiceErrorExpected","serviceErrorCode","WebexPlugin","_default","exports"],"sources":["new-metrics.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-unused-vars */\n/* eslint-disable class-methods-use-this */\n/* eslint-disable valid-jsdoc */\n\n// @ts-ignore\nimport {WebexPlugin} from '@webex/webex-core';\n\nimport CallDiagnosticMetrics from './call-diagnostic/call-diagnostic-metrics';\nimport BehavioralMetrics from './behavioral/behavioral-metrics';\nimport {\n RecursivePartial,\n MetricEventProduct,\n MetricEventAgent,\n MetricEventVerb,\n ClientEvent,\n FeatureEvent,\n BehavioralEventPayload,\n OperationalEvent,\n MediaQualityEvent,\n InternalEvent,\n SubmitClientEventOptions,\n} from './metrics.types';\nimport CallDiagnosticLatencies from './call-diagnostic/call-diagnostic-metrics-latencies';\nimport {setMetricTimings} from './call-diagnostic/call-diagnostic-metrics.util';\nimport {generateCommonErrorMetadata} from './utils';\n\n/**\n * Metrics plugin to centralize all types of metrics.\n * @class\n */\nclass Metrics extends WebexPlugin {\n // eslint-disable-next-line no-use-before-define\n static instance: Metrics;\n\n // Call Diagnostic latencies\n callDiagnosticLatencies: CallDiagnosticLatencies;\n // Helper classes to handle the different types of metrics\n callDiagnosticMetrics: CallDiagnosticMetrics;\n behavioralMetrics: BehavioralMetrics;\n\n /**\n * Constructor\n * @param args\n * @constructor\n * @private\n * @returns\n */\n constructor(...args) {\n super(...args);\n\n // @ts-ignore\n this.callDiagnosticLatencies = new CallDiagnosticLatencies({}, {parent: this.webex});\n this.onReady();\n }\n\n /**\n * On Ready\n */\n private onReady() {\n // @ts-ignore\n this.webex.once('ready', () => {\n // @ts-ignore\n this.callDiagnosticMetrics = new CallDiagnosticMetrics({}, {parent: this.webex});\n // @ts-ignore\n this.behavioralMetrics = new BehavioralMetrics({}, {parent: this.webex});\n });\n }\n\n /**\n * Used for internal purposes only\n * @param args\n */\n submitInternalEvent({\n name,\n payload,\n options,\n }: {\n name: InternalEvent['name'];\n payload?: RecursivePartial<InternalEvent['payload']>;\n options?: any;\n }) {\n if (name === 'internal.reset.join.latencies') {\n this.callDiagnosticLatencies.clearTimestamps();\n } else {\n this.callDiagnosticLatencies.saveTimestamp({key: name});\n }\n }\n\n /**\n * @returns true once we have the deviceId we need to submit behavioral events to Amplitude\n */\n isReadyToSubmitBehavioralEvents() {\n return this.behavioralMetrics.isReadyToSubmitBehavioralEvents();\n }\n\n /**\n * Behavioral event\n * @param args\n */\n submitBehavioralEvent({\n product,\n agent,\n target,\n verb,\n payload,\n }: {\n product: MetricEventProduct;\n agent: MetricEventAgent;\n target: string;\n verb: MetricEventVerb;\n payload?: BehavioralEventPayload;\n }) {\n if (!this.behavioralMetrics) {\n // @ts-ignore\n this.webex.logger.log(\n `NewMetrics: @submitBehavioralEvent. Attempted to submit before webex.ready: ${product}.${agent}.${target}.${verb}`\n );\n\n return Promise.resolve();\n }\n\n return this.behavioralMetrics.submitBehavioralEvent({product, agent, target, verb, payload});\n }\n\n /**\n * Operational event\n * @param args\n */\n submitOperationalEvent({\n name,\n payload,\n options,\n }: {\n name: OperationalEvent['name'];\n payload?: RecursivePartial<OperationalEvent['payload']>;\n options?: any;\n }) {\n throw new Error('Not implemented.');\n }\n\n /**\n * Call Analyzer: Media Quality Event\n * @param args\n */\n submitMQE({\n name,\n payload,\n options,\n }: {\n name: MediaQualityEvent['name'];\n payload: RecursivePartial<MediaQualityEvent['payload']> & {\n intervals: MediaQualityEvent['payload']['intervals'];\n };\n options: any;\n }) {\n this.callDiagnosticLatencies.saveTimestamp({key: name});\n this.callDiagnosticMetrics.submitMQE({name, payload, options});\n }\n\n /**\n * Call Analyzer: Feature Usage Event\n * @param args\n */\n submitFeatureEvent({\n name,\n payload,\n options,\n }: {\n name: FeatureEvent['name'];\n payload?: RecursivePartial<FeatureEvent['payload']>;\n options: any;\n }) {\n throw new Error('Not implemented.');\n }\n\n /**\n * Call Analyzer: Client Event\n * @public\n * @param args\n */\n public submitClientEvent({\n name,\n payload,\n options,\n }: {\n name: ClientEvent['name'];\n payload?: RecursivePartial<ClientEvent['payload']>;\n options?: SubmitClientEventOptions;\n }): Promise<any> {\n if (!this.callDiagnosticLatencies || !this.callDiagnosticMetrics) {\n // @ts-ignore\n this.webex.logger.log(\n `NewMetrics: @submitClientEvent. Attempted to submit before webex.ready. Event name: ${name}`\n );\n\n return Promise.resolve();\n }\n this.callDiagnosticLatencies.saveTimestamp({\n key: name,\n options: {meetingId: options?.meetingId},\n });\n\n return this.callDiagnosticMetrics.submitClientEvent({name, payload, options});\n }\n\n /**\n * Issue request to alias a user's pre-login ID with their CI UUID\n * @param {string} preLoginId\n * @returns {Object} HttpResponse object\n */\n public clientMetricsAliasUser(preLoginId: string) {\n // @ts-ignore\n return this.webex\n .request({\n method: 'POST',\n api: 'metrics',\n resource: 'clientmetrics',\n headers: {\n 'x-prelogin-userid': preLoginId,\n },\n body: {},\n qs: {\n alias: true,\n },\n })\n .then((res) => {\n // @ts-ignore\n this.webex.logger.log(`NewMetrics: @clientMetricsAliasUser. Request successful.`);\n\n return res;\n })\n .catch((err) => {\n // @ts-ignore\n this.logger.error(\n `NewMetrics: @clientMetricsAliasUser. Request failed:`,\n `err: ${generateCommonErrorMetadata(err)}`\n );\n\n return Promise.reject(err);\n });\n }\n\n /**\n * Returns a promise that will resolve to fetch options for submitting a metric.\n *\n * This is to support quickly submitting metrics when the browser/tab is closing.\n * Calling submitClientEvent will not work because there some async steps that will\n * not complete before the browser is closed. Instead, we pre-gather all the\n * information/options needed for the request(s), and then simply and quickly\n * fire the fetch(es) when beforeUnload is triggered.\n *\n * We must use fetch instead of request because fetch has a keepalive option that\n * allows the request it to outlive the page.\n *\n * Note: the timings values will be wrong, but setMetricTimingsAndFetch() will\n * properly adjust them before submitting.\n *\n * @public\n * @param {Object} arg\n * @param {String} arg.name - event name\n * @param {Object} arg.payload - event payload\n * @param {Object} arg.options - other options\n * @returns {Promise} promise that resolves to options to be used with fetch\n */\n public async buildClientEventFetchRequestOptions({\n name,\n payload,\n options,\n }: {\n name: ClientEvent['name'];\n payload?: RecursivePartial<ClientEvent['payload']>;\n options?: SubmitClientEventOptions;\n }): Promise<any> {\n return this.callDiagnosticMetrics.buildClientEventFetchRequestOptions({\n name,\n payload,\n options,\n });\n }\n\n /**\n * Submits a metric from pre-built request options via the fetch API. Updates\n * the \"$timings\" and \"originTime\" values to Date.now() since the existing times\n * were set when the options were built (not submitted).\n\n * @param {any} options - the pre-built request options for submitting a metric\n * @returns {Promise} promise that resolves to the response object\n */\n public setMetricTimingsAndFetch(options: any): Promise<any> {\n // @ts-ignore\n return this.webex.setTimingsAndFetch(setMetricTimings(options));\n }\n\n /**\n * Returns true if the specified serviceErrorCode maps to an expected error.\n * @param {number} serviceErrorCode the service error code\n * @returns {boolean}\n */\n public isServiceErrorExpected(serviceErrorCode: number): boolean {\n return this.callDiagnosticMetrics.isServiceErrorExpected(serviceErrorCode);\n }\n}\n\nexport default Metrics;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_webexCore","require","_callDiagnosticMetrics","_interopRequireDefault","_behavioralMetrics","_operationalMetrics","_businessMetrics","_callDiagnosticMetricsLatencies","_callDiagnosticMetrics2","_utils","_class","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","default","result","NewTarget","constructor","_Reflect$construct","arguments","apply","_possibleConstructorReturn2","Reflect","sham","Proxy","Boolean","prototype","valueOf","call","e","Metrics","_WebexPlugin","_inherits2","_super","_this","_classCallCheck2","_len","length","args","Array","_key","concat","_defineProperty2","_assertThisInitialized2","callDiagnosticLatencies","CallDiagnosticLatencies","parent","webex","onReady","_createClass2","key","value","_this2","once","callDiagnosticMetrics","CallDiagnosticMetrics","isReady","submitInternalEvent","_ref","name","payload","options","clearTimestamps","saveTimestamp","lazyBuildBehavioralMetrics","behavioralMetrics","BehavioralMetrics","lazyBuildOperationalMetrics","operationalMetrics","OperationalMetrics","lazyBuildBusinessMetrics","businessMetrics","BusinessMetrics","isReadyToSubmitBehavioralEvents","_this$behavioralMetri","_this$behavioralMetri2","isReadyToSubmitEvents","isReadyToSubmitOperationalEvents","_this$operationalMetr","_this$operationalMetr2","isReadyToSubmitBusinessEvents","_this$businessMetrics","_this$businessMetrics2","submitBehavioralEvent","_ref2","product","agent","target","verb","logger","log","_promise","resolve","submitOperationalEvent","_ref3","submitBusinessEvent","_ref4","submitMQE","_ref5","submitFeatureEvent","_ref6","Error","submitClientEvent","_ref7","meetingId","clientMetricsAliasUser","preLoginId","_this3","request","method","api","resource","headers","body","qs","alias","then","res","catch","err","error","generateCommonErrorMetadata","reject","_buildClientEventFetchRequestOptions","_asyncToGenerator2","_regenerator","mark","_callee","_ref8","wrap","_callee$","_context","prev","next","abrupt","buildClientEventFetchRequestOptions","stop","_x","setMetricTimingsAndFetch","setTimingsAndFetch","setMetricTimings","isServiceErrorExpected","serviceErrorCode","WebexPlugin","_default","exports"],"sources":["new-metrics.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-unused-vars */\n/* eslint-disable class-methods-use-this */\n/* eslint-disable valid-jsdoc */\n\n// @ts-ignore\nimport {WebexPlugin} from '@webex/webex-core';\n\nimport CallDiagnosticMetrics from './call-diagnostic/call-diagnostic-metrics';\nimport BehavioralMetrics from './behavioral-metrics';\nimport OperationalMetrics from './operational-metrics';\nimport BusinessMetrics from './business-metrics';\nimport {\n RecursivePartial,\n MetricEventProduct,\n MetricEventAgent,\n MetricEventVerb,\n ClientEvent,\n FeatureEvent,\n EventPayload,\n OperationalEvent,\n MediaQualityEvent,\n InternalEvent,\n SubmitClientEventOptions,\n} from './metrics.types';\nimport CallDiagnosticLatencies from './call-diagnostic/call-diagnostic-metrics-latencies';\nimport {setMetricTimings} from './call-diagnostic/call-diagnostic-metrics.util';\nimport {generateCommonErrorMetadata} from './utils';\n\n/**\n * Metrics plugin to centralize all types of metrics.\n * @class\n */\nclass Metrics extends WebexPlugin {\n // eslint-disable-next-line no-use-before-define\n static instance: Metrics;\n\n // Call Diagnostic latencies\n callDiagnosticLatencies: CallDiagnosticLatencies;\n // Helper classes to handle the different types of metrics\n callDiagnosticMetrics: CallDiagnosticMetrics;\n behavioralMetrics: BehavioralMetrics;\n operationalMetrics: OperationalMetrics;\n businessMetrics: BusinessMetrics;\n isReady = false;\n\n /**\n * Constructor\n * @param args\n * @constructor\n * @private\n * @returns\n */\n constructor(...args) {\n super(...args);\n\n // @ts-ignore\n this.callDiagnosticLatencies = new CallDiagnosticLatencies({}, {parent: this.webex});\n this.onReady();\n }\n\n /**\n * On Ready\n */\n private onReady() {\n // @ts-ignore\n this.webex.once('ready', () => {\n // @ts-ignore\n this.callDiagnosticMetrics = new CallDiagnosticMetrics({}, {parent: this.webex});\n this.isReady = true;\n });\n }\n\n /**\n * Used for internal purposes only\n * @param args\n */\n submitInternalEvent({\n name,\n payload,\n options,\n }: {\n name: InternalEvent['name'];\n payload?: RecursivePartial<InternalEvent['payload']>;\n options?: any;\n }) {\n if (name === 'internal.reset.join.latencies') {\n this.callDiagnosticLatencies.clearTimestamps();\n } else {\n this.callDiagnosticLatencies.saveTimestamp({key: name});\n }\n }\n\n /**\n * if webex metrics is ready, build behavioral metric backend if not already done.\n */\n private lazyBuildBehavioralMetrics() {\n if (this.isReady && !this.behavioralMetrics) {\n // @ts-ignore\n this.behavioralMetrics = new BehavioralMetrics({}, {parent: this.webex});\n }\n }\n\n /**\n * if webex metrics is ready, build operational metric backend if not already done.\n */\n private lazyBuildOperationalMetrics() {\n if (this.isReady && !this.operationalMetrics) {\n // @ts-ignore\n this.operationalMetrics = new OperationalMetrics({}, {parent: this.webex});\n }\n }\n\n /**\n * if webex metrics is ready, build business metric backend if not already done.\n */\n private lazyBuildBusinessMetrics() {\n if (this.isReady && !this.businessMetrics) {\n // @ts-ignore\n this.businessMetrics = new BusinessMetrics({}, {parent: this.webex});\n }\n }\n\n /**\n * @returns true once we have the deviceId we need to submit behavioral events to Amplitude\n */\n isReadyToSubmitBehavioralEvents() {\n this.lazyBuildBehavioralMetrics();\n\n return this.behavioralMetrics?.isReadyToSubmitEvents() ?? false;\n }\n\n /**\n * @returns true once we have the deviceId we need to submit operational events\n */\n isReadyToSubmitOperationalEvents() {\n this.lazyBuildOperationalMetrics();\n\n return this.operationalMetrics?.isReadyToSubmitEvents() ?? false;\n }\n\n /**\n * @returns true once we have the deviceId we need to submit buisness events\n */\n isReadyToSubmitBusinessEvents() {\n this.lazyBuildBusinessMetrics();\n\n return this.businessMetrics?.isReadyToSubmitEvents() ?? false;\n }\n\n /**\n * Behavioral event\n * @param args\n */\n submitBehavioralEvent({\n product,\n agent,\n target,\n verb,\n payload,\n }: {\n product: MetricEventProduct;\n agent: MetricEventAgent;\n target: string;\n verb: MetricEventVerb;\n payload?: EventPayload;\n }) {\n if (!this.isReady) {\n // @ts-ignore\n this.webex.logger.log(\n `NewMetrics: @submitBehavioralEvent. Attempted to submit before webex.ready: ${product}.${agent}.${target}.${verb}`\n );\n\n return Promise.resolve();\n }\n\n this.lazyBuildBehavioralMetrics();\n\n return this.behavioralMetrics.submitBehavioralEvent({product, agent, target, verb, payload});\n }\n\n /**\n * Operational event\n * @param args\n */\n submitOperationalEvent({name, payload}: {name: string; payload?: EventPayload}) {\n if (!this.isReady) {\n // @ts-ignore\n this.webex.logger.log(\n `NewMetrics: @submitOperationalEvent. Attempted to submit before webex.ready: ${name}`\n );\n\n return Promise.resolve();\n }\n\n this.lazyBuildOperationalMetrics();\n\n return this.operationalMetrics.submitOperationalEvent({name, payload});\n }\n\n /**\n * Buisness event\n * @param args\n */\n submitBusinessEvent({name, payload}: {name: string; payload: EventPayload}) {\n if (!this.isReady) {\n // @ts-ignore\n this.webex.logger.log(\n `NewMetrics: @submitBusinessEvent. Attempted to submit before webex.ready: ${name}`\n );\n\n return Promise.resolve();\n }\n\n this.lazyBuildBusinessMetrics();\n\n return this.businessMetrics.submitBusinessEvent({name, payload});\n }\n\n /**\n * Call Analyzer: Media Quality Event\n * @param args\n */\n submitMQE({\n name,\n payload,\n options,\n }: {\n name: MediaQualityEvent['name'];\n payload: RecursivePartial<MediaQualityEvent['payload']> & {\n intervals: MediaQualityEvent['payload']['intervals'];\n };\n options: any;\n }) {\n this.callDiagnosticLatencies.saveTimestamp({key: name});\n this.callDiagnosticMetrics.submitMQE({name, payload, options});\n }\n\n /**\n * Call Analyzer: Feature Usage Event\n * @param args\n */\n submitFeatureEvent({\n name,\n payload,\n options,\n }: {\n name: FeatureEvent['name'];\n payload?: RecursivePartial<FeatureEvent['payload']>;\n options: any;\n }) {\n throw new Error('Not implemented.');\n }\n\n /**\n * Call Analyzer: Client Event\n * @public\n * @param args\n */\n public submitClientEvent({\n name,\n payload,\n options,\n }: {\n name: ClientEvent['name'];\n payload?: RecursivePartial<ClientEvent['payload']>;\n options?: SubmitClientEventOptions;\n }): Promise<any> {\n if (!this.callDiagnosticLatencies || !this.callDiagnosticMetrics) {\n // @ts-ignore\n this.webex.logger.log(\n `NewMetrics: @submitClientEvent. Attempted to submit before webex.ready. Event name: ${name}`\n );\n\n return Promise.resolve();\n }\n this.callDiagnosticLatencies.saveTimestamp({\n key: name,\n options: {meetingId: options?.meetingId},\n });\n\n return this.callDiagnosticMetrics.submitClientEvent({name, payload, options});\n }\n\n /**\n * Issue request to alias a user's pre-login ID with their CI UUID\n * @param {string} preLoginId\n * @returns {Object} HttpResponse object\n */\n public clientMetricsAliasUser(preLoginId: string) {\n // @ts-ignore\n return this.webex\n .request({\n method: 'POST',\n api: 'metrics',\n resource: 'clientmetrics',\n headers: {\n 'x-prelogin-userid': preLoginId,\n },\n body: {},\n qs: {\n alias: true,\n },\n })\n .then((res) => {\n // @ts-ignore\n this.webex.logger.log(`NewMetrics: @clientMetricsAliasUser. Request successful.`);\n\n return res;\n })\n .catch((err) => {\n // @ts-ignore\n this.logger.error(\n `NewMetrics: @clientMetricsAliasUser. Request failed:`,\n `err: ${generateCommonErrorMetadata(err)}`\n );\n\n return Promise.reject(err);\n });\n }\n\n /**\n * Returns a promise that will resolve to fetch options for submitting a metric.\n *\n * This is to support quickly submitting metrics when the browser/tab is closing.\n * Calling submitClientEvent will not work because there some async steps that will\n * not complete before the browser is closed. Instead, we pre-gather all the\n * information/options needed for the request(s), and then simply and quickly\n * fire the fetch(es) when beforeUnload is triggered.\n *\n * We must use fetch instead of request because fetch has a keepalive option that\n * allows the request it to outlive the page.\n *\n * Note: the timings values will be wrong, but setMetricTimingsAndFetch() will\n * properly adjust them before submitting.\n *\n * @public\n * @param {Object} arg\n * @param {String} arg.name - event name\n * @param {Object} arg.payload - event payload\n * @param {Object} arg.options - other options\n * @returns {Promise} promise that resolves to options to be used with fetch\n */\n public async buildClientEventFetchRequestOptions({\n name,\n payload,\n options,\n }: {\n name: ClientEvent['name'];\n payload?: RecursivePartial<ClientEvent['payload']>;\n options?: SubmitClientEventOptions;\n }): Promise<any> {\n return this.callDiagnosticMetrics.buildClientEventFetchRequestOptions({\n name,\n payload,\n options,\n });\n }\n\n /**\n * Submits a metric from pre-built request options via the fetch API. Updates\n * the \"$timings\" and \"originTime\" values to Date.now() since the existing times\n * were set when the options were built (not submitted).\n\n * @param {any} options - the pre-built request options for submitting a metric\n * @returns {Promise} promise that resolves to the response object\n */\n public setMetricTimingsAndFetch(options: any): Promise<any> {\n // @ts-ignore\n return this.webex.setTimingsAndFetch(setMetricTimings(options));\n }\n\n /**\n * Returns true if the specified serviceErrorCode maps to an expected error.\n * @param {number} serviceErrorCode the service error code\n * @returns {boolean}\n */\n public isServiceErrorExpected(serviceErrorCode: number): boolean {\n return this.callDiagnosticMetrics.isServiceErrorExpected(serviceErrorCode);\n }\n}\n\nexport default Metrics;\n"],"mappings":"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"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _Reflect$construct = require("@babel/runtime-corejs2/core-js/reflect/construct");
|
|
4
|
+
var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
|
|
5
|
+
var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
|
|
6
|
+
_Object$defineProperty(exports, "__esModule", {
|
|
7
|
+
value: true
|
|
8
|
+
});
|
|
9
|
+
exports.default = void 0;
|
|
10
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/classCallCheck"));
|
|
11
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/createClass"));
|
|
12
|
+
var _inherits2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/inherits"));
|
|
13
|
+
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/possibleConstructorReturn"));
|
|
14
|
+
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/getPrototypeOf"));
|
|
15
|
+
var _genericMetrics = _interopRequireDefault(require("./generic-metrics"));
|
|
16
|
+
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = _Reflect$construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
|
|
17
|
+
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !_Reflect$construct) return false; if (_Reflect$construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(_Reflect$construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
18
|
+
/**
|
|
19
|
+
* @description Util class to handle Operational Metrics
|
|
20
|
+
* @export
|
|
21
|
+
* @class OperationalMetrics
|
|
22
|
+
*/
|
|
23
|
+
var OperationalMetrics = exports.default = /*#__PURE__*/function (_GenericMetrics) {
|
|
24
|
+
(0, _inherits2.default)(OperationalMetrics, _GenericMetrics);
|
|
25
|
+
var _super = _createSuper(OperationalMetrics);
|
|
26
|
+
function OperationalMetrics() {
|
|
27
|
+
(0, _classCallCheck2.default)(this, OperationalMetrics);
|
|
28
|
+
return _super.apply(this, arguments);
|
|
29
|
+
}
|
|
30
|
+
(0, _createClass2.default)(OperationalMetrics, [{
|
|
31
|
+
key: "submitOperationalEvent",
|
|
32
|
+
value:
|
|
33
|
+
/**
|
|
34
|
+
* Submit an operational metric to our metrics endpoint.
|
|
35
|
+
* @param {string} name of the metric
|
|
36
|
+
* @param {EventPayload} user payload of the metric
|
|
37
|
+
* @returns {Promise<any>}
|
|
38
|
+
*/
|
|
39
|
+
function submitOperationalEvent(_ref) {
|
|
40
|
+
var name = _ref.name,
|
|
41
|
+
payload = _ref.payload;
|
|
42
|
+
var event = this.createTaggedEventObject({
|
|
43
|
+
type: ['operational'],
|
|
44
|
+
name: name,
|
|
45
|
+
payload: payload
|
|
46
|
+
});
|
|
47
|
+
this.submitEvent({
|
|
48
|
+
kind: 'operational-events -> ',
|
|
49
|
+
name: name,
|
|
50
|
+
event: event
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
}]);
|
|
54
|
+
return OperationalMetrics;
|
|
55
|
+
}(_genericMetrics.default);
|
|
56
|
+
//# sourceMappingURL=operational-metrics.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_genericMetrics","_interopRequireDefault","require","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","default","result","NewTarget","constructor","_Reflect$construct","arguments","apply","_possibleConstructorReturn2","Reflect","sham","Proxy","Boolean","prototype","valueOf","call","e","OperationalMetrics","exports","_GenericMetrics","_inherits2","_super","_classCallCheck2","_createClass2","key","value","submitOperationalEvent","_ref","name","payload","event","createTaggedEventObject","type","submitEvent","kind","GenericMetrics"],"sources":["operational-metrics.ts"],"sourcesContent":["import GenericMetrics from './generic-metrics';\nimport {EventPayload} from './metrics.types';\n\n/**\n * @description Util class to handle Operational Metrics\n * @export\n * @class OperationalMetrics\n */\nexport default class OperationalMetrics extends GenericMetrics {\n /**\n * Submit an operational metric to our metrics endpoint.\n * @param {string} name of the metric\n * @param {EventPayload} user payload of the metric\n * @returns {Promise<any>}\n */\n public submitOperationalEvent({name, payload}: {name: string; payload: EventPayload}) {\n const event = this.createTaggedEventObject({\n type: ['operational'],\n name,\n payload,\n });\n this.submitEvent({kind: 'operational-events -> ', name, event});\n }\n}\n"],"mappings":";;;;;;;;;;;;;;AAAA,IAAAA,eAAA,GAAAC,sBAAA,CAAAC,OAAA;AAA+C,SAAAC,aAAAC,OAAA,QAAAC,yBAAA,GAAAC,yBAAA,oBAAAC,qBAAA,QAAAC,KAAA,OAAAC,gBAAA,CAAAC,OAAA,EAAAN,OAAA,GAAAO,MAAA,MAAAN,yBAAA,QAAAO,SAAA,OAAAH,gBAAA,CAAAC,OAAA,QAAAG,WAAA,EAAAF,MAAA,GAAAG,kBAAA,CAAAN,KAAA,EAAAO,SAAA,EAAAH,SAAA,YAAAD,MAAA,GAAAH,KAAA,CAAAQ,KAAA,OAAAD,SAAA,gBAAAE,2BAAA,CAAAP,OAAA,QAAAC,MAAA;AAAA,SAAAL,0BAAA,eAAAY,OAAA,qBAAAJ,kBAAA,oBAAAA,kBAAA,CAAAK,IAAA,2BAAAC,KAAA,oCAAAC,OAAA,CAAAC,SAAA,CAAAC,OAAA,CAAAC,IAAA,CAAAV,kBAAA,CAAAO,OAAA,8CAAAI,CAAA;AAG/C;AACA;AACA;AACA;AACA;AAJA,IAKqBC,kBAAkB,GAAAC,OAAA,CAAAjB,OAAA,0BAAAkB,eAAA;EAAA,IAAAC,UAAA,CAAAnB,OAAA,EAAAgB,kBAAA,EAAAE,eAAA;EAAA,IAAAE,MAAA,GAAA3B,YAAA,CAAAuB,kBAAA;EAAA,SAAAA,mBAAA;IAAA,IAAAK,gBAAA,CAAArB,OAAA,QAAAgB,kBAAA;IAAA,OAAAI,MAAA,CAAAd,KAAA,OAAAD,SAAA;EAAA;EAAA,IAAAiB,aAAA,CAAAtB,OAAA,EAAAgB,kBAAA;IAAAO,GAAA;IAAAC,KAAA;IACrC;AACF;AACA;AACA;AACA;AACA;IACE,SAAAC,uBAAAC,IAAA,EAAsF;MAAA,IAAvDC,IAAI,GAAAD,IAAA,CAAJC,IAAI;QAAEC,OAAO,GAAAF,IAAA,CAAPE,OAAO;MAC1C,IAAMC,KAAK,GAAG,IAAI,CAACC,uBAAuB,CAAC;QACzCC,IAAI,EAAE,CAAC,aAAa,CAAC;QACrBJ,IAAI,EAAJA,IAAI;QACJC,OAAO,EAAPA;MACF,CAAC,CAAC;MACF,IAAI,CAACI,WAAW,CAAC;QAACC,IAAI,EAAE,wBAAwB;QAAEN,IAAI,EAAJA,IAAI;QAAEE,KAAK,EAALA;MAAK,CAAC,CAAC;IACjE;EAAC;EAAA,OAAAb,kBAAA;AAAA,EAd6CkB,uBAAc"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { MetricEventProduct, MetricEventAgent, MetricEventVerb, EventPayload } from './metrics.types';
|
|
2
|
+
import GenericMetrics from './generic-metrics';
|
|
3
|
+
/**
|
|
4
|
+
* @description Util class to handle Behavioral Metrics
|
|
5
|
+
* @export
|
|
6
|
+
* @class BehavioralMetrics
|
|
7
|
+
*/
|
|
8
|
+
export default class BehavioralMetrics extends GenericMetrics {
|
|
9
|
+
/**
|
|
10
|
+
* Submit a behavioral metric to our metrics endpoint.
|
|
11
|
+
* @param {MetricEventProduct} product the product from which the metric is being submitted, e.g. 'webex' web client, 'wxcc_desktop'
|
|
12
|
+
* @param {MetricEventAgent} agent the source of the action for this metric
|
|
13
|
+
* @param {string} target the 'thing' that this metric includes information about
|
|
14
|
+
* @param {MetricEventVerb} verb the action that this metric includes information about
|
|
15
|
+
* @param {EventPayload} payload information specific to this event. This should be flat, i.e. it should not include nested objects.
|
|
16
|
+
* @returns {Promise<any>}
|
|
17
|
+
*/
|
|
18
|
+
submitBehavioralEvent({ product, agent, target, verb, payload, }: {
|
|
19
|
+
product: MetricEventProduct;
|
|
20
|
+
agent: MetricEventAgent;
|
|
21
|
+
target: string;
|
|
22
|
+
verb: MetricEventVerb;
|
|
23
|
+
payload?: EventPayload;
|
|
24
|
+
}): void;
|
|
25
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import GenericMetrics from './generic-metrics';
|
|
2
|
+
import { EventPayload } from './metrics.types';
|
|
3
|
+
/**
|
|
4
|
+
* @description Util class to handle Buisness Metrics
|
|
5
|
+
* @export
|
|
6
|
+
* @class BusinessMetrics
|
|
7
|
+
*/
|
|
8
|
+
export default class BusinessMetrics extends GenericMetrics {
|
|
9
|
+
/**
|
|
10
|
+
* Submit a buisness metric to our metrics endpoint.
|
|
11
|
+
* @param {string} name of the metric
|
|
12
|
+
* @param {EventPayload} user payload of the metric
|
|
13
|
+
* @returns {Promise<any>}
|
|
14
|
+
*/
|
|
15
|
+
submitBusinessEvent({ name, payload }: {
|
|
16
|
+
name: string;
|
|
17
|
+
payload: EventPayload;
|
|
18
|
+
}): void;
|
|
19
|
+
}
|
|
@@ -13,6 +13,7 @@ type GetIdentifiersOptions = {
|
|
|
13
13
|
meeting?: any;
|
|
14
14
|
mediaConnections?: any[];
|
|
15
15
|
correlationId?: string;
|
|
16
|
+
sessionCorrelationId?: string;
|
|
16
17
|
preLoginId?: string;
|
|
17
18
|
globalMeetingId?: string;
|
|
18
19
|
webexConferenceIdStr?: string;
|
|
@@ -65,7 +66,7 @@ export default class CallDiagnosticMetrics extends StatelessWebexPlugin {
|
|
|
65
66
|
* @returns
|
|
66
67
|
*/
|
|
67
68
|
getOrigin(options: GetOriginOptions, meetingId?: string): {
|
|
68
|
-
name: "endpoint" | "antares" | "beech" | "breakout" | "cb" | "cloudproxy" | "edonus" | "givr" | "hecate" | "hedge" | "hesiod" | "homer" | "superhomer" | "l2sip" | "linus" | "locus" | "mcc" | "mcs" | "mercury" | "mes" | "mjs" | "mmp" | "mygdon" | "orpheus" | "page" | "poros" | "rhesos" | "terminus" | "tpgw" | "ucc" | "wdm" | "webexivr";
|
|
69
|
+
name: "endpoint" | "addin" | "antares" | "appapi" | "beech" | "breakout" | "calendar" | "cb" | "cca" | "ccc" | "cloudproxy" | "edonus" | "givr" | "hecate" | "hedge" | "hesiod" | "homer" | "superhomer" | "l2sip" | "linus" | "locus" | "mbs" | "mcc" | "mcs" | "mercury" | "mes" | "mjs" | "mmp" | "mygdon" | "ngservice" | "orpheus" | "page" | "poros" | "publicapi" | "rhesos" | "terminus" | "tpgw" | "ucc" | "wdm" | "webexivr";
|
|
69
70
|
userAgent: string;
|
|
70
71
|
buildType?: "debug" | "test" | "prod" | "tap" | "analyzer-test";
|
|
71
72
|
upgradeChannel?: string;
|
|
@@ -77,7 +78,7 @@ export default class CallDiagnosticMetrics extends StatelessWebexPlugin {
|
|
|
77
78
|
environment?: string;
|
|
78
79
|
newEnvironment?: string;
|
|
79
80
|
clientInfo?: {
|
|
80
|
-
os?: "
|
|
81
|
+
os?: "windows" | "mac" | "ios" | "android" | "chrome" | "linux" | "other" | "android-x64" | "android-arm64" | "uwp-arm64";
|
|
81
82
|
osVersion?: string;
|
|
82
83
|
localIP?: string;
|
|
83
84
|
gatewayIP?: string;
|
|
@@ -89,7 +90,8 @@ export default class CallDiagnosticMetrics extends StatelessWebexPlugin {
|
|
|
89
90
|
browser?: string;
|
|
90
91
|
browserVersion?: string;
|
|
91
92
|
clientType?: "MEETING_CENTER" | "EVENT_CENTER" | "TRAINING_CENTER" | "TEAMS_CLIENT" | "TEAMS_DEVICE" | "TEAMS_SHARE" | "SIP" | "RECORDING" | "CLOUD_AWARE_SIP" | "TEAMS_WXC_CLIENT" | "WXC_CLIENT" | "WXC_DEVICE" | "WEBEX_JS_SDK" | "VOICEA_CLIENT" | "CISCO_SIP_GW" | "WEBEX_SDK" | "CPAAS_THIRD_PARTY_SDK" | "WXC_THIRD_PARTY" | "WXCC";
|
|
92
|
-
subClientType?: "TEAMS_DEVICE" | "DESKTOP_APP" | "DESKTOP_APP_VDI" | "DEVICE_CURRENT" | "DEVICE_LEGACY_2020" | "HOLOGRAM_HEADSET_APP" | "HVDI_APP" | "MIXED" | "MOBILE_APP" | "MOBILE_NETWORK" | "PAGE" | "VDI_APP" | "WEB_APP";
|
|
93
|
+
subClientType?: "TEAMS_DEVICE" | "AUTOMOTIVE_APP" | "DESKTOP_APP" | "DESKTOP_APP_VDI" | "DEVICE_CURRENT" | "DEVICE_LEGACY_2020" | "HOLOGRAM_HEADSET_APP" | "HVDI_APP" | "MIXED" | "MOBILE_APP" | "MOBILE_NETWORK" | "PAGE" | "VDI_APP" | "WEB_APP";
|
|
94
|
+
schedulingClientType?: "TEAMS_CLIENT" | "GOOGLE_ADDON" | "PT" | "PUBLIC_API" | "UNIFIED_PAGE" | "WEBEX_PAGE" | "GOOGLE_NOTIFICATION_CALENDAR" | "MSFT_NOTIFICATION_ADDIN" | "MSFT_NOTIFICATION_CALENDAR" | "OUTLOOK_ADDIN";
|
|
93
95
|
clientVersion?: string;
|
|
94
96
|
clientVersionStatus?: "CURRENT" | "LEGACY" | "UNSUPPORTED";
|
|
95
97
|
localClientVersion?: string;
|
|
@@ -113,10 +115,10 @@ export default class CallDiagnosticMetrics extends StatelessWebexPlugin {
|
|
|
113
115
|
isValidClientVersion?: boolean;
|
|
114
116
|
cpuInfo?: {
|
|
115
117
|
description: string;
|
|
116
|
-
clockSpeedGigaHertz: number;
|
|
117
118
|
numberOfCores: number;
|
|
118
119
|
architecture: "unknown" | "intel32" | "intel64" | "amd32" | "amd64" | "arm32" | "arm64";
|
|
119
120
|
staticPerformance?: string;
|
|
121
|
+
clockSpeedGigaHertz?: number;
|
|
120
122
|
additionalProperties?: false;
|
|
121
123
|
};
|
|
122
124
|
shareType?: "cb-normal-share" | "ce-airplay-share" | "ce-direct-share" | "ce-gui-loopback-share" | "ce-input-source-share" | "ce-input-source-share-hdmi" | "ce-input-source-share-usbc" | "ce-jpg-share" | "ce-miracast-share" | "mcs-normal-share" | "mcs-normal-audio-share" | "mcs-hfps-share" | "mcs-hfps-audio-share";
|
|
@@ -147,6 +149,7 @@ export default class CallDiagnosticMetrics extends StatelessWebexPlugin {
|
|
|
147
149
|
breakoutGroupId?: string;
|
|
148
150
|
breakoutMoveId?: string;
|
|
149
151
|
breakoutSessionId?: string;
|
|
152
|
+
ciExchangeTokenUrl?: string;
|
|
150
153
|
confluenceId?: string;
|
|
151
154
|
cpaasIdentifiers?: {
|
|
152
155
|
imiTenantId: string;
|
|
@@ -164,11 +167,14 @@ export default class CallDiagnosticMetrics extends StatelessWebexPlugin {
|
|
|
164
167
|
destinationVenueId?: string;
|
|
165
168
|
deviceId?: string;
|
|
166
169
|
globalMeetingId?: string;
|
|
170
|
+
installationId?: string;
|
|
171
|
+
webexMeetingUUID?: string;
|
|
167
172
|
ivrCallId?: string;
|
|
168
173
|
ivrDialogId?: string;
|
|
169
174
|
ivrId?: string;
|
|
170
175
|
callId?: string;
|
|
171
176
|
locusId?: string;
|
|
177
|
+
locusJoinUrl?: string;
|
|
172
178
|
locusSessionId?: string;
|
|
173
179
|
locusStartTime?: string;
|
|
174
180
|
locusUrl?: string;
|
|
@@ -179,6 +185,7 @@ export default class CallDiagnosticMetrics extends StatelessWebexPlugin {
|
|
|
179
185
|
meetingInstanceId?: string;
|
|
180
186
|
meetingLookupUrl?: string;
|
|
181
187
|
meetingOrgId?: string;
|
|
188
|
+
metricServiceUrl?: string;
|
|
182
189
|
msteamsTenantGuid?: string;
|
|
183
190
|
msteamsConferenceId?: string;
|
|
184
191
|
msteamsMeetingId?: string;
|
|
@@ -186,6 +193,7 @@ export default class CallDiagnosticMetrics extends StatelessWebexPlugin {
|
|
|
186
193
|
orgId?: string;
|
|
187
194
|
provisionalCorrelationId?: string;
|
|
188
195
|
roomId?: string;
|
|
196
|
+
sessionCorrelationId?: string;
|
|
189
197
|
sipCallId?: string;
|
|
190
198
|
sipSessionId?: {
|
|
191
199
|
local?: string;
|
|
@@ -200,6 +208,7 @@ export default class CallDiagnosticMetrics extends StatelessWebexPlugin {
|
|
|
200
208
|
venueId?: string;
|
|
201
209
|
venueUrl?: string;
|
|
202
210
|
whiteboardUrl?: string;
|
|
211
|
+
wdmDeviceRegistrationUrl?: string;
|
|
203
212
|
webexConferenceId?: number;
|
|
204
213
|
webexClusterName?: string;
|
|
205
214
|
webexConferenceIdStr?: string;
|
|
@@ -219,6 +228,7 @@ export default class CallDiagnosticMetrics extends StatelessWebexPlugin {
|
|
|
219
228
|
breakoutGroupId?: string;
|
|
220
229
|
breakoutMoveId?: string;
|
|
221
230
|
breakoutSessionId?: string;
|
|
231
|
+
ciExchangeTokenUrl?: string;
|
|
222
232
|
confluenceId?: string;
|
|
223
233
|
cpaasIdentifiers?: {
|
|
224
234
|
imiTenantId: string;
|
|
@@ -236,11 +246,14 @@ export default class CallDiagnosticMetrics extends StatelessWebexPlugin {
|
|
|
236
246
|
destinationVenueId?: string;
|
|
237
247
|
deviceId?: string;
|
|
238
248
|
globalMeetingId?: string;
|
|
249
|
+
installationId?: string;
|
|
250
|
+
webexMeetingUUID?: string;
|
|
239
251
|
ivrCallId?: string;
|
|
240
252
|
ivrDialogId?: string;
|
|
241
253
|
ivrId?: string;
|
|
242
254
|
callId?: string;
|
|
243
255
|
locusId?: string;
|
|
256
|
+
locusJoinUrl?: string;
|
|
244
257
|
locusSessionId?: string;
|
|
245
258
|
locusStartTime?: string;
|
|
246
259
|
locusUrl?: string;
|
|
@@ -251,6 +264,7 @@ export default class CallDiagnosticMetrics extends StatelessWebexPlugin {
|
|
|
251
264
|
meetingInstanceId?: string;
|
|
252
265
|
meetingLookupUrl?: string;
|
|
253
266
|
meetingOrgId?: string;
|
|
267
|
+
metricServiceUrl?: string;
|
|
254
268
|
msteamsTenantGuid?: string;
|
|
255
269
|
msteamsConferenceId?: string;
|
|
256
270
|
msteamsMeetingId?: string;
|
|
@@ -258,6 +272,7 @@ export default class CallDiagnosticMetrics extends StatelessWebexPlugin {
|
|
|
258
272
|
orgId?: string;
|
|
259
273
|
provisionalCorrelationId?: string;
|
|
260
274
|
roomId?: string;
|
|
275
|
+
sessionCorrelationId?: string;
|
|
261
276
|
sipCallId?: string;
|
|
262
277
|
sipSessionId?: {
|
|
263
278
|
local?: string;
|
|
@@ -272,6 +287,7 @@ export default class CallDiagnosticMetrics extends StatelessWebexPlugin {
|
|
|
272
287
|
venueId?: string;
|
|
273
288
|
venueUrl?: string;
|
|
274
289
|
whiteboardUrl?: string;
|
|
290
|
+
wdmDeviceRegistrationUrl?: string;
|
|
275
291
|
webexConferenceId?: number;
|
|
276
292
|
webexClusterName?: string;
|
|
277
293
|
webexConferenceIdStr?: string;
|
|
@@ -336,7 +352,7 @@ export default class CallDiagnosticMetrics extends StatelessWebexPlugin {
|
|
|
336
352
|
*/
|
|
337
353
|
generateClientEventErrorPayload(rawError: any): {
|
|
338
354
|
fatal: boolean;
|
|
339
|
-
category: "
|
|
355
|
+
category: "other" | "signaling" | "media" | "network" | "expected";
|
|
340
356
|
errorDescription?: string;
|
|
341
357
|
errorCode?: number;
|
|
342
358
|
errorCodeStr?: string;
|
|
@@ -68,10 +68,11 @@ export declare const isSdpOfferCreationError: (rawError: any) => boolean;
|
|
|
68
68
|
*/
|
|
69
69
|
export declare const isBrowserMediaErrorName: (errorName: any) => boolean;
|
|
70
70
|
/**
|
|
71
|
+
* @param {Object} webex sdk instance
|
|
71
72
|
* @param webClientDomain
|
|
72
73
|
* @returns
|
|
73
74
|
*/
|
|
74
|
-
export declare const getBuildType: (webClientDomain: any, markAsTestEvent?: boolean) => Event['origin']['buildType'];
|
|
75
|
+
export declare const getBuildType: (webex: any, webClientDomain: any, markAsTestEvent?: boolean) => Event['origin']['buildType'];
|
|
75
76
|
/**
|
|
76
77
|
* Prepare metric item for submission.
|
|
77
78
|
* @param {Object} webex sdk instance
|