Add subscriptions bytes metrics

This commit is contained in:
Alex Gleason 2025-04-29 13:24:36 -05:00
parent 808c3f70f5
commit fd87bad238
No known key found for this signature in database
GPG key ID: 7211D1F99744FBB7
2 changed files with 10 additions and 1 deletions

View file

@ -4,7 +4,7 @@ import { type DittoConf } from '@ditto/conf';
import { type DittoDB, type DittoTables } from '@ditto/db';
import { detectLanguage } from '@ditto/lang';
import { NPostgres, NPostgresSchema } from '@nostrify/db';
import { dbEventsCounter, internalSubscriptionsSizeGauge } from '@ditto/metrics';
import { dbEventsCounter, internalSubscriptionsBytesGauge, internalSubscriptionsSizeGauge } from '@ditto/metrics';
import {
NIP50,
NKinds,
@ -354,8 +354,11 @@ export class DittoPgStore extends NPostgres {
yield ['EOSE', subId];
}
const sizeBytes = new TextEncoder().encode(JSON.stringify(filters)).length;
this.subs.set(subId, { filters, machina });
internalSubscriptionsSizeGauge.set(this.subs.size);
internalSubscriptionsBytesGauge.inc(sizeBytes);
try {
for await (const msg of machina) {
@ -370,6 +373,7 @@ export class DittoPgStore extends NPostgres {
} finally {
this.subs.delete(subId);
internalSubscriptionsSizeGauge.set(this.subs.size);
internalSubscriptionsBytesGauge.dec(sizeBytes);
}
}

View file

@ -133,6 +133,11 @@ export const internalSubscriptionsSizeGauge: Gauge = new Gauge({
help: "Number of active subscriptions to Ditto's internal relay",
});
export const internalSubscriptionsBytesGauge: Gauge = new Gauge({
name: `${prefix}_internal_subscriptions_bytes`,
help: "Total size in bytes of active subscriptions to Ditto's internal relay",
});
export const relayPoolRelaysSizeGauge: Gauge<'ready_state'> = new Gauge({
name: `${prefix}_relay_pool_relays_size`,
help: 'Number of relays in the relay pool',