Skip to content

Commit 8a645d2

Browse files
committed
Reuse duration helper in federation metrics
Use the shared duration helper for queued inbox processing metrics and cover remote host attributes on failed delivery metric assertions. #755 (comment) #755 (comment) #755 (comment) Assisted-by: gpt-5.5
1 parent 031172d commit 8a645d2

2 files changed

Lines changed: 14 additions & 2 deletions

File tree

packages/fedify/src/federation/middleware.ts

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,11 @@ import {
103103
import { routeActivity } from "./inbox.ts";
104104
import { KvKeyCache } from "./keycache.ts";
105105
import type { KvKey, KvStore } from "./kv.ts";
106-
import { getFederationMetrics, getRemoteHost } from "./metrics.ts";
106+
import {
107+
getDurationMs,
108+
getFederationMetrics,
109+
getRemoteHost,
110+
} from "./metrics.ts";
107111
import type { MessageQueue } from "./mq.ts";
108112
import { acceptsJsonLd } from "./negotiation.ts";
109113
import type {
@@ -913,7 +917,7 @@ export class FederationImpl<TContextData>
913917
getFederationMetrics(this.meterProvider)
914918
.recordInboxProcessingDuration(
915919
activityType,
916-
Math.max(0, performance.now() - started),
920+
getDurationMs(started),
917921
);
918922
}
919923
} catch (error) {

packages/fedify/src/federation/send.test.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -593,12 +593,20 @@ test("sendActivity() records OpenTelemetry delivery metrics", async (t) => {
593593
sent[0].attributes["activitypub.activity.type"],
594594
"https://www.w3.org/ns/activitystreams#Follow",
595595
);
596+
assertEquals(
597+
sent[0].attributes["activitypub.remote.host"],
598+
"metrics.example",
599+
);
596600

597601
const durations = recorder.getMeasurements(
598602
"activitypub.delivery.duration",
599603
);
600604
assertEquals(durations.length, 1);
601605
assertGreaterOrEqual(durations[0].value, 0);
606+
assertEquals(
607+
durations[0].attributes["activitypub.remote.host"],
608+
"metrics.example",
609+
);
602610

603611
recorder.clear();
604612
fetchMock.hardReset();

0 commit comments

Comments
 (0)