Skip to content

Commit 3812b4b

Browse files
fernandodeluretkespinola
authored andcommitted
feat Set all metrics related execution under prometheus feature flag
1 parent bd4667b commit 3812b4b

File tree

3 files changed

+28
-65
lines changed

3 files changed

+28
-65
lines changed

crates/runtime/src/builder.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,7 @@ impl<K: BuilderKind, S: SourceTrait> Builder<K, S> {
105105
self
106106
}
107107

108+
#[cfg(feature = "prometheus")]
108109
/// Sets the metrics registry for the runtime.
109110
#[cfg(feature = "prometheus")]
110111
pub fn metrics(self, metrics_registry: prometheus::Registry) -> Builder<K, S> {

crates/runtime/src/lib.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,8 @@
1212
//! Vixen provides a simple API for requesting, parsing, and consuming data
1313
//! from Yellowstone.
1414
15-
use std::marker::PhantomData;
16-
1715
use config::BufferConfig;
16+
use std::marker::PhantomData;
1817
use tokio::sync::mpsc;
1918
use yellowstone_grpc_proto::tonic::Status;
2019

@@ -31,6 +30,7 @@ pub mod builder;
3130
pub mod config;
3231
pub mod handler;
3332
pub mod instruction;
33+
3434
pub mod sources;
3535

3636
/// Utility functions for the Vixen runtime.

crates/runtime/src/metrics.rs

Lines changed: 25 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -214,68 +214,30 @@ pub(crate) fn increment_received_updates(update_type: UpdateType) {
214214
}
215215

216216
/// 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.
219218
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()));
281243
}

0 commit comments

Comments
 (0)