@webex/internal-plugin-metrics 3.11.0 → 3.12.0-llmrefactor.2

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 (74) hide show
  1. package/dist/automated-user.js +19 -0
  2. package/dist/automated-user.js.map +1 -0
  3. package/dist/batcher.js +3 -0
  4. package/dist/batcher.js.map +1 -1
  5. package/dist/call-diagnostic/call-diagnostic-metrics-latencies.js +639 -65
  6. package/dist/call-diagnostic/call-diagnostic-metrics-latencies.js.map +1 -1
  7. package/dist/call-diagnostic/call-diagnostic-metrics.js +168 -76
  8. package/dist/call-diagnostic/call-diagnostic-metrics.js.map +1 -1
  9. package/dist/call-diagnostic/call-diagnostic-metrics.util.js +18 -4
  10. package/dist/call-diagnostic/call-diagnostic-metrics.util.js.map +1 -1
  11. package/dist/call-diagnostic/config.js +17 -3
  12. package/dist/call-diagnostic/config.js.map +1 -1
  13. package/dist/config.js +1 -0
  14. package/dist/config.js.map +1 -1
  15. package/dist/generic-metrics.js +8 -6
  16. package/dist/generic-metrics.js.map +1 -1
  17. package/dist/index.js +22 -0
  18. package/dist/index.js.map +1 -1
  19. package/dist/metrics.js +1 -1
  20. package/dist/metrics.types.js +4 -0
  21. package/dist/metrics.types.js.map +1 -1
  22. package/dist/new-metrics.js +105 -26
  23. package/dist/new-metrics.js.map +1 -1
  24. package/dist/prelogin-metrics.js +106 -0
  25. package/dist/prelogin-metrics.js.map +1 -0
  26. package/dist/privacy-and-security-permission-enricher/constants.js +18 -0
  27. package/dist/privacy-and-security-permission-enricher/constants.js.map +1 -0
  28. package/dist/privacy-and-security-permission-enricher/index.js +143 -0
  29. package/dist/privacy-and-security-permission-enricher/index.js.map +1 -0
  30. package/dist/privacy-and-security-permission-enricher/types.js +7 -0
  31. package/dist/privacy-and-security-permission-enricher/types.js.map +1 -0
  32. package/dist/privacy-and-security-permission-enricher/utils.js +71 -0
  33. package/dist/privacy-and-security-permission-enricher/utils.js.map +1 -0
  34. package/dist/types/automated-user.d.ts +2 -0
  35. package/dist/types/call-diagnostic/call-diagnostic-metrics-latencies.d.ts +208 -5
  36. package/dist/types/call-diagnostic/call-diagnostic-metrics.d.ts +79 -15
  37. package/dist/types/call-diagnostic/call-diagnostic-metrics.util.d.ts +5 -0
  38. package/dist/types/call-diagnostic/config.d.ts +5 -0
  39. package/dist/types/config.d.ts +1 -0
  40. package/dist/types/index.d.ts +6 -3
  41. package/dist/types/metrics.types.d.ts +9 -4
  42. package/dist/types/new-metrics.d.ts +29 -1
  43. package/dist/types/prelogin-metrics.d.ts +47 -0
  44. package/dist/types/privacy-and-security-permission-enricher/constants.d.ts +6 -0
  45. package/dist/types/privacy-and-security-permission-enricher/index.d.ts +40 -0
  46. package/dist/types/privacy-and-security-permission-enricher/types.d.ts +14 -0
  47. package/dist/types/privacy-and-security-permission-enricher/utils.d.ts +5 -0
  48. package/package.json +12 -11
  49. package/src/automated-user.ts +16 -0
  50. package/src/batcher.js +4 -0
  51. package/src/call-diagnostic/call-diagnostic-metrics-latencies.ts +800 -75
  52. package/src/call-diagnostic/call-diagnostic-metrics.ts +102 -15
  53. package/src/call-diagnostic/call-diagnostic-metrics.util.ts +22 -2
  54. package/src/call-diagnostic/config.ts +15 -0
  55. package/src/config.js +1 -0
  56. package/src/generic-metrics.ts +6 -6
  57. package/src/index.ts +9 -0
  58. package/src/metrics.types.ts +27 -5
  59. package/src/new-metrics.ts +95 -6
  60. package/src/prelogin-metrics.ts +94 -0
  61. package/src/privacy-and-security-permission-enricher/constants.ts +33 -0
  62. package/src/privacy-and-security-permission-enricher/index.ts +142 -0
  63. package/src/privacy-and-security-permission-enricher/types.ts +21 -0
  64. package/src/privacy-and-security-permission-enricher/utils.ts +82 -0
  65. package/test/unit/spec/automated-user.ts +43 -0
  66. package/test/unit/spec/batcher.js +43 -0
  67. package/test/unit/spec/call-diagnostic/call-diagnostic-metrics-batcher.ts +47 -11
  68. package/test/unit/spec/call-diagnostic/call-diagnostic-metrics-latencies.ts +1550 -416
  69. package/test/unit/spec/call-diagnostic/call-diagnostic-metrics.ts +887 -159
  70. package/test/unit/spec/call-diagnostic/call-diagnostic-metrics.util.ts +61 -3
  71. package/test/unit/spec/new-metrics.ts +183 -50
  72. package/test/unit/spec/prelogin-metrics-batcher.ts +71 -36
  73. package/test/unit/spec/prelogin-metrics.ts +132 -0
  74. package/test/unit/spec/privacy-and-security-permission-enricher.ts +318 -0
