@cryptotaxi247 / netdata-1 / commits / 4b01a5a83

cgroups: bring back "use unified cgroups" option (#17969)

Ilya Mashchenko committed Jun 20, 2024 at 18:27 UTC 4b01a5a836a620d8fdc72f4ce909666bc6799260
2 files changed +8 -3
src/collectors/cgroups.plugin/cgroup-internals.h
+1 -1
@@ -283,7 +283,7 @@ void cgroup_discovery_worker(void *ptr);
283 extern bool is_inside_k8s;
284 extern long system_page_size;
285
286 -extern bool cgroup_use_unified_cgroups;
286 +extern int cgroup_use_unified_cgroups;
287 extern bool cgroup_unified_exist;
288
289 extern bool cgroup_enable_cpuacct;
src/collectors/cgroups.plugin/sys_fs_cgroup.c
+7 -2
@@ -13,7 +13,7 @@ unsigned long long host_ram_total = 0;
13 bool is_inside_k8s = false;
14 long system_page_size = 4096; // system will be queried via sysconf() in configuration()
15
16 -bool cgroup_use_unified_cgroups = false;
16 +int cgroup_use_unified_cgroups = CONFIG_BOOLEAN_AUTO;
17 bool cgroup_unified_exist = true;
18
19 bool cgroup_enable_blkio = true;
@@ -170,6 +170,9 @@ static enum cgroups_type cgroups_try_detect_version()
170 if ((systemd_setting = cgroups_detect_systemd("systemd --version")) == SYSTEMD_CGROUP_ERR)
171 systemd_setting = cgroups_detect_systemd(SYSTEMD_CMD_RHEL);
172
173 + if(systemd_setting == SYSTEMD_CGROUP_ERR)
174 + return CGROUPS_AUTODETECT_FAIL;
175 +
176 if(systemd_setting == SYSTEMD_CGROUP_LEGACY || systemd_setting == SYSTEMD_CGROUP_HYBRID) {
177 // currently we prefer V1 if HYBRID is set as it seems to be more feature complete
178 // in the future we might want to continue here if SYSTEMD_CGROUP_HYBRID
@@ -230,7 +233,9 @@ void read_cgroup_plugin_configuration() {
233 if(cgroup_check_for_new_every < cgroup_update_every)
234 cgroup_check_for_new_every = cgroup_update_every;
235
233 - cgroup_use_unified_cgroups = (cgroups_try_detect_version() == CGROUPS_V2);
236 + cgroup_use_unified_cgroups = config_get_boolean_ondemand("plugin:cgroups", "use unified cgroups", CONFIG_BOOLEAN_AUTO);
237 + if (cgroup_use_unified_cgroups == CONFIG_BOOLEAN_AUTO)
238 + cgroup_use_unified_cgroups = (cgroups_try_detect_version() == CGROUPS_V2);
239 collector_info("use unified cgroups %s", cgroup_use_unified_cgroups ? "true" : "false");
240
241 char filename[FILENAME_MAX + 1], *s;