@webex/internal-plugin-metrics 3.8.1 → 3.9.0-webinar5k.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.
Files changed (35) hide show
  1. package/dist/call-diagnostic/call-diagnostic-metrics-latencies.js +49 -0
  2. package/dist/call-diagnostic/call-diagnostic-metrics-latencies.js.map +1 -1
  3. package/dist/call-diagnostic/call-diagnostic-metrics.js +218 -48
  4. package/dist/call-diagnostic/call-diagnostic-metrics.js.map +1 -1
  5. package/dist/call-diagnostic/call-diagnostic-metrics.util.js +6 -0
  6. package/dist/call-diagnostic/call-diagnostic-metrics.util.js.map +1 -1
  7. package/dist/call-diagnostic/config.js +3 -1
  8. package/dist/call-diagnostic/config.js.map +1 -1
  9. package/dist/index.js.map +1 -1
  10. package/dist/metrics.js +1 -1
  11. package/dist/metrics.types.js.map +1 -1
  12. package/dist/new-metrics.js +43 -1
  13. package/dist/new-metrics.js.map +1 -1
  14. package/dist/types/call-diagnostic/call-diagnostic-metrics-latencies.d.ts +15 -0
  15. package/dist/types/call-diagnostic/call-diagnostic-metrics.d.ts +144 -9
  16. package/dist/types/call-diagnostic/config.d.ts +2 -0
  17. package/dist/types/index.d.ts +2 -2
  18. package/dist/types/metrics.types.d.ts +17 -6
  19. package/dist/types/new-metrics.d.ts +19 -2
  20. package/package.json +12 -12
  21. package/src/call-diagnostic/call-diagnostic-metrics-latencies.ts +58 -0
  22. package/src/call-diagnostic/call-diagnostic-metrics.ts +219 -25
  23. package/src/call-diagnostic/call-diagnostic-metrics.util.ts +6 -0
  24. package/src/call-diagnostic/config.ts +3 -0
  25. package/src/index.ts +2 -0
  26. package/src/metrics.types.ts +22 -5
  27. package/src/new-metrics.ts +52 -1
  28. package/test/unit/spec/call-diagnostic/call-diagnostic-metrics-batcher.ts +20 -1
  29. package/test/unit/spec/call-diagnostic/call-diagnostic-metrics-latencies.ts +167 -0
  30. package/test/unit/spec/call-diagnostic/call-diagnostic-metrics.ts +425 -38
  31. package/test/unit/spec/call-diagnostic/call-diagnostic-metrics.util.ts +6 -0
  32. package/test/unit/spec/new-metrics.ts +67 -2
  33. package/test/unit/spec/prelogin-metrics-batcher.ts +1 -0
  34. package/dist/call-diagnostic-events-batcher.js +0 -60
  35. package/dist/call-diagnostic-events-batcher.js.map +0 -1
@@ -446,6 +446,36 @@ describe('internal-plugin-metrics', () => {
446
446
  assert.deepEqual(cdl.getClickToInterstitial(), 0);
447
447
  });
448
448
 
