/**
* Collects runtime environment metrics with limited memory usage.
* @returns {object} An object containing runtime metrics.
*/
function collectRuntimeMetrics() {
const metrics = {};
// CPU information
metrics.cpu = {
user: process.cpuUsage().user,
system: process.cpuUsage().system,
idle: process.cpuUsage().idle
};
// Memory information
metrics.memory = {
total: process.memoryUsage().totalHeapUsed, // Total heap used
rss: process.memoryUsage().rss, // Resident Set Size (physical memory)
heapTotal: process.memoryUsage().heapTotal, //Total heap size
heapUsed: process.memoryUsage().heapUsed //Used heap size
};
// Node.js version
metrics.nodejsVersion = process.version;
// Operating system
metrics.os = process.platform + " " + process.release(); //Platform and release version
// Environment variables (limited to a few key ones)
metrics.environment = {};
for (const key in process.env) {
if (key.startsWith('NODE_')) { //Only collect NODE_ variables
metrics.environment[key] = process.env[key];
}
}
// Time information
metrics.startTime = Date.now();
return metrics;
}
// Example usage (for testing)
// const metrics = collectRuntimeMetrics();
// console.log(JSON.stringify(metrics, null, 2));
Add your comment