From 0d6042ec112609daa68799004892dba36048548d Mon Sep 17 00:00:00 2001 From: phiresky Date: Sun, 23 Jul 2023 22:15:12 +0000 Subject: [PATCH] log federation instances --- crates/federate/src/main.rs | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/crates/federate/src/main.rs b/crates/federate/src/main.rs index f150b1ded..d73d58233 100644 --- a/crates/federate/src/main.rs +++ b/crates/federate/src/main.rs @@ -56,13 +56,25 @@ async fn start_stop_federation_workers( let (stats_sender, stats_receiver) = unbounded_channel(); let exit_print = tokio::spawn(receive_print_stats(pool.clone(), stats_receiver)); let pool2 = &mut DbPool::Pool(&pool); + let process_index = opts.process_index - 1; loop { let dead: HashSet = HashSet::from_iter(Instance::dead_instances(pool2).await?); + let mut total_count = 0; + let mut dead_count = 0; + let mut disallowed_count = 0; for (instance, allowed) in Instance::read_all_with_blocked(pool2).await?.into_iter() { - if instance.id.inner() % opts.process_count != opts.process_index { + if instance.id.inner() % opts.process_count != process_index { continue; } - let should_federate = allowed && !dead.contains(&instance.domain); + total_count += 1; + if !allowed { + disallowed_count += 1; + } + let is_dead = dead.contains(&instance.domain); + if is_dead { + dead_count += 1; + } + let should_federate = allowed && !is_dead; if !workers.contains_key(&instance.id) && should_federate { let stats_sender = stats_sender.clone(); workers.insert( @@ -85,6 +97,8 @@ async fn start_stop_federation_workers( } } } + let worker_count = workers.len(); + tracing::info!("Federating to {worker_count}/{total_count} instances ({dead_count} dead, {disallowed_count} disallowed)"); tokio::select! { () = sleep(Duration::from_secs(60)) => {}, _ = cancel.cancelled() => { break; }