feat: begin tracking relay sends/receipts for ap analytics

This commit is contained in:
Julian Lam
2026-04-16 11:01:11 -04:00
parent cf231b65fd
commit b8216c3f6a
3 changed files with 20 additions and 0 deletions

View File

@@ -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}`]);
};

View File

@@ -77,4 +77,8 @@ Feps.announce = async function announce(id, activity) {
cc,
object: activity,
});
relays.forEach((relay) => {
activitypub.analytics.relay.out(relay);
});
};

View File

@@ -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