diff --git a/bg_mon.c b/bg_mon.c index 4fd53ec..118e4bf 100644 --- a/bg_mon.c +++ b/bg_mon.c @@ -234,9 +234,9 @@ static void prepare_statistics_output(struct evbuffer *evb) cgroup_cpu cc = c.cgroup; evbuffer_add_printf(evb, "}}, \"cgroup\": {"); if (cm.available) { - evbuffer_add_printf(evb, "\"memory\": {\"limit\": %lu, \"usage\": %lu", cm.limit, cm.usage); - evbuffer_add_printf(evb, ", \"rss\": %lu, \"cache\": %lu", cm.rss, cm.cache); - evbuffer_add_printf(evb, ", \"dirty\": %lu, \"oom_kill\": %lu", cm.dirty, cm.oom_kill); + evbuffer_add_printf(evb, "\"memory\": {\"limit\": %lu, \"usage\": %lu, ", cm.limit, cm.usage); + evbuffer_add_printf(evb, "\"rss\": %lu, \"cache\": %lu, \"dirty\": %lu", cm.rss, cm.cache, cm.dirty); + evbuffer_add_printf(evb, ", \"oom_kill\": %lu, \"failcnt\": %lu", cm.oom_kill, cm.failcnt); if (cc.available) evbuffer_add_printf(evb, "}, "); } diff --git a/system_stats.c b/system_stats.c index 80a5489..339de51 100644 --- a/system_stats.c +++ b/system_stats.c @@ -110,6 +110,7 @@ static cgroup_memory read_cgroup_memory_stats(void) cm.available = true; cm.usage = cgroup_read_ulong("usage_in_bytes") / 1024; + cm.failcnt = cgroup_read_ulong("failcnt"); strcpy(memory_cgroup + memory_cgroup_len, "stat"); if ((csfd = fopen(memory_cgroup, "r")) == NULL) diff --git a/system_stats.h b/system_stats.h index 7644475..af889eb 100644 --- a/system_stats.h +++ b/system_stats.h @@ -31,6 +31,7 @@ typedef struct { unsigned long cache; unsigned long dirty; unsigned long oom_kill; + unsigned long failcnt; } cgroup_memory; typedef struct {