diff options
Diffstat (limited to 'src/sync/mod.rs')
| -rw-r--r-- | src/sync/mod.rs | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/src/sync/mod.rs b/src/sync/mod.rs index 15c89e3..b6cd00a 100644 --- a/src/sync/mod.rs +++ b/src/sync/mod.rs | |||
| @@ -1249,19 +1249,21 @@ impl SyncManager { | |||
| 1249 | // Spawn event processor | 1249 | // Spawn event processor |
| 1250 | let relay_url_clone = relay_url.clone(); | 1250 | let relay_url_clone = relay_url.clone(); |
| 1251 | let metrics_clone = self.metrics.clone(); // Clone metrics for the spawned task | 1251 | let metrics_clone = self.metrics.clone(); // Clone metrics for the spawned task |
| 1252 | let is_bootstrap_clone = is_bootstrap; // Clone is_bootstrap for the spawned task | ||
| 1253 | tokio::spawn(async move { | 1252 | tokio::spawn(async move { |
| 1254 | // Track whether we've already sent a disconnect notification | 1253 | // Track whether we've already sent a disconnect notification |
| 1255 | let mut disconnect_sent = false; | 1254 | let mut disconnect_sent = false; |
| 1255 | // Track whether EOSE has been received - events before EOSE are "startup", after are "live" | ||
| 1256 | let mut eose_received = false; | ||
| 1256 | 1257 | ||
| 1257 | while let Some(relay_event) = event_rx.recv().await { | 1258 | while let Some(relay_event) = event_rx.recv().await { |
| 1258 | match relay_event { | 1259 | match relay_event { |
| 1259 | RelayEvent::Event(event) => { | 1260 | RelayEvent::Event(event) => { |
| 1260 | if let Some(ref metrics) = metrics_clone { | 1261 | if let Some(ref metrics) = metrics_clone { |
| 1261 | let source = if is_bootstrap_clone { | 1262 | // Events before EOSE are "startup", events after EOSE are "live" |
| 1262 | event_source::STARTUP | 1263 | let source = if eose_received { |
| 1263 | } else { | ||
| 1264 | event_source::LIVE | 1264 | event_source::LIVE |
| 1265 | } else { | ||
| 1266 | event_source::STARTUP | ||
| 1265 | }; | 1267 | }; |
| 1266 | metrics.record_event(source); | 1268 | metrics.record_event(source); |
| 1267 | } | 1269 | } |
| @@ -1275,6 +1277,8 @@ impl SyncManager { | |||
| 1275 | .await; | 1277 | .await; |
| 1276 | } | 1278 | } |
| 1277 | RelayEvent::EndOfStoredEvents(sub_id) => { | 1279 | RelayEvent::EndOfStoredEvents(sub_id) => { |
| 1280 | // Mark EOSE as received - subsequent events are "live" | ||
| 1281 | eose_received = true; | ||
| 1278 | tracing::debug!( | 1282 | tracing::debug!( |
| 1279 | relay = %relay_url_clone, | 1283 | relay = %relay_url_clone, |
| 1280 | sub_id = %sub_id, | 1284 | sub_id = %sub_id, |