@@ -214,68 +214,30 @@ pub(crate) fn increment_received_updates(update_type: UpdateType) {
214
214
}
215
215
216
216
/// Register the metrics with the provided registry.
217
- /// # Panics
218
- /// If the metrics cannot be registered.
217
+ /// This function is idempotent - if metrics are already registered, it will not panic.
219
218
pub fn register_metrics ( registry : & Registry ) {
220
- registry
221
- . register ( Box :: new ( VIXEN_TRANSACTIONS_RECEIVED . clone ( ) ) )
222
- . unwrap ( ) ;
223
- registry
224
- . register ( Box :: new ( VIXEN_TRANSACTIONS_SUCCESSFUL . clone ( ) ) )
225
- . unwrap ( ) ;
226
- registry
227
- . register ( Box :: new ( VIXEN_TRANSACTIONS_PARSING_ERRORS . clone ( ) ) )
228
- . unwrap ( ) ;
229
- registry
230
- . register ( Box :: new ( VIXEN_TRANSACTIONS_HANDLER_ERRORS . clone ( ) ) )
231
- . unwrap ( ) ;
232
-
233
- registry
234
- . register ( Box :: new ( VIXEN_ACCOUNTS_RECEIVED . clone ( ) ) )
235
- . unwrap ( ) ;
236
- registry
237
- . register ( Box :: new ( VIXEN_ACCOUNTS_SUCCESSFUL . clone ( ) ) )
238
- . unwrap ( ) ;
239
- registry
240
- . register ( Box :: new ( VIXEN_ACCOUNTS_PARSING_ERRORS . clone ( ) ) )
241
- . unwrap ( ) ;
242
- registry
243
- . register ( Box :: new ( VIXEN_ACCOUNTS_HANDLER_ERRORS . clone ( ) ) )
244
- . unwrap ( ) ;
245
-
246
- registry
247
- . register ( Box :: new ( VIXEN_BLOCK_METAS_RECEIVED . clone ( ) ) )
248
- . unwrap ( ) ;
249
- registry
250
- . register ( Box :: new ( VIXEN_BLOCK_METAS_SUCCESSFUL . clone ( ) ) )
251
- . unwrap ( ) ;
252
- registry
253
- . register ( Box :: new ( VIXEN_BLOCK_METAS_PARSING_ERRORS . clone ( ) ) )
254
- . unwrap ( ) ;
255
- registry
256
- . register ( Box :: new ( VIXEN_BLOCK_METAS_HANDLER_ERRORS . clone ( ) ) )
257
- . unwrap ( ) ;
258
-
259
- registry
260
- . register ( Box :: new ( VIXEN_INSTRUCTIONS_SUCCESSFUL . clone ( ) ) )
261
- . unwrap ( ) ;
262
- registry
263
- . register ( Box :: new ( VIXEN_INSTRUCTIONS_PARSING_ERRORS . clone ( ) ) )
264
- . unwrap ( ) ;
265
- registry
266
- . register ( Box :: new ( VIXEN_INSTRUCTIONS_HANDLER_ERRORS . clone ( ) ) )
267
- . unwrap ( ) ;
268
-
269
- registry
270
- . register ( Box :: new ( VIXEN_SLOTS_RECEIVED . clone ( ) ) )
271
- . unwrap ( ) ;
272
- registry
273
- . register ( Box :: new ( VIXEN_SLOTS_SUCCESSFUL . clone ( ) ) )
274
- . unwrap ( ) ;
275
- registry
276
- . register ( Box :: new ( VIXEN_SLOTS_PARSING_ERRORS . clone ( ) ) )
277
- . unwrap ( ) ;
278
- registry
279
- . register ( Box :: new ( VIXEN_SLOTS_HANDLER_ERRORS . clone ( ) ) )
280
- . unwrap ( ) ;
219
+ // Try to register each metric, but ignore "AlreadyReg" errors
220
+ let _ = registry. register ( Box :: new ( VIXEN_TRANSACTIONS_RECEIVED . clone ( ) ) ) ;
221
+ let _ = registry. register ( Box :: new ( VIXEN_TRANSACTIONS_SUCCESSFUL . clone ( ) ) ) ;
222
+ let _ = registry. register ( Box :: new ( VIXEN_TRANSACTIONS_PARSING_ERRORS . clone ( ) ) ) ;
223
+ let _ = registry. register ( Box :: new ( VIXEN_TRANSACTIONS_HANDLER_ERRORS . clone ( ) ) ) ;
224
+
225
+ let _ = registry. register ( Box :: new ( VIXEN_ACCOUNTS_RECEIVED . clone ( ) ) ) ;
226
+ let _ = registry. register ( Box :: new ( VIXEN_ACCOUNTS_SUCCESSFUL . clone ( ) ) ) ;
227
+ let _ = registry. register ( Box :: new ( VIXEN_ACCOUNTS_PARSING_ERRORS . clone ( ) ) ) ;
228
+ let _ = registry. register ( Box :: new ( VIXEN_ACCOUNTS_HANDLER_ERRORS . clone ( ) ) ) ;
229
+
230
+ let _ = registry. register ( Box :: new ( VIXEN_BLOCK_METAS_RECEIVED . clone ( ) ) ) ;
231
+ let _ = registry. register ( Box :: new ( VIXEN_BLOCK_METAS_SUCCESSFUL . clone ( ) ) ) ;
232
+ let _ = registry. register ( Box :: new ( VIXEN_BLOCK_METAS_PARSING_ERRORS . clone ( ) ) ) ;
233
+ let _ = registry. register ( Box :: new ( VIXEN_BLOCK_METAS_HANDLER_ERRORS . clone ( ) ) ) ;
234
+
235
+ let _ = registry. register ( Box :: new ( VIXEN_INSTRUCTIONS_SUCCESSFUL . clone ( ) ) ) ;
236
+ let _ = registry. register ( Box :: new ( VIXEN_INSTRUCTIONS_PARSING_ERRORS . clone ( ) ) ) ;
237
+ let _ = registry. register ( Box :: new ( VIXEN_INSTRUCTIONS_HANDLER_ERRORS . clone ( ) ) ) ;
238
+
239
+ let _ = registry. register ( Box :: new ( VIXEN_SLOTS_RECEIVED . clone ( ) ) ) ;
240
+ let _ = registry. register ( Box :: new ( VIXEN_SLOTS_SUCCESSFUL . clone ( ) ) ) ;
241
+ let _ = registry. register ( Box :: new ( VIXEN_SLOTS_PARSING_ERRORS . clone ( ) ) ) ;
242
+ let _ = registry. register ( Box :: new ( VIXEN_SLOTS_HANDLER_ERRORS . clone ( ) ) ) ;
281
243
}
0 commit comments