1- import { LibraryTraces_Library , LibraryTraces_TraceId } from './generated/confidence/telemetry/v1/telemetry' ;
1+ import {
2+ LibraryTraces_Library ,
3+ LibraryTraces_TraceId ,
4+ LibraryTraces_Trace_RequestTrace_Status ,
5+ } from './generated/confidence/telemetry/v1/telemetry' ;
26import { Telemetry } from './Telemetry' ;
37
48describe ( 'Telemetry' , ( ) => {
5- it ( 'registerCounter and increment counter' , ( ) => {
9+ it ( 'registerLibraryTraces and increment counter' , ( ) => {
610 const telemetry = new Telemetry ( { disabled : false , environment : 'backend' } ) ;
7- const counter = telemetry . registerCounter ( {
11+ const traceConsumer = telemetry . registerLibraryTraces ( {
812 library : LibraryTraces_Library . LIBRARY_CONFIDENCE ,
913 version : '9.9.9' ,
1014 id : LibraryTraces_TraceId . TRACE_ID_STALE_FLAG ,
1115 } ) ;
1216 // increment the registered counter 3 times
13- counter ( ) ;
14- counter ( ) ;
15- counter ( ) ;
17+ traceConsumer ( { } ) ;
18+ traceConsumer ( { } ) ;
19+ traceConsumer ( { } ) ;
1620 const snapshot = telemetry . getSnapshot ( ) ;
1721 expect ( snapshot ) . toBeTruthy ( ) ;
1822 expect ( snapshot ?. libraryTraces . length ) . toEqual ( 1 ) ;
@@ -25,55 +29,100 @@ describe('Telemetry', () => {
2529 ] ) ;
2630 } ) ;
2731
28- it ( 'registerMeter and add measurement ' , ( ) => {
32+ it ( 'registerLibraryTraces and add requestTrace ' , ( ) => {
2933 const telemetry = new Telemetry ( { disabled : false , environment : 'client' } ) ;
30- const meter = telemetry . registerMeter ( {
34+ const traceConsumer = telemetry . registerLibraryTraces ( {
3135 library : LibraryTraces_Library . LIBRARY_CONFIDENCE ,
3236 version : '9.9.9' ,
3337 id : LibraryTraces_TraceId . TRACE_ID_RESOLVE_LATENCY ,
3438 } ) ;
3539 // measure 3 times with different values
36- meter ( 10 ) ;
37- meter ( 20 ) ;
38- meter ( 30 ) ;
40+ traceConsumer ( {
41+ requestTrace : { millisecondDuration : 10 , status : LibraryTraces_Trace_RequestTrace_Status . STATUS_SUCCESS } ,
42+ } ) ;
43+ traceConsumer ( {
44+ requestTrace : { millisecondDuration : 20 , status : LibraryTraces_Trace_RequestTrace_Status . STATUS_SUCCESS } ,
45+ } ) ;
46+ traceConsumer ( {
47+ requestTrace : { millisecondDuration : 30 , status : LibraryTraces_Trace_RequestTrace_Status . STATUS_ERROR } ,
48+ } ) ;
3949 const snapshot = telemetry . getSnapshot ( ) ;
4050 expect ( snapshot ) . toBeTruthy ( ) ;
4151 expect ( snapshot ?. libraryTraces . length ) . toEqual ( 1 ) ;
4252 expect ( snapshot ?. libraryTraces [ 0 ] . library ) . toEqual ( LibraryTraces_Library . LIBRARY_CONFIDENCE ) ;
4353 expect ( snapshot ?. libraryTraces [ 0 ] . libraryVersion ) . toEqual ( '9.9.9' ) ;
4454 expect ( snapshot ?. libraryTraces [ 0 ] . traces ) . toEqual ( [
45- { id : LibraryTraces_TraceId . TRACE_ID_RESOLVE_LATENCY , millisecondDuration : 10 } ,
46- { id : LibraryTraces_TraceId . TRACE_ID_RESOLVE_LATENCY , millisecondDuration : 20 } ,
47- { id : LibraryTraces_TraceId . TRACE_ID_RESOLVE_LATENCY , millisecondDuration : 30 } ,
55+ {
56+ id : LibraryTraces_TraceId . TRACE_ID_RESOLVE_LATENCY ,
57+ requestTrace : { millisecondDuration : 10 , status : LibraryTraces_Trace_RequestTrace_Status . STATUS_SUCCESS } ,
58+ } ,
59+ {
60+ id : LibraryTraces_TraceId . TRACE_ID_RESOLVE_LATENCY ,
61+ requestTrace : { millisecondDuration : 20 , status : LibraryTraces_Trace_RequestTrace_Status . STATUS_SUCCESS } ,
62+ } ,
63+ {
64+ id : LibraryTraces_TraceId . TRACE_ID_RESOLVE_LATENCY ,
65+ requestTrace : { millisecondDuration : 30 , status : LibraryTraces_Trace_RequestTrace_Status . STATUS_ERROR } ,
66+ } ,
4867 ] ) ;
4968 } ) ;
5069
5170 it ( 'snapshot is empty when telemetry is disabled' , ( ) => {
5271 const telemetry = new Telemetry ( { disabled : true , environment : 'client' } ) ;
53- const counter = telemetry . registerCounter ( {
72+ const traceConsumer = telemetry . registerLibraryTraces ( {
5473 library : LibraryTraces_Library . LIBRARY_CONFIDENCE ,
5574 version : '9.9.9' ,
5675 id : LibraryTraces_TraceId . TRACE_ID_STALE_FLAG ,
5776 } ) ;
58- counter ( ) ;
77+ traceConsumer ( { } ) ;
5978 const snapshot = telemetry . getSnapshot ( ) ;
6079 expect ( snapshot . libraryTraces . length ) . toBe ( 0 ) ;
6180 } ) ;
6281
63- it ( 'monitoring gets cleared after snapshot is obtained' , ( ) => {
82+ it ( 'traceConsumer gets cleared after snapshot is obtained' , ( ) => {
6483 const telemetry = new Telemetry ( { disabled : false , environment : 'client' } ) ;
65- const counter = telemetry . registerCounter ( {
84+ const traceConsumer = telemetry . registerLibraryTraces ( {
6685 library : LibraryTraces_Library . LIBRARY_CONFIDENCE ,
6786 version : '9.9.9' ,
6887 id : LibraryTraces_TraceId . TRACE_ID_STALE_FLAG ,
6988 } ) ;
70- counter ( ) ;
89+ traceConsumer ( { } ) ;
7190 const snapshotFirst = telemetry . getSnapshot ( ) ;
7291 expect ( snapshotFirst ) . toBeTruthy ( ) ;
7392 expect ( snapshotFirst ?. libraryTraces . length ) . toEqual ( 1 ) ;
7493 expect ( snapshotFirst ?. libraryTraces [ 0 ] . traces ) . toEqual ( [ { id : LibraryTraces_TraceId . TRACE_ID_STALE_FLAG } ] ) ;
7594 const snapshotSecond = telemetry . getSnapshot ( ) ;
76- // the counter is still registered but the traces are cleared
7795 expect ( snapshotSecond ?. libraryTraces . length ) . toBe ( 0 ) ;
7896 } ) ;
97+
98+ it ( 'registerLibraryTraces and log cached requestTrace' , ( ) => {
99+ const telemetry = new Telemetry ( { disabled : false , environment : 'client' } ) ;
100+ const traceConsumer = telemetry . registerLibraryTraces ( {
101+ library : LibraryTraces_Library . LIBRARY_CONFIDENCE ,
102+ version : '9.9.9' ,
103+ id : LibraryTraces_TraceId . TRACE_ID_RESOLVE_LATENCY ,
104+ } ) ;
105+
106+ traceConsumer ( {
107+ requestTrace : {
108+ millisecondDuration : 5 ,
109+ status : LibraryTraces_Trace_RequestTrace_Status . STATUS_CACHED ,
110+ } ,
111+ } ) ;
112+
113+ const snapshot = telemetry . getSnapshot ( ) ;
114+ expect ( snapshot ) . toBeTruthy ( ) ;
115+ expect ( snapshot ?. libraryTraces . length ) . toEqual ( 1 ) ;
116+ expect ( snapshot ?. libraryTraces [ 0 ] . library ) . toEqual ( LibraryTraces_Library . LIBRARY_CONFIDENCE ) ;
117+ expect ( snapshot ?. libraryTraces [ 0 ] . libraryVersion ) . toEqual ( '9.9.9' ) ;
118+ expect ( snapshot ?. libraryTraces [ 0 ] . traces ) . toEqual ( [
119+ {
120+ id : LibraryTraces_TraceId . TRACE_ID_RESOLVE_LATENCY ,
121+ requestTrace : {
122+ millisecondDuration : 5 ,
123+ status : LibraryTraces_Trace_RequestTrace_Status . STATUS_CACHED ,
124+ } ,
125+ } ,
126+ ] ) ;
127+ } ) ;
79128} ) ;
0 commit comments