From bb7db588487766189343d5660f2933f426f7f3bc Mon Sep 17 00:00:00 2001 From: Gabriel Kaszewski Date: Sat, 11 Jul 2026 10:39:43 +0200 Subject: [PATCH] chore: add tracing to inbox, delivery, actor cache --- CHANGELOG.md | 4 ++++ src/activities/helpers.rs | 3 ++- src/service/delivery.rs | 5 +++++ src/service/fetch.rs | 8 ++++++++ 4 files changed, 19 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b442f3a..0ca37c3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,10 @@ - Actor cache TTL now treats `fetched_at: None` as always-stale instead of always-fresh. Consumers who never populated `fetched_at` were silently getting no cache invalidation. +### Other improvements + +- Structured tracing on key code paths: inbound activity dispatch (activity ID, source domain), outbound delivery (inbox count, retry attempts), actor cache lookups (hit/miss, staleness). + --- ## [0.4.3] — 2026-07-11 diff --git a/src/activities/helpers.rs b/src/activities/helpers.rs index d5b3c3c..81614e3 100644 --- a/src/activities/helpers.rs +++ b/src/activities/helpers.rs @@ -35,10 +35,11 @@ pub(crate) async fn check_guards( actor: &Url, data: &Data, ) -> Result { + let domain = actor.host_str().unwrap_or(""); + tracing::info!(activity_id = %id, source_domain = domain, "processing inbound activity"); if already_processed(id, data).await { return Ok(true); } - let domain = actor.host_str().unwrap_or(""); if data.blocklist_repo.is_domain_blocked(domain).await? { tracing::info!(actor = %actor, "ignoring activity from blocked domain"); return Ok(true); diff --git a/src/service/delivery.rs b/src/service/delivery.rs index 29c5580..fcd9dc7 100644 --- a/src/service/delivery.rs +++ b/src/service/delivery.rs @@ -16,6 +16,11 @@ pub(crate) async fn send_with_retry( max_attempts: u32, initial_delay_secs: u64, ) -> Vec { + tracing::info!( + inbox_count = sends.len(), + max_attempts, + "starting outbound delivery" + ); let mut failures = vec![]; for send in sends { let mut delay = std::time::Duration::from_secs(initial_delay_secs); diff --git a/src/service/fetch.rs b/src/service/fetch.rs index 5aa0d8b..174c308 100644 --- a/src/service/fetch.rs +++ b/src/service/fetch.rs @@ -43,9 +43,17 @@ impl ActivityPubService { tracing::debug!(actor_url, "fetched_at is None, treating as stale — consider populating fetched_at in get_remote_actor()"); false }); + tracing::debug!( + actor_url, + cache_hit = true, + fresh = is_fresh, + "actor cache lookup" + ); if is_fresh { return Ok(cached); } + } else { + tracing::debug!(actor_url, cache_hit = false, "actor cache lookup"); } let url = match Url::parse(actor_url) { Ok(u) => u,