diff options
Diffstat (limited to 'src/sync')
| -rw-r--r-- | src/sync/mod.rs | 22 |
1 files changed, 3 insertions, 19 deletions
diff --git a/src/sync/mod.rs b/src/sync/mod.rs index 21f31df..c62b478 100644 --- a/src/sync/mod.rs +++ b/src/sync/mod.rs | |||
| @@ -39,7 +39,6 @@ use std::sync::Arc; | |||
| 39 | use std::time::Duration; | 39 | use std::time::Duration; |
| 40 | 40 | ||
| 41 | use nostr_sdk::prelude::*; | 41 | use nostr_sdk::prelude::*; |
| 42 | use prometheus::Registry; | ||
| 43 | use tokio::sync::{broadcast, Mutex, RwLock}; | 42 | use tokio::sync::{broadcast, Mutex, RwLock}; |
| 44 | 43 | ||
| 45 | use crate::config::Config; | 44 | use crate::config::Config; |
| @@ -355,7 +354,7 @@ impl SyncManager { | |||
| 355 | /// * `write_policy` - Policy for validating events before storage | 354 | /// * `write_policy` - Policy for validating events before storage |
| 356 | /// * `local_relay` - Local relay for submitting synced events (enables WebSocket broadcast) | 355 | /// * `local_relay` - Local relay for submitting synced events (enables WebSocket broadcast) |
| 357 | /// * `config` - Configuration for sync settings | 356 | /// * `config` - Configuration for sync settings |
| 358 | /// * `registry` - Optional Prometheus registry for metrics (metrics only created if config.metrics_enabled is true) | 357 | /// * `sync_metrics` - Optional pre-registered SyncMetrics (passed from Metrics if metrics are enabled) |
| 359 | pub fn new( | 358 | pub fn new( |
| 360 | bootstrap_relay_url: Option<String>, | 359 | bootstrap_relay_url: Option<String>, |
| 361 | service_domain: String, | 360 | service_domain: String, |
| @@ -363,23 +362,8 @@ impl SyncManager { | |||
| 363 | write_policy: Nip34WritePolicy, | 362 | write_policy: Nip34WritePolicy, |
| 364 | local_relay: LocalRelay, | 363 | local_relay: LocalRelay, |
| 365 | config: &Config, | 364 | config: &Config, |
| 366 | registry: Option<&Registry>, | 365 | sync_metrics: Option<SyncMetrics>, |
| 367 | ) -> Self { | 366 | ) -> Self { |
| 368 | // Create metrics only if metrics are enabled AND a registry is provided | ||
| 369 | let metrics = if config.metrics_enabled { | ||
| 370 | registry.and_then(|r| { | ||
| 371 | match SyncMetrics::register(r) { | ||
| 372 | Ok(m) => Some(m), | ||
| 373 | Err(e) => { | ||
| 374 | tracing::warn!("Failed to register sync metrics: {}", e); | ||
| 375 | None | ||
| 376 | } | ||
| 377 | } | ||
| 378 | }) | ||
| 379 | } else { | ||
| 380 | None | ||
| 381 | }; | ||
| 382 | |||
| 383 | Self { | 367 | Self { |
| 384 | bootstrap_relay_url, | 368 | bootstrap_relay_url, |
| 385 | service_domain, | 369 | service_domain, |
| @@ -397,7 +381,7 @@ impl SyncManager { | |||
| 397 | eose_tx: None, | 381 | eose_tx: None, |
| 398 | connect_tx: None, | 382 | connect_tx: None, |
| 399 | shutdown_tx: None, | 383 | shutdown_tx: None, |
| 400 | metrics, | 384 | metrics: sync_metrics, |
| 401 | } | 385 | } |
| 402 | } | 386 | } |
| 403 | 387 | ||