@@ -189,18 +189,17 @@ impl SecretsManagerCachingClient {
189189 if refresh_now {
190190 #[ cfg( debug_assertions) ]
191191 {
192- let hit_rate = self . get_cache_hit_rate ( ) ;
193- let miss_rate = 100.0 - hit_rate;
194-
195192 self . increment_counter ( & self . metrics . refreshes ) ;
196193
194+ let ( hit_rate, miss_rate) = self . get_cache_rates ( ) ;
195+
197196 info ! (
198- "METRICS: Bypassing GSV . Refreshing secret '{}' immediately. Total refreshes: {} . \
199- Total hits: {}. Total misses: {}. Hit rate: {:.2}%. Miss rate: {:.2}%",
197+ "METRICS: Bypassing cache . Refreshing secret '{}' immediately. \
198+ Total hits: {}. Total misses: {}. Total refreshes: {}. Hit rate: {:.2}%. Miss rate: {:.2}%",
200199 secret_id,
201- self . get_counter_value( & self . metrics. refreshes) ,
202200 self . get_counter_value( & self . metrics. hits) ,
203201 self . get_counter_value( & self . metrics. misses) ,
202+ self . get_counter_value( & self . metrics. refreshes) ,
204203 hit_rate,
205204 miss_rate
206205 ) ;
@@ -217,11 +216,10 @@ impl SecretsManagerCachingClient {
217216 Ok ( r) => {
218217 #[ cfg( debug_assertions) ]
219218 {
220- let hit_rate = self . get_cache_hit_rate ( ) ;
221- let miss_rate = 100.0 - hit_rate;
222-
223219 self . increment_counter ( & self . metrics . hits ) ;
224220
221+ let ( hit_rate, miss_rate) = self . get_cache_rates ( ) ;
222+
225223 info ! (
226224 "METRICS: Cache HIT for secret '{}'. Total hits: {}. Total misses: {}. \
227225 Hit rate: {:.2}%. Miss rate: {:.2}%.",
@@ -238,11 +236,9 @@ impl SecretsManagerCachingClient {
238236 Err ( SecretStoreError :: ResourceNotFound ) => {
239237 #[ cfg( debug_assertions) ]
240238 {
241- let hit_rate = self . get_cache_hit_rate ( ) ;
242- let miss_rate = 100.0 - hit_rate;
243-
244239 self . increment_counter ( & self . metrics . misses ) ;
245- self . increment_counter ( & self . metrics . refreshes ) ;
240+
241+ let ( hit_rate, miss_rate) = self . get_cache_rates ( ) ;
246242
247243 info ! (
248244 "METRICS: Cache MISS for secret '{}'. Total hits: {}. Total misses: {}. \
@@ -263,18 +259,17 @@ impl SecretsManagerCachingClient {
263259 Err ( SecretStoreError :: CacheExpired ( cached_value) ) => {
264260 #[ cfg( debug_assertions) ]
265261 {
266- let hit_rate = self . get_cache_hit_rate ( ) ;
267- let miss_rate = 100.0 - hit_rate;
262+ self . increment_counter ( & self . metrics . misses ) ;
268263
269- self . increment_counter ( & self . metrics . refreshes ) ;
270- self . reset_counter ( & self . metrics . hits ) ;
271- self . reset_counter ( & self . metrics . misses ) ;
264+ let ( hit_rate, miss_rate) = self . get_cache_rates ( ) ;
272265
273266 info ! (
274- "METRICS: Cache expired. Resetting hits and misses. Total hits: {}. Total \
275- misses: {}. Hit rate: {:.2}%. Miss rate: {:.2}%.",
267+ "METRICS: Cache entry expired for secret '{}'. Total hits: {}. Total \
268+ misses: {}. Total refreshes: {}. Hit rate: {:.2}%. Miss rate: {:.2}%.",
269+ secret_id,
276270 self . get_counter_value( & self . metrics. hits) ,
277271 self . get_counter_value( & self . metrics. misses) ,
272+ self . get_counter_value( & self . metrics. refreshes) ,
278273 hit_rate,
279274 miss_rate
280275 ) ;
@@ -411,31 +406,28 @@ impl SecretsManagerCachingClient {
411406 }
412407
413408 #[ cfg( debug_assertions) ]
414- fn get_cache_hit_rate ( & self ) -> f64 {
415- let hits = self . metrics . hits . load ( Ordering :: SeqCst ) ;
416- let misses = self . metrics . misses . load ( Ordering :: SeqCst ) ;
409+ fn get_cache_rates ( & self ) -> ( f64 , f64 ) {
410+ let hits = self . metrics . hits . load ( Ordering :: Relaxed ) ;
411+ let misses = self . metrics . misses . load ( Ordering :: Relaxed ) ;
417412 let total = hits + misses;
418413
419414 if total == 0 {
420- return 0.0 ;
415+ return ( 0.0 , 0.0 ) ;
421416 }
422417
423- ( hits as f64 / total as f64 ) * 100.0
424- }
418+ let hit_rate = ( hits as f64 / total as f64 ) * 100.0 ;
425419
426- #[ cfg( debug_assertions) ]
427- fn increment_counter ( & self , counter : & AtomicU32 ) -> ( ) {
428- counter. fetch_add ( 1 , Ordering :: SeqCst ) ;
420+ ( hit_rate, 100.0 - hit_rate)
429421 }
430422
431423 #[ cfg( debug_assertions) ]
432- fn reset_counter ( & self , counter : & AtomicU32 ) -> ( ) {
433- counter. store ( 0 , Ordering :: SeqCst ) ;
424+ fn increment_counter ( & self , counter : & AtomicU32 ) -> ( ) {
425+ counter. fetch_add ( 1 , Ordering :: Relaxed ) ;
434426 }
435427
436428 #[ cfg( debug_assertions) ]
437429 fn get_counter_value ( & self , counter : & AtomicU32 ) -> u32 {
438- counter. load ( Ordering :: SeqCst )
430+ counter. load ( Ordering :: Relaxed )
439431 }
440432}
441433
0 commit comments