From 4e9da25009f28f5c01cae4ebc754dc9923059d4d Mon Sep 17 00:00:00 2001 From: Dan Snyder Date: Tue, 14 Jan 2025 18:30:55 -0500 Subject: [PATCH] Include visit order in stats --- src/server.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/server.c b/src/server.c index f2040df..e841d4d 100644 --- a/src/server.c +++ b/src/server.c @@ -190,9 +190,9 @@ void aggregateStats(Process *head) { break; } - current->visited = 1; - current->level = depth; visited++; + current->visited = visited; // store to tag the order the process is visited + current->level = depth; if (depth > maxdepth) maxdepth = depth; @@ -329,6 +329,7 @@ char *readProcesses(char *procdir) { sprintf(buffer, "pid=\"%d\",ppid=\"%d\",label=\"%s\",lxc=\"%d\"", cur->pid, cur->ppid, cur->label, cur->lxc); + // process specific stats ptr += sprintf(ptr, "process_cpu_time_seconds{%s} %f\n", buffer, (double) cur->cpuTime / clocks); ptr += sprintf(ptr, "process_num_threads{%s} %lu\n", buffer, cur->nThreads); ptr += sprintf(ptr, "process_resident_bytes{%s} %lu\n", buffer, cur->resident); @@ -336,12 +337,15 @@ char *readProcesses(char *procdir) { ptr += sprintf(ptr, "process_fileio_bytes_written{%s} %lu\n", buffer, cur->written); ptr += sprintf(ptr, "process_fileio_bytes_read{%s} %lu\n", buffer, cur->read); ptr += sprintf(ptr, "process_is_kernel_process{%s} %d\n", buffer, cur->iskernel); - ptr += sprintf(ptr, "process_tree_depth{%s} %d\n", buffer, cur->level); + // cumulative fields ptr += sprintf(ptr, "process_cumulative_cpu_time_seconds{%s} %lu\n", buffer, cur->cCpuTime); ptr += sprintf(ptr, "process_cumulative_resident_bytes{%s} %lu\n", buffer, cur->cMemory); ptr += sprintf(ptr, "process_cumulative_swap_bytes{%s} %lu\n", buffer, cur->cSwap); ptr += sprintf(ptr, "process_cumulative_bytes_read{%s} %lu\n", buffer, cur->cRead); ptr += sprintf(ptr, "process_cumulative_bytes_written{%s} %lu\n", buffer, cur->cWrite); + // stats used to make flame chart + ptr += sprintf(ptr, "process_tree_depth{%s} %d\n", buffer, cur->level); + ptr += sprintf(ptr, "process_visit_index{%s} %d\n", buffer, cur->visited); // free and proceed Process *prev = cur; cur = cur->next;