From b8216c3f6ac04255df8abbe97c07112cc6ab9809 Mon Sep 17 00:00:00 2001 From: Julian Lam Date: Thu, 16 Apr 2026 11:01:11 -0400 Subject: [PATCH] feat: begin tracking relay sends/receipts for ap analytics --- src/activitypub/analytics.js | 12 ++++++++++++ src/activitypub/feps.js | 4 ++++ src/activitypub/inbox.js | 4 ++++ 3 files changed, 20 insertions(+) diff --git a/src/activitypub/analytics.js b/src/activitypub/analytics.js index c3297c879b..c8f3643200 100644 --- a/src/activitypub/analytics.js +++ b/src/activitypub/analytics.js @@ -57,4 +57,16 @@ Analytics.receiptError = async (body, error) => { analytics.increment(['ap.inErr', `ap.inErr:byHost:${hostname}`]), ]); await db.expire(`ap.errors:${id}`, 60 * 60 * 24); // 24 hours +}; + +Analytics.relays = {}; + +Analytics.relays.in = (relay) => { + const { hostname } = new URL(relay); + analytics.increment(['ap.relayIn', `ap.relayIn:byHost:${hostname}`]); +}; + +Analytics.relays.out = (relay) => { + const { hostname } = new URL(relay); + analytics.increment(['ap.relayOut', `ap.relayOut:byHost:${hostname}`]); }; \ No newline at end of file diff --git a/src/activitypub/feps.js b/src/activitypub/feps.js index 262010b7da..ee35813422 100644 --- a/src/activitypub/feps.js +++ b/src/activitypub/feps.js @@ -77,4 +77,8 @@ Feps.announce = async function announce(id, activity) { cc, object: activity, }); + + relays.forEach((relay) => { + activitypub.analytics.relay.out(relay); + }); }; diff --git a/src/activitypub/inbox.js b/src/activitypub/inbox.js index 1d398acc37..066134b6cb 100644 --- a/src/activitypub/inbox.js +++ b/src/activitypub/inbox.js @@ -469,6 +469,10 @@ inbox.announce = async (req) => { await topics.crossposts.add(tid, cid, 0); })); } + + if (fromRelay) { + activitypub.analytics.relays.in(actor); + } } if (!cid) { // Topic events from actors followed by users only