@@ -128,7 +128,10 @@ impl Default for KeeperMetrics {
128
128
}
129
129
130
130
impl KeeperMetrics {
131
- pub async fn new ( registry : Arc < RwLock < Registry > > ) -> Self {
131
+ pub async fn new (
132
+ registry : Arc < RwLock < Registry > > ,
133
+ chain_labels : Vec < ( String , Address ) > ,
134
+ ) -> Self {
132
135
let mut writable_registry = registry. write ( ) . await ;
133
136
let keeper_metrics = KeeperMetrics :: default ( ) ;
134
137
@@ -246,6 +249,60 @@ impl KeeperMetrics {
246
249
keeper_metrics. gas_price_estimate . clone ( ) ,
247
250
) ;
248
251
252
+ // *Important*: When adding a new metric:
253
+ // 1. Register it above using `writable_registry.register(...)`
254
+ // 2. Add a get_or_create call in the loop below to initialize it for each chain/provider pair
255
+ for ( chain_id, provider_address) in chain_labels {
256
+ let account_label = AccountLabel {
257
+ chain_id,
258
+ address : provider_address. to_string ( ) ,
259
+ } ;
260
+
261
+ let _ = keeper_metrics
262
+ . current_sequence_number
263
+ . get_or_create ( & account_label) ;
264
+ let _ = keeper_metrics
265
+ . end_sequence_number
266
+ . get_or_create ( & account_label) ;
267
+ let _ = keeper_metrics. balance . get_or_create ( & account_label) ;
268
+ let _ = keeper_metrics. collected_fee . get_or_create ( & account_label) ;
269
+ let _ = keeper_metrics. current_fee . get_or_create ( & account_label) ;
270
+ let _ = keeper_metrics
271
+ . target_provider_fee
272
+ . get_or_create ( & account_label) ;
273
+ let _ = keeper_metrics. total_gas_spent . get_or_create ( & account_label) ;
274
+ let _ = keeper_metrics
275
+ . total_gas_fee_spent
276
+ . get_or_create ( & account_label) ;
277
+ let _ = keeper_metrics. requests . get_or_create ( & account_label) ;
278
+ let _ = keeper_metrics
279
+ . requests_processed
280
+ . get_or_create ( & account_label) ;
281
+ let _ = keeper_metrics
282
+ . requests_processed_success
283
+ . get_or_create ( & account_label) ;
284
+ let _ = keeper_metrics
285
+ . requests_processed_failure
286
+ . get_or_create ( & account_label) ;
287
+ let _ = keeper_metrics
288
+ . requests_reprocessed
289
+ . get_or_create ( & account_label) ;
290
+ let _ = keeper_metrics. reveals . get_or_create ( & account_label) ;
291
+ let _ = keeper_metrics
292
+ . request_duration_ms
293
+ . get_or_create ( & account_label) ;
294
+ let _ = keeper_metrics. retry_count . get_or_create ( & account_label) ;
295
+ let _ = keeper_metrics
296
+ . final_gas_multiplier
297
+ . get_or_create ( & account_label) ;
298
+ let _ = keeper_metrics
299
+ . final_fee_multiplier
300
+ . get_or_create ( & account_label) ;
301
+ let _ = keeper_metrics
302
+ . gas_price_estimate
303
+ . get_or_create ( & account_label) ;
304
+ }
305
+
249
306
keeper_metrics
250
307
}
251
308
}
0 commit comments