X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Fvmem.c;h=f50170685c2fd1bb296f4d9a5d3d886cd30a9b1a;hb=38909dcf1dcb596c5f525c6bb25cf89c046013b5;hp=c3ccbe624c9d794a00fb4e1a9495fb05e9c870c8;hpb=0beb06563c5681975fd4f743c547e15f4facb29f;p=collectd.git diff --git a/src/vmem.c b/src/vmem.c index c3ccbe62..f5017068 100644 --- a/src/vmem.c +++ b/src/vmem.c @@ -147,7 +147,7 @@ static int vmem_read (void) if (fields[1] == endptr) continue; - /* + /* * Number of pages * * The total number of {inst} pages, e. g dirty pages. @@ -155,11 +155,19 @@ static int vmem_read (void) if (strncmp ("nr_", key, strlen ("nr_")) == 0) { char *inst = key + strlen ("nr_"); - value_t value = { .gauge = gauge }; - submit_one (NULL, "vmpage_number", inst, value); + if (strcmp(inst, "dirtied") == 0 || strcmp(inst, "written") == 0) + { + value_t value = { .derive = counter }; + submit_one (NULL, "vmpage_action", inst, value); + } + else + { + value_t value = { .gauge = gauge }; + submit_one (NULL, "vmpage_number", inst, value); + } } - /* + /* * Page in and page outs. For memory and swap. */ else if (strcmp ("pgpgin", key) == 0) @@ -219,6 +227,19 @@ static int vmem_read (void) value_t value = { .derive = counter }; submit_one (inst, "vmpage_action", "refill", value); } + else if (strncmp ("pgsteal_kswapd_", key, strlen ("pgsteal_kswapd_")) == 0) + { + char *inst = key + strlen ("pgsteal_kswapd_"); + value_t value = { .derive = counter }; + submit_one (inst, "vmpage_action", "steal_kswapd", value); + } + else if (strncmp ("pgsteal_direct_", key, strlen ("pgsteal_direct_")) == 0) + { + char *inst = key + strlen ("pgsteal_direct_"); + value_t value = { .derive = counter }; + submit_one (inst, "vmpage_action", "steal_direct", value); + } + /* For backwards compatibility (somewhen before 4.2.3) */ else if (strncmp ("pgsteal_", key, strlen ("pgsteal_")) == 0) { char *inst = key + strlen ("pgsteal_");