This repository has been archived on 2025-12-11. You can view files and clone it, but cannot push or open issues or pull requests.

24 lines
849 B
JavaScript
Raw Normal View History

2025-03-17 13:54:06 +01:00
const v8 = require('node:v8');
const megabyte = 1024 * 1024;
let lastReportTime = 0;
let lastHeapSize = 0;
setInterval(() => {
try {
const now = Date.now();
const { used_heap_size, heap_size_limit } = v8.getHeapStatistics();
const diffPct = Math.abs(used_heap_size - lastHeapSize) / lastHeapSize;
if (now - lastReportTime >= 30_000 || diffPct >= 0.1) {
lastReportTime = Date.now();
PrintStructuredTrace(JSON.stringify({
type: 'txAdminLogNodeHeap',
used: parseFloat((used_heap_size / megabyte).toFixed(2)),
limit: parseFloat((heap_size_limit / megabyte).toFixed(2)),
}));
}
} catch (error) {
const msg = `Error reporting heap: ${error.message}`;
console.log(`^5[txAdmin]^1${msg}^0`);
}
}, 5_000);