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 %>"
+
+
+
+