summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorIlya Mashchenko <ilya@netdata.cloud>2024-06-20 18:27:29 +0300
committerAustin S. Hemmelgarn <ahferroin7@gmail.com>2024-06-21 08:33:46 -0400
commit45cee756517ec5ce04e139ef41952755ca64ad4b (patch)
treed14fe26495b31ed46a11637083bbd1e5e83d7870 /src
parent6a67d965613f7fbd408c1a14a8be235c84766e3e (diff)
cgroups: bring back "use unified cgroups" option (#17969)
(cherry picked from commit 4b01a5a836a620d8fdc72f4ce909666bc6799260)
Diffstat (limited to 'src')
-rw-r--r--src/collectors/cgroups.plugin/cgroup-internals.h2
-rw-r--r--src/collectors/cgroups.plugin/sys_fs_cgroup.c9
2 files changed, 8 insertions, 3 deletions
diff --git a/src/collectors/cgroups.plugin/cgroup-internals.h b/src/collectors/cgroups.plugin/cgroup-internals.h
index d026b7a9ba..e0d53dc93e 100644
--- a/src/collectors/cgroups.plugin/cgroup-internals.h
+++ b/src/collectors/cgroups.plugin/cgroup-internals.h
@@ -283,7 +283,7 @@ void cgroup_discovery_worker(void *ptr);
extern bool is_inside_k8s;
extern long system_page_size;
-extern bool cgroup_use_unified_cgroups;
+extern int cgroup_use_unified_cgroups;
extern bool cgroup_unified_exist;
extern bool cgroup_enable_cpuacct;
diff --git a/src/collectors/cgroups.plugin/sys_fs_cgroup.c b/src/collectors/cgroups.plugin/sys_fs_cgroup.c
index 8148489653..592152401b 100644
--- a/src/collectors/cgroups.plugin/sys_fs_cgroup.c
+++ b/src/collectors/cgroups.plugin/sys_fs_cgroup.c
@@ -13,7 +13,7 @@ unsigned long long host_ram_total = 0;
bool is_inside_k8s = false;
long system_page_size = 4096; // system will be queried via sysconf() in configuration()
-bool cgroup_use_unified_cgroups = false;
+int cgroup_use_unified_cgroups = CONFIG_BOOLEAN_AUTO;
bool cgroup_unified_exist = true;
bool cgroup_enable_blkio = true;
@@ -170,6 +170,9 @@ static enum cgroups_type cgroups_try_detect_version()
if ((systemd_setting = cgroups_detect_systemd("systemd --version")) == SYSTEMD_CGROUP_ERR)
systemd_setting = cgroups_detect_systemd(SYSTEMD_CMD_RHEL);
+ if(systemd_setting == SYSTEMD_CGROUP_ERR)
+ return CGROUPS_AUTODETECT_FAIL;
+
if(systemd_setting == SYSTEMD_CGROUP_LEGACY || systemd_setting == SYSTEMD_CGROUP_HYBRID) {
// currently we prefer V1 if HYBRID is set as it seems to be more feature complete
// in the future we might want to continue here if SYSTEMD_CGROUP_HYBRID
@@ -230,7 +233,9 @@ void read_cgroup_plugin_configuration() {
if(cgroup_check_for_new_every < cgroup_update_every)
cgroup_check_for_new_every = cgroup_update_every;
- cgroup_use_unified_cgroups = (cgroups_try_detect_version() == CGROUPS_V2);
+ cgroup_use_unified_cgroups = config_get_boolean_ondemand("plugin:cgroups", "use unified cgroups", CONFIG_BOOLEAN_AUTO);
+ if (cgroup_use_unified_cgroups == CONFIG_BOOLEAN_AUTO)
+ cgroup_use_unified_cgroups = (cgroups_try_detect_version() == CGROUPS_V2);
collector_info("use unified cgroups %s", cgroup_use_unified_cgroups ? "true" : "false");
char filename[FILENAME_MAX + 1], *s;