我正在Docker容器内运行一个Node.js应用程序,我试图检索该应用程序正在运行的容器的系统使用度量。目前我正在使用https://www.npmjs.com/package/dockerstats,但它始终不显示CPU或内存使用情况。运行docker stats可以显示每个使用情况。
我的代码类似于以下内容:
let dockerId = setUp.getDockerId();
dockerId.then(dockerId => {
if (dockerId !== null) {
console.log(`dockerId: ${dockerId}`);
dockerstats.dockerContainerStats(dockerId, data => {
console.log(`cpu_percent: ${data.cpu_percent}`);
console.log(`memPercent: ${data.memPercent}`);
console.log(`memUsage: ${data.memUsage}`);
});
}
});
setUp类类似以下示例,并使用https://www.npmjs.com/package/docker-container-id:
const getId = require('docker-container-id');
module.exports = class setUp {
getDockerId () {
return getId().then(id => {
if (!id) {
return null;
}
return id;
});
}
}
/proc/self
或/proc/1
可能会在相对较少的权限下提供所需的信息。 - David Maze