@webex/internal-plugin-metrics 3.3.1 → 3.4.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/behavioral-metrics.js +199 -0
- package/dist/behavioral/behavioral-metrics.js.map +1 -0
- package/dist/behavioral/config.js +11 -0
- package/dist/behavioral/config.js.map +1 -0
- package/dist/call-diagnostic/call-diagnostic-metrics.js +3 -0
- package/dist/call-diagnostic/call-diagnostic-metrics.js.map +1 -1
- package/dist/call-diagnostic/call-diagnostic-metrics.util.js +14 -11
- package/dist/call-diagnostic/call-diagnostic-metrics.util.js.map +1 -1
- package/dist/call-diagnostic/config.js +19 -13
- package/dist/call-diagnostic/config.js.map +1 -1
- package/dist/index.js +7 -0
- 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 +31 -6
- package/dist/new-metrics.js.map +1 -1
- package/dist/types/behavioral/behavioral-metrics.d.ts +63 -0
- package/dist/types/behavioral/config.d.ts +1 -0
- package/dist/types/call-diagnostic/call-diagnostic-metrics.util.d.ts +3 -2
- package/dist/types/call-diagnostic/config.d.ts +2 -0
- package/dist/types/index.d.ts +2 -1
- package/dist/types/metrics.types.d.ts +28 -7
- package/dist/types/new-metrics.d.ts +14 -6
- package/package.json +11 -11
- package/src/behavioral/behavioral-metrics.ts +179 -0
- package/src/behavioral/config.ts +3 -0
- package/src/call-diagnostic/call-diagnostic-metrics.ts +3 -0
- package/src/call-diagnostic/call-diagnostic-metrics.util.ts +16 -17
- package/src/call-diagnostic/config.ts +9 -2
- package/src/index.ts +2 -0
- package/src/metrics.types.ts +59 -8
- package/src/new-metrics.ts +34 -8
- package/test/unit/spec/behavioral/behavioral-metrics.ts +164 -0
- package/test/unit/spec/call-diagnostic/call-diagnostic-metrics-batcher.ts +48 -52
- package/test/unit/spec/call-diagnostic/call-diagnostic-metrics-latencies.ts +1 -1
- package/test/unit/spec/call-diagnostic/call-diagnostic-metrics.ts +9 -0
- package/test/unit/spec/call-diagnostic/call-diagnostic-metrics.util.ts +41 -22
- package/test/unit/spec/prelogin-metrics-batcher.ts +1 -1
|
@@ -7,6 +7,7 @@ import CallDiagnosticLatencies from '../../../../src/call-diagnostic/call-diagno
|
|
|
7
7
|
import {
|
|
8
8
|
DTLS_HANDSHAKE_FAILED_CLIENT_CODE,
|
|
9
9
|
ICE_FAILED_WITHOUT_TURN_TLS_CLIENT_CODE,
|
|
10
|
+
ICE_AND_REACHABILITY_FAILED_CLIENT_CODE,
|
|
10
11
|
ICE_FAILED_WITH_TURN_TLS_CLIENT_CODE,
|
|
11
12
|
MISSING_ROAP_ANSWER_CLIENT_CODE,
|
|
12
13
|
} from '../../../../src/call-diagnostic/config';
|
|
@@ -374,6 +375,12 @@ describe('internal-plugin-metrics', () => {
|
|
|
374
375
|
joinTimes: {
|
|
375
376
|
localSDPGenRemoteSDPRecv: undefined,
|
|
376
377
|
},
|
|
378
|
+
audioSetupDelay: {
|
|
379
|
+
joinRespRxStart: undefined,
|
|
380
|
+
},
|
|
381
|
+
videoSetupDelay: {
|
|
382
|
+
joinRespRxStart: undefined,
|
|
383
|
+
},
|
|
377
384
|
},
|
|
378
385
|
],
|
|
379
386
|
[
|
|
@@ -388,14 +395,12 @@ describe('internal-plugin-metrics', () => {
|
|
|
388
395
|
},
|
|
389
396
|
],
|
|
390
397
|
[
|
|
391
|
-
'client.
|
|
398
|
+
'client.media.tx.start',
|
|
392
399
|
{
|
|
393
400
|
audioSetupDelay: {
|
|
394
|
-
joinRespRxStart: undefined,
|
|
395
401
|
joinRespTxStart: undefined,
|
|
396
402
|
},
|
|
397
403
|
videoSetupDelay: {
|
|
398
|
-
joinRespRxStart: undefined,
|
|
399
404
|
joinRespTxStart: undefined,
|
|
400
405
|
},
|
|
401
406
|
},
|
|
@@ -406,20 +411,28 @@ describe('internal-plugin-metrics', () => {
|
|
|
406
411
|
});
|
|
407
412
|
});
|
|
408
413
|
|
|
409
|
-
it('
|
|
410
|
-
const
|
|
411
|
-
const markAsTestEvent = true;
|
|
412
|
-
const webClientDomain = 'https://web.webex.com';
|
|
413
|
-
|
|
414
|
-
// just submit any event
|
|
415
|
-
prepareDiagnosticMetricItem(webex, {
|
|
414
|
+
it('getBuildType returns correct value', () => {
|
|
415
|
+
const item: any = {
|
|
416
416
|
eventPayload: {
|
|
417
|
-
event: {
|
|
417
|
+
event: {
|
|
418
|
+
name: 'client.exit.app',
|
|
419
|
+
eventData: {
|
|
420
|
+
markAsTestEvent: true,
|
|
421
|
+
webClientDomain: 'https://web.webex.com'
|
|
422
|
+
}
|
|
423
|
+
},
|
|
418
424
|
},
|
|
419
425
|
type: ['diagnostic-event'],
|
|
420
|
-
}
|
|
426
|
+
};
|
|
421
427
|
|
|
422
|
-
|
|
428
|
+
// just submit any event
|
|
429
|
+
prepareDiagnosticMetricItem(webex, item);
|
|
430
|
+
assert.deepEqual(item.eventPayload.origin.buildType, 'test');
|
|
431
|
+
|
|
432
|
+
delete item.eventPayload.origin.buildType;
|
|
433
|
+
item.eventPayload.event.eventData.markAsTestEvent = false;
|
|
434
|
+
prepareDiagnosticMetricItem(webex, item);
|
|
435
|
+
assert.deepEqual(item.eventPayload.origin.buildType, 'prod');
|
|
423
436
|
});
|
|
424
437
|
});
|
|
425
438
|
|
|
@@ -605,41 +618,47 @@ describe('internal-plugin-metrics', () => {
|
|
|
605
618
|
[
|
|
606
619
|
{
|
|
607
620
|
signalingState: 'have-local-offer',
|
|
608
|
-
|
|
621
|
+
iceConnected: false,
|
|
609
622
|
turnServerUsed: true,
|
|
610
623
|
errorCode: MISSING_ROAP_ANSWER_CLIENT_CODE,
|
|
624
|
+
unreachable: false,
|
|
611
625
|
},
|
|
612
626
|
{
|
|
613
627
|
signalingState: 'stable',
|
|
614
|
-
|
|
628
|
+
iceConnected: true,
|
|
615
629
|
turnServerUsed: true,
|
|
616
630
|
errorCode: DTLS_HANDSHAKE_FAILED_CLIENT_CODE,
|
|
631
|
+
unreachable: false,
|
|
617
632
|
},
|
|
618
633
|
{
|
|
619
634
|
signalingState: 'stable',
|
|
620
|
-
|
|
635
|
+
iceConnected: false,
|
|
621
636
|
turnServerUsed: true,
|
|
622
|
-
errorCode:
|
|
637
|
+
errorCode: ICE_FAILED_WITH_TURN_TLS_CLIENT_CODE,
|
|
638
|
+
unreachable: false,
|
|
623
639
|
},
|
|
624
640
|
{
|
|
625
641
|
signalingState: 'stable',
|
|
626
|
-
|
|
642
|
+
iceConnected: false,
|
|
627
643
|
turnServerUsed: true,
|
|
628
|
-
errorCode:
|
|
644
|
+
errorCode: ICE_AND_REACHABILITY_FAILED_CLIENT_CODE,
|
|
645
|
+
unreachable: true,
|
|
629
646
|
},
|
|
630
647
|
{
|
|
631
648
|
signalingState: 'stable',
|
|
632
|
-
|
|
649
|
+
iceConnected: false,
|
|
633
650
|
turnServerUsed: false,
|
|
634
651
|
errorCode: ICE_FAILED_WITHOUT_TURN_TLS_CLIENT_CODE,
|
|
652
|
+
unreachable: false,
|
|
635
653
|
},
|
|
636
|
-
].forEach(({signalingState,
|
|
654
|
+
].forEach(({signalingState, iceConnected, turnServerUsed, errorCode, unreachable}: any) => {
|
|
637
655
|
it('returns expected result', () => {
|
|
638
656
|
assert.deepEqual(
|
|
639
657
|
generateClientErrorCodeForIceFailure({
|
|
640
658
|
signalingState,
|
|
641
|
-
|
|
659
|
+
iceConnected,
|
|
642
660
|
turnServerUsed,
|
|
661
|
+
unreachable,
|
|
643
662
|
}),
|
|
644
663
|
errorCode
|
|
645
664
|
);
|
|
@@ -9,7 +9,6 @@ import MockWebex from '@webex/test-helper-mock-webex';
|
|
|
9
9
|
import sinon from 'sinon';
|
|
10
10
|
import FakeTimers from '@sinonjs/fake-timers';
|
|
11
11
|
import {NewMetrics} from '@webex/internal-plugin-metrics';
|
|
12
|
-
import {uniqueId} from 'lodash';
|
|
13
12
|
|
|
14
13
|
const flushPromises = () => new Promise(setImmediate);
|
|
15
14
|
|
|
@@ -66,6 +65,7 @@ describe('internal-plugin-metrics', () => {
|
|
|
66
65
|
|
|
67
66
|
// matching because the request includes a symbol key: value pair and sinon cannot handle to compare it..
|
|
68
67
|
assert.match(webexRequestArgs, {
|
|
68
|
+
//@ts-ignore
|
|
69
69
|
body: {
|
|
70
70
|
metrics: [
|
|
71
71
|
{
|