mirror of
https://gitlab.com/soapbox-pub/ditto.git
synced 2025-12-06 11:29:46 +00:00
Add relay connections metrics
This commit is contained in:
parent
fc73cb2961
commit
d72ec843cf
2 changed files with 27 additions and 1 deletions
|
|
@ -1,17 +1,32 @@
|
|||
import { register } from 'prom-client';
|
||||
|
||||
import { AppController } from '@/app.ts';
|
||||
import { dbAvailableConnectionsGauge, dbPoolSizeGauge } from '@/metrics.ts';
|
||||
import {
|
||||
dbAvailableConnectionsGauge,
|
||||
dbPoolSizeGauge,
|
||||
relayPoolRelaysSizeGauge,
|
||||
relayPoolSubscriptionsSizeGauge,
|
||||
} from '@/metrics.ts';
|
||||
import { Storages } from '@/storages.ts';
|
||||
|
||||
/** Prometheus/OpenMetrics controller. */
|
||||
export const metricsController: AppController = async (c) => {
|
||||
const db = await Storages.database();
|
||||
const pool = await Storages.client();
|
||||
|
||||
// Update some metrics at request time.
|
||||
dbPoolSizeGauge.set(db.poolSize);
|
||||
dbAvailableConnectionsGauge.set(db.availableConnections);
|
||||
|
||||
relayPoolRelaysSizeGauge.reset();
|
||||
relayPoolSubscriptionsSizeGauge.reset();
|
||||
|
||||
for (const relay of pool.relays.values()) {
|
||||
relayPoolRelaysSizeGauge.inc({ ready_state: relay.socket.readyState });
|
||||
relayPoolSubscriptionsSizeGauge.inc(relay.subscriptions.length);
|
||||
}
|
||||
|
||||
// Serve the metrics.
|
||||
const metrics = await register.metrics();
|
||||
|
||||
const headers: HeadersInit = {
|
||||
|
|
|
|||
|
|
@ -119,3 +119,14 @@ export const internalSubscriptionsSizeGauge = new Gauge({
|
|||
name: 'ditto_internal_subscriptions_size',
|
||||
help: "Number of active subscriptions to Ditto's internal relay",
|
||||
});
|
||||
|
||||
export const relayPoolRelaysSizeGauge = new Gauge({
|
||||
name: 'ditto_relay_pool_relays_size',
|
||||
help: 'Number of relays in the relay pool',
|
||||
labelNames: ['ready_state'],
|
||||
});
|
||||
|
||||
export const relayPoolSubscriptionsSizeGauge = new Gauge({
|
||||
name: 'ditto_relay_pool_subscriptions_size',
|
||||
help: 'Number of active subscriptions to the relay pool',
|
||||
});
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue