summaryrefslogtreecommitdiffstats
path: root/collectors/cgroups.plugin/sys_fs_cgroup.c
diff options
context:
space:
mode:
authorIlya Mashchenko <ilya@netdata.cloud>2022-08-31 18:37:19 +0300
committerGitHub <noreply@github.com>2022-08-31 18:37:19 +0300
commit9cdbd7faa5ab7673036c2fafdc01a8a2e8208ce2 (patch)
treeeca4ad665147967cc86c865eabd5a90f827f6225 /collectors/cgroups.plugin/sys_fs_cgroup.c
parent17fb46ea04012bb50ecf9a726a29f5436038caf3 (diff)
fix(cgroups.plugin): fix chart id length check (#13601)
Diffstat (limited to 'collectors/cgroups.plugin/sys_fs_cgroup.c')
-rw-r--r--collectors/cgroups.plugin/sys_fs_cgroup.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/collectors/cgroups.plugin/sys_fs_cgroup.c b/collectors/cgroups.plugin/sys_fs_cgroup.c
index 3305621733..b214b3731b 100644
--- a/collectors/cgroups.plugin/sys_fs_cgroup.c
+++ b/collectors/cgroups.plugin/sys_fs_cgroup.c
@@ -37,6 +37,8 @@
// ----------------------------------------------------------------------------
// cgroup globals
+static char cgroup_chart_id_prefix[] = "cgroup_";
+
static int is_inside_k8s = 0;
static long system_page_size = 4096; // system will be queried via sysconf() in configuration()
@@ -2682,7 +2684,7 @@ static inline void discovery_process_cgroup(struct cgroup *cg) {
cg->processed = 1;
- if (strlen(cg->chart_id) >= RRD_ID_LENGTH_MAX) {
+ if ((strlen(cg->chart_id) + strlen(cgroup_chart_id_prefix)) >= RRD_ID_LENGTH_MAX) {
info("cgroup '%s' (chart id '%s') disabled because chart_id exceeds the limit (RRD_ID_LENGTH_MAX)", cg->id, cg->chart_id);
return;
}
@@ -3595,7 +3597,7 @@ static inline char *cgroup_chart_type(char *buffer, const char *id, size_t len)
if(id[0] == '\0' || (id[0] == '/' && id[1] == '\0'))
strncpy(buffer, "cgroup_root", len);
else
- snprintfz(buffer, len, "cgroup_%s", id);
+ snprintfz(buffer, len, "%s%s", cgroup_chart_id_prefix, id);
netdata_fix_chart_id(buffer);
return buffer;