diff --git a/src/apptask.js b/src/apptask.js index a06938096..2259e27b8 100644 --- a/src/apptask.js +++ b/src/apptask.js @@ -41,11 +41,14 @@ const apps = require('./apps.js'), sysinfo = require('./sysinfo.js'), _ = require('underscore'); -const COLLECTD_CONFIG_EJS = fs.readFileSync(__dirname + '/collectd/app.ejs', { encoding: 'utf8' }), - MV_VOLUME_CMD = path.join(__dirname, 'scripts/mvvolume.sh'), +const MV_VOLUME_CMD = path.join(__dirname, 'scripts/mvvolume.sh'), LOGROTATE_CONFIG_EJS = fs.readFileSync(__dirname + '/logrotate.ejs', { encoding: 'utf8' }), CONFIGURE_LOGROTATE_CMD = path.join(__dirname, 'scripts/configurelogrotate.sh'); +// https://rootlesscontaine.rs/getting-started/common/cgroup2/#checking-whether-cgroup-v2-is-already-enabled +const CGROUP_VERSION = fs.existsSync('/sys/fs/cgroup/cgroup.controllers') ? '2' : '1'; +const COLLECTD_CONFIG_EJS = fs.readFileSync(`${__dirname}/collectd/app_cgroup_v${CGROUP_VERSION}.ejs`, { encoding: 'utf8' }); + function makeTaskError(error, app) { assert.strictEqual(typeof error, 'object'); assert.strictEqual(typeof app, 'object'); diff --git a/src/collectd/app.ejs b/src/collectd/app_cgroup_v1.ejs similarity index 100% rename from src/collectd/app.ejs rename to src/collectd/app_cgroup_v1.ejs diff --git a/src/collectd/app_cgroup_v2.ejs b/src/collectd/app_cgroup_v2.ejs new file mode 100644 index 000000000..fb821ff9d --- /dev/null +++ b/src/collectd/app_cgroup_v2.ejs @@ -0,0 +1,42 @@ +LoadPlugin "table" + + /memory.stat"> + Instance "<%= appId %>-memory" + Separator " \\n" + + Type gauge + InstancesFrom 0 + ValuesFrom 1 + +
+ + /memory.max"> + Instance "<%= appId %>-memory" + Separator "\\n" + + Type gauge + InstancePrefix "max_usage_in_bytes" + ValuesFrom 0 + +
+ + /cpu.stat"> + Instance "<%= appId %>-cpu" + Separator " \\n" + + Type gauge + InstancesFrom 0 + ValuesFrom 1 + +
+
+ + + + + Instance "<%= appId %>" + Dir "<%= appDataDir %>" + + + +