449
+ it('calculates getClickToInterstitialWithUserDelay correctly', () => {
450
+ cdl.saveTimestamp({
451
+ key: 'internal.client.meeting.click.joinbutton',
452
+ value: 10,
453
+ });
454
+ cdl.saveTimestamp({
455
+ key: 'internal.client.meeting.interstitial-window.showed',
456
+ value: 20,
457
+ });
458
+ assert.deepEqual(cdl.getClickToInterstitialWithUserDelay(), 10);
459
+ });
460
+
461
+ it('calculates getClickToInterstitialWithUserDelay without join button timestamp', () => {
462
+ cdl.saveLatency('internal.click.to.interstitial.with.user.delay', 5);
463
+ cdl.saveTimestamp({
464
+ key: 'internal.client.meeting.interstitial-window.showed',
465
+ value: 20,
466
+ });
467
+ assert.deepEqual(cdl.getClickToInterstitialWithUserDelay(), 5);
468
+ });
469
+
470
+ it('calculates getClickToInterstitialWithUserDelay without join button timestamp when it is 0', () => {
471
+ cdl.saveLatency('internal.click.to.interstitial.with.user.delay', 0);
472
+ cdl.saveTimestamp({
473
+ key: 'internal.client.meeting.interstitial-window.showed',
474
+ value: 20,
475
+ });
476
+ assert.deepEqual(cdl.getClickToInterstitialWithUserDelay(), 0);
477
+ });
478
+
449
479
  it('calculates getInterstitialToJoinOK correctly', () => {
450
480
  cdl.saveTimestamp({
451
481
  key: 'internal.client.interstitial-window.click.joinbutton',
@@ -554,6 +584,78 @@ describe('internal-plugin-metrics', () => {
554
584
  assert.deepEqual(cdl.getTotalJMT(), undefined);
555
585
  });
556
586
 
587
+ it('calculates getTotalJMTWithUserDelay correctly', () => {
588
+ cdl.saveTimestamp({
589
+ key: 'internal.client.interstitial-window.click.joinbutton',
590
+ value: 5,
591
+ });
592
+ cdl.saveTimestamp({
593
+ key: 'internal.client.meeting.click.joinbutton',
594
+ value: 10,
595
+ });
596
+ cdl.saveTimestamp({
597
+ key: 'internal.client.meeting.interstitial-window.showed',
598
+ value: 20,
599
+ });
600
+ cdl.saveTimestamp({
601
+ key: 'client.locus.join.response',
602
+ value: 40,
603
+ });
604
+ assert.deepEqual(cdl.getTotalJMTWithUserDelay(), 45);
605
+ });
606
+
607
+ it('calculates getTotalJMTWithUserDelay correctly when clickToInterstitialWithUserDelay is 0', () => {
608
+ cdl.saveLatency('internal.click.to.interstitial.with.user.delay', 0);
609
+ cdl.saveTimestamp({
610
+ key: 'internal.client.interstitial-window.click.joinbutton',
611
+ value: 20,
612
+ });
613
+ cdl.saveTimestamp({
614
+ key: 'client.locus.join.response',
615
+ value: 40,
616
+ });
617
+ assert.deepEqual(cdl.getTotalJMTWithUserDelay(), 20);
618
+ });
619
+
620
+ it('calculates getTotalJMTWithUserDelay correctly when interstitialToJoinOk is 0', () => {
621
+ cdl.saveTimestamp({
622
+ key: 'internal.client.interstitial-window.click.joinbutton',
623
+ value: 40,
624
+ });
625
+ cdl.saveLatency('internal.click.to.interstitial.with.user.delay', 12);
626
+ cdl.saveTimestamp({
627
+ key: 'client.locus.join.response',
628
+ value: 40,
629
+ });
630
+ assert.deepEqual(cdl.getTotalJMTWithUserDelay(), 12);
631
+ });
632
+
633
+ it('calculates getTotalJMTWithUserDelay correctly when both clickToInterstitialWithUserDelay and interstitialToJoinOk are 0', () => {
634
+ cdl.saveTimestamp({
635
+ key: 'internal.client.interstitial-window.click.joinbutton',
636
+ value: 40,
637
+ });
638
+ cdl.saveLatency('internal.click.to.interstitial.with.user.delay', 0);
639
+ cdl.saveTimestamp({
640
+ key: 'client.locus.join.response',
641
+ value: 40,
642
+ });
643
+ assert.deepEqual(cdl.getTotalJMTWithUserDelay(), 0);
644
+ });
645
+
646
+ it('calculates getTotalJMTWithUserDelay correctly when both clickToInterstitialWithUserDelay is not a number', () => {
647
+ cdl.saveTimestamp({
648
+ key: 'internal.client.interstitial-window.click.joinbutton',
649
+ value: 40,
650
+ });
651
+ cdl.saveLatency('internal.click.to.interstitial.with.user.delay', 'eleven' as unknown as number);
652
+ cdl.saveTimestamp({
653
+ key: 'client.locus.join.response',
654
+ value: 40,
655
+ });
656
+ assert.deepEqual(cdl.getTotalJMTWithUserDelay(), undefined);
657
+ });
658
+
557
659
  it('calculates getTotalMediaJMT correctly', () => {
558
660
  cdl.saveTimestamp({
559
661
  key: 'internal.client.meeting.click.joinbutton',
@@ -627,6 +729,71 @@ describe('internal-plugin-metrics', () => {
627
729
  assert.deepEqual(cdl.getTotalMediaJMT(), 31);
628
730
  });
629
731
 
732
+ it('calculates getTotalMediaJMTWithUserDelay correctly', () => {
733
+ cdl.saveLatency('internal.click.to.interstitial.with.user.delay', 7);
734
+ cdl.saveTimestamp({
735
+ key: 'internal.client.interstitial-window.click.joinbutton',
736
+ value: 10,
737
+ });
738
+ cdl.saveTimestamp({
739
+ key: 'client.locus.join.request',
740
+ value: 12,
741
+ });
742
+ cdl.saveTimestamp({
743
+ key: 'client.locus.join.response',
744
+ value: 20,
745
+ });
746
+ cdl.saveTimestamp({
747
+ key: 'internal.host.meeting.participant.admitted',
748
+ value: 24,
749
+ });
750
+ cdl.saveTimestamp({
751
+ key: 'client.ice.start',
752
+ value: 30,
753
+ });
754
+ cdl.saveTimestamp({
755
+ key: 'client.ice.end',
756
+ value: 40,
757
+ });
758
+ assert.deepEqual(cdl.getTotalMediaJMTWithUserDelay(), 35);
759
+ });
760
+
761
+ it('calculates getTotalMediaJMTWithUserDelay correctly for guest join', () => {
762
+ cdl.saveTimestamp({
763
+ key: 'internal.client.meeting.click.joinbutton',
764
+ value: 5,
765
+ });
766
+ cdl.saveTimestamp({
767
+ key: 'internal.client.meeting.interstitial-window.showed',
768
+ value: 8,
769
+ });
770
+ cdl.saveTimestamp({
771
+ key: 'internal.client.interstitial-window.click.joinbutton',
772
+ value: 10,
773
+ });
774
+ cdl.saveTimestamp({
775
+ key: 'client.locus.join.request',
776
+ value: 12,
777
+ });
778
+ cdl.saveTimestamp({
779
+ key: 'client.locus.join.response',
780
+ value: 20,
781
+ });
782
+ cdl.saveTimestamp({
783
+ key: 'internal.host.meeting.participant.admitted',
784
+ value: 24,
785
+ });
786
+ cdl.saveTimestamp({
787
+ key: 'client.ice.start',
788
+ value: 30,
789
+ });
790
+ cdl.saveTimestamp({
791
+ key: 'client.ice.end',
792
+ value: 40,
793
+ });
794
+ assert.deepEqual(cdl.getTotalMediaJMTWithUserDelay(), 31);
795
+ });
796
+
630
797
  it('calculates getJoinConfJMT correctly', () => {
631
798
  cdl.saveTimestamp({
632
799
  key: 'client.locus.join.request',