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 { type DittoDB, type DittoTables } from '@ditto/db';
import { detectLanguage } from '@ditto/lang'; import { detectLanguage } from '@ditto/lang';
import { NPostgres, NPostgresSchema } from '@nostrify/db'; import { NPostgres, NPostgresSchema } from '@nostrify/db';
import { dbEventsCounter, internalSubscriptionsSizeGauge } from '@ditto/metrics'; import { dbEventsCounter, internalSubscriptionsBytesGauge, internalSubscriptionsSizeGauge } from '@ditto/metrics';
import { import {
NIP50, NIP50,
NKinds, NKinds,
@ -354,8 +354,11 @@ export class DittoPgStore extends NPostgres {
yield ['EOSE', subId]; yield ['EOSE', subId];
} }
const sizeBytes = new TextEncoder().encode(JSON.stringify(filters)).length;
this.subs.set(subId, { filters, machina }); this.subs.set(subId, { filters, machina });
internalSubscriptionsSizeGauge.set(this.subs.size); internalSubscriptionsSizeGauge.set(this.subs.size);
internalSubscriptionsBytesGauge.inc(sizeBytes);
try { try {
for await (const msg of machina) { for await (const msg of machina) {
@ -370,6 +373,7 @@ export class DittoPgStore extends NPostgres {
} finally { } finally {
this.subs.delete(subId); this.subs.delete(subId);
internalSubscriptionsSizeGauge.set(this.subs.size); 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", 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({ export const relayPoolRelaysSizeGauge: Gauge<'ready_state'> = new Gauge({
name: `${prefix}_relay_pool_relays_size`, name: `${prefix}_relay_pool_relays_size`,
help: 'Number of relays in the relay pool', help: 'Number of relays in the relay pool',