From 8e160551831f9c3b18f999499aa24a0f69984c16 Mon Sep 17 00:00:00 2001 From: boufni95 Date: Tue, 25 Feb 2025 20:10:10 +0000 Subject: [PATCH] memory usage stats --- src/services/helpers/utilsWrapper.ts | 5 +++++ src/services/main/index.ts | 1 + src/services/storage/stateBundler.ts | 13 +++++++++++++ 3 files changed, 19 insertions(+) diff --git a/src/services/helpers/utilsWrapper.ts b/src/services/helpers/utilsWrapper.ts index 35cefc17..0dc61d63 100644 --- a/src/services/helpers/utilsWrapper.ts +++ b/src/services/helpers/utilsWrapper.ts @@ -2,10 +2,15 @@ import { MainSettings } from "../main/settings.js"; import { StateBundler } from "../storage/stateBundler.js"; export class Utils { + stateBundler: StateBundler settings: MainSettings constructor(settings: MainSettings) { this.settings = settings this.stateBundler = new StateBundler(settings.storageSettings) } + + Stop() { + this.stateBundler.Stop() + } } \ No newline at end of file diff --git a/src/services/main/index.ts b/src/services/main/index.ts index 27516f62..9a83cce2 100644 --- a/src/services/main/index.ts +++ b/src/services/main/index.ts @@ -84,6 +84,7 @@ export default class { this.lnd.Stop() this.applicationManager.Stop() this.paymentManager.Stop() + this.utils.Stop() } StartBeacons() { diff --git a/src/services/storage/stateBundler.ts b/src/services/storage/stateBundler.ts index 3b81e15f..bda5d675 100644 --- a/src/services/storage/stateBundler.ts +++ b/src/services/storage/stateBundler.ts @@ -33,10 +33,23 @@ export class StateBundler { tlvStorage: TlvFilesStorage reportLog = getLogger({ component: 'stateBundlerReport' }) prevValues: Record = {} + interval: NodeJS.Timeout constructor(settings: StorageSettings) { const bundlerPath = [settings.dataDir, "bundler_events"].filter(s => !!s).join("/") this.tlvStorage = new TlvFilesStorage(bundlerPath) this.tlvStorage.initMeta() + this.interval = setInterval(() => { + const mem = process.memoryUsage() + this.AddValue('_root', 'memory_rss', mem.rss || 0, true) + this.AddValue('_root', 'memory_buffer', mem.arrayBuffers || 0, true) + this.AddValue('_root', 'memory_heap_total', mem.heapTotal || 0, true) + this.AddValue('_root', 'memory_heap_used', mem.heapUsed || 0, true) + this.AddValue('_root', 'memory_external', mem.external || 0, true) + }, 60 * 1000) + } + + Stop() { + clearInterval(this.interval) } async GetBundleMetrics(req: Types.LatestBundleMetricReq): Promise {