fix(cgroups.plugin): fix chart id length check (#13601)
Ilya Mashchenko committed
Aug 31, 2022 at 18:37 UTC
9cdbd7faa5ab7673036c2fafdc01a8a2e8208ce2
1 file changed
+4
-2
collectors/cgroups.plugin/sys_fs_cgroup.c
+4
-2
@@ -37,6 +37,8 @@
37
// ----------------------------------------------------------------------------
38
// cgroup globals
39
40
+static char cgroup_chart_id_prefix[] = "cgroup_";
41
+
42
static int is_inside_k8s = 0;
43
44
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) {
2684
2685
cg->processed = 1;
2686
2685
- if (strlen(cg->chart_id) >= RRD_ID_LENGTH_MAX) {
2687
+ if ((strlen(cg->chart_id) + strlen(cgroup_chart_id_prefix)) >= RRD_ID_LENGTH_MAX) {
2688
info("cgroup '%s' (chart id '%s') disabled because chart_id exceeds the limit (RRD_ID_LENGTH_MAX)", cg->id, cg->chart_id);
2689
return;
2690
}
@@ -3595,7 +3597,7 @@ static inline char *cgroup_chart_type(char *buffer, const char *id, size_t len)
3597
if(id[0] == '\0' || (id[0] == '/' && id[1] == '\0'))
3598
strncpy(buffer, "cgroup_root", len);
3599
else
3598
- snprintfz(buffer, len, "cgroup_%s", id);
3600
+ snprintfz(buffer, len, "%s%s", cgroup_chart_id_prefix, id);
3601
3602
netdata_fix_chart_id(buffer);
3603
return buffer;