@@ -458,20 +458,27 @@ class InMemoryTelemetryStorage(TelemetryStorage):
458458
459459 def __init__ (self ):
460460 """Constructor"""
461+ self ._reset_counters ()
462+ self ._reset_latencies ()
463+ self ._lock = threading .RLock ()
464+
465+ def _reset_counters (self ):
461466 self ._counters = {'iQ' : 0 , 'iDe' : 0 , 'iDr' : 0 , 'eQ' : 0 , 'eD' : 0 , 'sL' : 0 ,
462467 'aR' : 0 , 'tR' : 0 }
463- self ._latencies = {'mL' : {'t' : [], 'ts' : [], 'tc' : [], 'tcs' : [], 'tr' : []},
464- 'hL' : {'sp' : [], 'se' : [], 'ms' : [], 'im' : [], 'ic' : [], 'ev' : [], 'te' : [], 'to' : []}}
465468 self ._exceptions = {'mE' : {'t' : 0 , 'ts' : 0 , 'tc' : 0 , 'tcs' : 0 , 'tr' : 0 }}
466469 self ._records = {'IS' : {'sp' : 0 , 'se' : 0 , 'ms' : 0 , 'im' : 0 , 'ic' : 0 , 'ev' : 0 , 'te' : 0 , 'to' : 0 },
467470 'sL' : 0 }
468471 self ._http_errors = {'sp' : {}, 'se' : {}, 'ms' : {}, 'im' : {}, 'ic' : {}, 'ev' : {}, 'te' : {}, 'to' : {}}
472+ self ._config = {'bT' :0 , 'nR' :0 , 'uC' : 0 }
469473 self ._streaming_events = []
470474 self ._tags = []
471475 self ._integrations = {}
472- self ._config = {'bT' :0 , 'nR' :0 , 'uC' : 0 }
476+
477+ def _reset_latencies (self ):
478+ self ._latencies = {'mL' : {'t' : [], 'ts' : [], 'tc' : [], 'tcs' : [], 'tr' : []},
479+ 'hL' : {'sp' : [], 'se' : [], 'ms' : [], 'im' : [], 'ic' : [], 'ev' : [], 'te' : [], 'to' : []}}
473480 self ._map_latencies = {'Treatment' : 't' , 'Treatments' : 'ts' , 'TreatmentWithConfig' : 'tc' , 'TreatmentsWithConfig' : 'tcs' , 'Track' : 'tr' }
474- self . _lock = threading . RLock ()
481+
475482
476483 def record_config (self , config ):
477484 """Record configurations."""
@@ -497,26 +504,26 @@ def record_ready_time(self, ready_time):
497504 def add_tag (self , tag ):
498505 """Record tag string."""
499506 with self ._lock :
500- if len (self ._tags ) <= MAX_TAGS :
507+ if len (self ._tags ) < MAX_TAGS :
501508 self ._tags .append (tag )
502509
503- def record_bur_timeout (self ):
510+ def record_bur_time_out (self ):
504511 """Record block until ready timeout."""
505512 with self ._lock :
506513 self ._config ['bT' ] = self ._config ['bT' ] + 1
507514
508- def record_non_ready_usage (self ):
515+ def record_not_ready_usage (self ):
509516 """record non-ready usage."""
510517 with self ._lock :
511518 self ._config ['nR' ] = self ._config ['nR' ] + 1
512519
513520 def record_latency (self , method , latency ):
514521 """Record method latency time."""
515522 with self ._lock :
516- if self ._latencies ['mL' ][self ._map_latencies [method ]] < MAX_LATENCY_BUCKET_COUNT :
523+ if len ( self ._latencies ['mL' ][self ._map_latencies [method ]]) < MAX_LATENCY_BUCKET_COUNT :
517524 self ._latencies ['mL' ][self ._map_latencies [method ]].append (latency )
518525
519- def record_exceptions (self , method ):
526+ def record_exception (self , method ):
520527 """Record method exception."""
521528 with self ._lock :
522529 self ._exceptions ['mE' ][self ._map_latencies [method ]] = self ._exceptions ['mE' ][self ._map_latencies [method ]] + 1
@@ -539,13 +546,15 @@ def record_suceessful_sync(self, resource, time):
539546 def record_sync_error (self , resource , status ):
540547 """Record sync http error."""
541548 with self ._lock :
549+ if status not in self ._http_errors [resource ]:
550+ self ._http_errors [resource ][status ] = 0
542551 self ._http_errors [resource ][status ] = self ._http_errors [resource ][status ] + 1
543552
544553 def record_sync_latency (self , resource , latency ):
545554 """Record latency time."""
546555 with self ._lock :
547- if self ._latencies ['hL' ][self . _map_latencies [ resource ]] < MAX_LATENCY_BUCKET_COUNT :
548- self ._latencies ['hL' ][self . _map_latencies [ resource ] ].append (latency )
556+ if len ( self ._latencies ['hL' ][resource ]) < MAX_LATENCY_BUCKET_COUNT :
557+ self ._latencies ['hL' ][resource ].append (latency )
549558
550559 def record_auth_rejections (self ):
551560 """Record auth rejection."""
@@ -561,14 +570,14 @@ def record_streaming_event(self, streaming_event):
561570 """Record incoming streaming event."""
562571 with self ._lock :
563572 if len (self ._streaming_events ) < MAX_STREAMING_EVENTS :
564- self ._streaming_events .append ({'e' : streaming_event . type , 'd' : streaming_event . data , 't' : streaming_event . time })
573+ self ._streaming_events .append ({'e' : streaming_event [ ' type' ] , 'd' : streaming_event [ ' data' ] , 't' : streaming_event [ ' time' ] })
565574
566575 def record_session_length (self , session ):
567576 """Record session length."""
568577 with self ._lock :
569578 self ._records ['sL' ] = session
570579
571- def get_bur_timeouts (self ):
580+ def get_bur_time_outs (self ):
572581 """Get block until ready timeout."""
573582 with self ._lock :
574583 return self ._config ['bT' ]
@@ -680,21 +689,21 @@ def _get_storage_type(self, op_mode):
680689 def _get_refresh_rates (self , config ):
681690 with self ._lock :
682691 rr = {}
683- rr ['sp' ] == config ['featuresRefreshRate' ]
684- rr ['se' ] == config ['segmentsRefreshRate' ]
685- rr ['im' ] == config ['impressionsRefreshRate' ]
686- rr ['ev' ] == config ['eventsPushRate' ]
687- rr ['te' ] == config ['metrcsRefreshRate' ]
692+ rr ['sp' ] = config ['featuresRefreshRate' ]
693+ rr ['se' ] = config ['segmentsRefreshRate' ]
694+ rr ['im' ] = config ['impressionsRefreshRate' ]
695+ rr ['ev' ] = config ['eventsPushRate' ]
696+ rr ['te' ] = config ['metrcsRefreshRate' ]
688697 return rr
689698
690699 def _get_url_overrides (self , config ):
691700 with self ._lock :
692701 rr = {}
693- rr ['s' ] == True if config [ 'sdk_url' ] is not None else False
694- rr ['e' ] == True if config [ 'events_url' ] is not None else False
695- rr ['a' ] == True if config [ 'auth_url' ] is not None else False
696- rr ['st' ] == True if config [ 'streaming_url' ] is not None else False
697- rr ['t' ] == True if config [ 'telemetry_url' ] is not None else False
702+ rr ['s' ] == True if 'sdk_url' in config else False
703+ rr ['e' ] == True if 'events_url' in config else False
704+ rr ['a' ] == True if 'auth_url' in config else False
705+ rr ['st' ] == True if 'streaming_url' in config else False
706+ rr ['t' ] == True if 'telemetry_url' in config else False
698707 return rr
699708
700709 def _get_impressions_mode (self , imp_mode ):
0 commit comments