@@ -142,9 +142,7 @@ describe('plugin-metrics', () => {
142
142
  webex.internal.newMetrics.callDiagnosticLatencies.getDiffBetweenTimestamps = sinon
143
143
  .stub()
144
144
  .returns(10);
145
- webex.internal.newMetrics.callDiagnosticLatencies.getU2CTime = sinon
146
- .stub()
147
- .returns(20);
145
+ webex.internal.newMetrics.callDiagnosticLatencies.getU2CTime = sinon.stub().returns(20);
148
146
  webex.internal.newMetrics.callDiagnosticLatencies.getReachabilityClustersReqResp = sinon
149
147
  .stub()
150
148
  .returns(10);
@@ -165,7 +163,7 @@ describe('plugin-metrics', () => {
165
163
  registerWDMDeviceJMT: 10,
166
164
  showInterstitialTime: 10,
167
165
  getU2CTime: 20,
168
- getReachabilityClustersReqResp: 10
166
+ getReachabilityClustersReqResp: 10,
169
167
  },
170
168
  });
171
169
  assert.lengthOf(
@@ -189,12 +187,17 @@ describe('plugin-metrics', () => {
189
187
  webex.internal.newMetrics.callDiagnosticLatencies.getDownloadTimeJMT = sinon
190
188
  .stub()
191
189
  .returns(100);
192
- webex.internal.newMetrics.callDiagnosticLatencies.getClickToInterstitialWithUserDelay = sinon
193
- .stub()
194
- .returns(43);
190
+ webex.internal.newMetrics.callDiagnosticLatencies.getClickToInterstitialWithUserDelay =
191
+ sinon.stub().returns(43);
195
192
  webex.internal.newMetrics.callDiagnosticLatencies.getTotalJMTWithUserDelay = sinon
196
193
  .stub()
197
194
  .returns(64);
195
+ webex.internal.newMetrics.callDiagnosticLatencies.getInterstitialToJoinOK = sinon
196
+ .stub()
197
+ .returns(10);
198
+ webex.internal.newMetrics.callDiagnosticLatencies.getTotalJMT = sinon
199
+ .stub()
200
+ .returns(20);
198
201
  const promise = webex.internal.newMetrics.callDiagnosticMetrics.submitToCallDiagnostics(
199
202
  //@ts-ignore
200
203
  {event: {name: 'client.locus.join.response'}}
@@ -346,9 +349,15 @@ describe('plugin-metrics', () => {
346
349
  webex.internal.newMetrics.callDiagnosticLatencies.getInterstitialToJoinOK = sinon
347
350
  .stub()
348
351
  .returns(7);
349
- webex.internal.newMetrics.callDiagnosticLatencies.getStayLobbyTime = sinon
352
+ webex.internal.newMetrics.callDiagnosticLatencies.getStayLobbyTime = sinon
353
+ .stub()
354
+ .returns(1);
355
+ webex.internal.newMetrics.callDiagnosticLatencies.getStayLobbyTimeCappedBy = sinon
350
356
  .stub()
351
357
  .returns(1);
358
+ webex.internal.newMetrics.callDiagnosticLatencies.getTotalMediaJMT = sinon
359
+ .stub()
360
+ .returns(44);
352
361
  webex.internal.newMetrics.callDiagnosticLatencies.getTotalMediaJMTWithUserDelay = sinon
353
362
  .stub()
354
363
  .returns(43);
@@ -369,10 +378,9 @@ describe('plugin-metrics', () => {
369
378
  assert.deepEqual(webex.request.getCalls()[0].args[0].body.metrics[0].eventPayload.event, {
370
379
  name: 'client.media-engine.ready',
371
380
  joinTimes: {
372
- totalMediaJMT: 61,
381
+ totalMediaJMT: 44,
373
382
  interstitialToMediaOKJMT: 22,
374
- callInitMediaEngineReady: 10,
375
- stayLobbyTime: 1,
383
+ callInitMediaEngineReady: 22,
376
384
  totalMediaJMTWithUserDelay: 43,
377
385
  totalJMTWithUserDelay: 64,
378
386
  },
@@ -382,6 +390,34 @@ describe('plugin-metrics', () => {
382
390
  0
383
391
  );
384
392
  });
393
+
394
+ it('appends the correct join times to the request for client.lobby.exited', async () => {
395
+ webex.internal.newMetrics.callDiagnosticLatencies.getStayLobbyTime = sinon
396
+ .stub()
397
+ .returns(10);
398
+
399
+ const promise = webex.internal.newMetrics.callDiagnosticMetrics.submitToCallDiagnostics(
400
+ //@ts-ignore
401
+ {event: {name: 'client.lobby.exited'}}
402
+ );
403
+ await flushPromises();
404
+ clock.tick(config.metrics.batcherWait);
405
+
406
+ await promise;
407
+
408
+ //@ts-ignore
409
+ assert.calledOnce(webex.request);
410
+ assert.deepEqual(webex.request.getCalls()[0].args[0].body.metrics[0].eventPayload.event, {
411
+ name: 'client.lobby.exited',
412
+ joinTimes: {
413
+ stayLobbyTime: 10,
414
+ },
415
+ });
416
+ assert.lengthOf(
417
+ webex.internal.newMetrics.callDiagnosticMetrics.callDiagnosticEventsBatcher.queue,
418
+ 0
419
+ );
420
+ });
385
421
  });
386
422
 
387
423
  describe('when the request fails', () => {