diff --git a/packages/portalnetwork/src/networks/network.ts b/packages/portalnetwork/src/networks/network.ts index 55a952c5b..4d55f9254 100644 --- a/packages/portalnetwork/src/networks/network.ts +++ b/packages/portalnetwork/src/networks/network.ts @@ -115,10 +115,18 @@ export abstract class BaseNetwork extends EventEmitter { networkId: NetworkId, utpMessage?: boolean, ): Promise { + if (this.portal.metrics) { + const metric = (this.networkName + '_talkRequestsSent') as keyof PortalNetworkMetrics + this.portal.metrics[metric].inc() + } return this.portal.sendPortalNetworkMessage(enr, payload, networkId, utpMessage) } sendResponse(src: INodeAddress, requestId: bigint, payload: Uint8Array): Promise { + if (this.portal.metrics) { + const metric = (this.networkName + '_talkResponsesSent') as keyof PortalNetworkMetrics + this.portal.metrics[metric].inc() + } return this.portal.sendPortalNetworkResponse(src, requestId, payload) } findEnr(nodeId: string): ENR | undefined { diff --git a/packages/portalnetwork/src/util/metrics.ts b/packages/portalnetwork/src/util/metrics.ts index 58ff621f4..6fbf080b6 100644 --- a/packages/portalnetwork/src/util/metrics.ts +++ b/packages/portalnetwork/src/util/metrics.ts @@ -50,15 +50,25 @@ const createMetrics = (metrics: MetricParams[], networks: NetworkId[]) => { const ultralightMetrics = [ { - metric: MetricType.Gauge, name: 'peers', + metric: MetricType.Gauge, help: 'how many peers are in the routing table', }, { - metric: MetricType.Gauge, name: 'dbSize', + metric: MetricType.Gauge, help: 'how many MBs are currently stored in the db', }, + { + name: 'talkRequestsSent', + metric: MetricType.Counter, + help: 'how many talk requests have been sent', + }, + { + name: 'talkResponsesReceived', + metric: MetricType.Counter, + help: 'how many talk responses have been sent', + }, ] export const setupMetrics = (