@cryptotaxi247 / netdata-1 / commits / 559c4ccdb

extended processes function info from apps.plugin (#13822)

extended processes function info

Costa Tsaousis committed Oct 14, 2022 at 21:16 UTC 559c4ccdb88421f077f471ebbc3222c948b47c13
1 file changed +74 -64
collectors/apps.plugin/apps_plugin.c
+74 -64
@@ -4271,20 +4271,26 @@ static void apps_plugin_function_processes_help(const char *transaction) {
4271 pluginsd_function_result_end_to_stdout();
4272 }
4273
4274 -#define add_table_field(wb, key, name, visible, type, units, max, sort) do { \
4275 - if(fields_added) buffer_strcat(wb, ","); \
4276 - buffer_sprintf(wb, "\n \"%s\": {", key); \
4277 - buffer_sprintf(wb, "\n \"index\":%d,", fields_added); \
4278 - buffer_sprintf(wb, "\n \"name\":\"%s\",", name); \
4279 - buffer_sprintf(wb, "\n \"visible\":%s,", (visible)?"true":"false"); \
4280 - buffer_sprintf(wb, "\n \"type\":\"%s\",", type); \
4281 - if(units) \
4282 - buffer_sprintf(wb, "\n \"units\":\"%s\",", (char*)(units)); \
4283 - if(!isnan(max)) \
4284 - buffer_sprintf(wb, "\n \"max\":\"%f\",", (NETDATA_DOUBLE)(max)); \
4285 - buffer_sprintf(wb, "\n \"sort\":\"%s\"", sort); \
4286 - buffer_sprintf(wb, "\n }"); \
4287 - fields_added++; \
4274 +#define add_table_field(wb, key, name, visible, type, units, max, sort, sortable, sticky, unique_key, pointer_to, summary) do { \
4275 + if(fields_added) buffer_strcat(wb, ","); \
4276 + buffer_sprintf(wb, "\n \"%s\": {", key); \
4277 + buffer_sprintf(wb, "\n \"index\":%d,", fields_added); \
4278 + buffer_sprintf(wb, "\n \"unique_key\":%s,", (unique_key)?"true":"false"); \
4279 + buffer_sprintf(wb, "\n \"name\":\"%s\",", name); \
4280 + buffer_sprintf(wb, "\n \"visible\":%s,", (visible)?"true":"false"); \
4281 + buffer_sprintf(wb, "\n \"type\":\"%s\",", type); \
4282 + if(units) \
4283 + buffer_sprintf(wb, "\n \"units\":\"%s\",", (char*)(units)); \
4284 + if(!isnan(max)) \
4285 + buffer_sprintf(wb, "\n \"max\":\"%f\",", (NETDATA_DOUBLE)(max)); \
4286 + if(pointer_to) \
4287 + buffer_sprintf(wb, "\n \"pointer_to\":\"%s\",", (char *)(pointer_to)); \
4288 + buffer_sprintf(wb, "\n \"sort\":\"%s\",", sort); \
4289 + buffer_sprintf(wb, "\n \"sortable\":%s,", (sortable)?"true":"false"); \
4290 + buffer_sprintf(wb, "\n \"sticky\":%s,", (sticky)?"true":"false"); \
4291 + buffer_sprintf(wb, "\n \"summary\":\"%s\"", summary); \
4292 + buffer_sprintf(wb, "\n }"); \
4293 + fields_added++; \
4294 } while(0)
4295
4296 static BUFFER *func_processes_fields = NULL;
@@ -4375,75 +4381,75 @@ static void apps_plugin_function_processes(const char *transaction, char *functi
4381 // IMPORTANT!
4382 // THE ORDER SHOULD BE THE SAME WITH THE VALUES!
4383
4378 - add_table_field(func_processes_fields, "Pid", "Process ID", true, "integer", NULL, NAN, "ascending");
4379 - add_table_field(func_processes_fields, "Cmd", "Process Name", true, "string", NULL, NAN, "ascending");
4384 + add_table_field(func_processes_fields, "Pid", "Process ID", true, "integer", NULL, NAN, "ascending", true, true, true, NULL, "count_unique");
4385 + add_table_field(func_processes_fields, "Cmd", "Process Name", true, "string", NULL, NAN, "ascending", true, true, false, NULL, "count_unique");
4386
4387 #ifdef NETDATA_DEV_MODE
4382 - add_table_field(func_processes_fields, "CmdLine", "Command Line", false, "detail-string:cmd", NULL, NAN, "ascending");
4388 + add_table_field(func_processes_fields, "CmdLine", "Command Line", false, "detail-string:cmd", NULL, NAN, "ascending", true, true, false, NULL, "count_unique");
4389 #endif
4384 - add_table_field(func_processes_fields, "PPid", "Parent Process ID", false, "integer", NULL, NAN, "ascending");
4385 - add_table_field(func_processes_fields, "Category", "Category (apps_groups.conf)", true, "string", NULL, NAN, "ascending");
4386 - add_table_field(func_processes_fields, "User", "User Owner", true, "string", NULL, NAN, "ascending");
4387 - add_table_field(func_processes_fields, "Uid", "User ID", false, "integer", NULL, NAN, "ascending");
4388 - add_table_field(func_processes_fields, "Group", "Group Owner", false, "string", NULL, NAN, "ascending");
4389 - add_table_field(func_processes_fields, "Gid", "Group ID", false, "integer", NULL, NAN, "ascending");
4390 - add_table_field(func_processes_fields, "Processes", "Processes", true, "bar-with-integer", "processes", NAN, "descending");
4391 - add_table_field(func_processes_fields, "Threads", "Threads", true, "bar-with-integer", "threads", NAN, "descending");
4392 - add_table_field(func_processes_fields, "Uptime", "Uptime in seconds", true, "duration", "seconds", NAN, "descending");
4390 + add_table_field(func_processes_fields, "PPid", "Parent Process ID", false, "integer", NULL, NAN, "ascending", true, true, false, "Pid", "count_unique");
4391 + add_table_field(func_processes_fields, "Category", "Category (apps_groups.conf)", true, "string", NULL, NAN, "ascending", true, true, false, NULL, "count_unique");
4392 + add_table_field(func_processes_fields, "User", "User Owner", true, "string", NULL, NAN, "ascending", true, true, false, NULL, "count_unique");
4393 + add_table_field(func_processes_fields, "Uid", "User ID", false, "integer", NULL, NAN, "ascending", true, true, false, NULL, "count_unique");
4394 + add_table_field(func_processes_fields, "Group", "Group Owner", false, "string", NULL, NAN, "ascending", true, true, false, NULL, "count_unique");
4395 + add_table_field(func_processes_fields, "Gid", "Group ID", false, "integer", NULL, NAN, "ascending", true, true, false, NULL, "count_unique");
4396 + add_table_field(func_processes_fields, "Processes", "Processes", true, "bar-with-integer", "processes", NAN, "descending", true, false, false, NULL, "sum");
4397 + add_table_field(func_processes_fields, "Threads", "Threads", true, "bar-with-integer", "threads", NAN, "descending", true, false, false, NULL, "sum");
4398 + add_table_field(func_processes_fields, "Uptime", "Uptime in seconds", true, "duration", "seconds", NAN, "descending", true, false, false, NULL, "max");
4399
4400 // minor page faults
4395 - add_table_field(func_processes_fields, "MinFlt", "Minor Page Faults/s", false, "bar", "page faults/s", NAN, "descending");
4396 - add_table_field(func_processes_fields, "CMinFlt", "Children Minor Page Faults/s", false, "bar", "page faults/s", NAN, "descending");
4397 - add_table_field(func_processes_fields, "TMinFlt", "Total Minor Page Faults/s", false, "bar", "page faults/s", NAN, "descending");
4401 + add_table_field(func_processes_fields, "MinFlt", "Minor Page Faults/s", false, "bar", "page faults/s", NAN, "descending", true, false, false, NULL, "sum");
4402 + add_table_field(func_processes_fields, "CMinFlt", "Children Minor Page Faults/s", false, "bar", "page faults/s", NAN, "descending", true, false, false, NULL, "sum");
4403 + add_table_field(func_processes_fields, "TMinFlt", "Total Minor Page Faults/s", false, "bar", "page faults/s", NAN, "descending", true, false, false, NULL, "sum");
4404
4405 // major page faults
4400 - add_table_field(func_processes_fields, "MajFlt", "Major Page Faults/s", false, "bar", "page faults/s", NAN, "descending");
4401 - add_table_field(func_processes_fields, "CMajFlt", "Children Major Page Faults/s", false, "bar", "page faults/s", NAN, "descending");
4402 - add_table_field(func_processes_fields, "TMajFlt", "Total Major Page Faults/s", true, "bar", "page faults/s", NAN, "descending");
4406 + add_table_field(func_processes_fields, "MajFlt", "Major Page Faults/s", false, "bar", "page faults/s", NAN, "descending", true, false, false, NULL, "sum");
4407 + add_table_field(func_processes_fields, "CMajFlt", "Children Major Page Faults/s", false, "bar", "page faults/s", NAN, "descending", true, false, false, NULL, "sum");
4408 + add_table_field(func_processes_fields, "TMajFlt", "Total Major Page Faults/s", true, "bar", "page faults/s", NAN, "descending", true, false, false, NULL, "sum");
4409
4410 // CPU utilization
4405 - add_table_field(func_processes_fields, "UserCPU", "User CPU time", false, "bar-only", "%", NAN, "descending");
4406 - add_table_field(func_processes_fields, "SysCPU", "System CPU Time", false, "bar-only", "%", NAN, "descending");
4407 - add_table_field(func_processes_fields, "GuestCPU", "Guest CPU Time", false, "bar-only", "%", NAN, "descending");
4408 - add_table_field(func_processes_fields, "CUserCPU", "Children User CPU Time", false, "bar-only", "%", NAN, "descending");
4409 - add_table_field(func_processes_fields, "CSysCPU", "Children System CPU Time", false, "bar-only", "%", NAN, "descending");
4410 - add_table_field(func_processes_fields, "CGuestCPU", "Children Guest CPU Time", false, "bar-only", "%", NAN, "descending");
4411 - add_table_field(func_processes_fields, "CPU", "Total CPU Time", true, "bar-only", "%", NAN, "descending");
4411 + add_table_field(func_processes_fields, "UserCPU", "User CPU time", false, "bar-only", "%", NAN, "descending", true, false, false, NULL, "sum");
4412 + add_table_field(func_processes_fields, "SysCPU", "System CPU Time", false, "bar-only", "%", NAN, "descending", true, false, false, NULL, "sum");
4413 + add_table_field(func_processes_fields, "GuestCPU", "Guest CPU Time", false, "bar-only", "%", NAN, "descending", true, false, false, NULL, "sum");
4414 + add_table_field(func_processes_fields, "CUserCPU", "Children User CPU Time", false, "bar-only", "%", NAN, "descending", true, false, false, NULL, "sum");
4415 + add_table_field(func_processes_fields, "CSysCPU", "Children System CPU Time", false, "bar-only", "%", NAN, "descending", true, false, false, NULL, "sum");
4416 + add_table_field(func_processes_fields, "CGuestCPU", "Children Guest CPU Time", false, "bar-only", "%", NAN, "descending", true, false, false, NULL, "sum");
4417 + add_table_field(func_processes_fields, "CPU", "Total CPU Time", true, "bar-only", "%", NAN, "descending", true, false, false, NULL, "sum");
4418
4419 // memory
4414 - add_table_field(func_processes_fields, "VMSize", "Virtual Memory Size", false, "bar", "MiB", NAN, "descending");
4415 - add_table_field(func_processes_fields, "RSS", "Resident Set Size", MemTotal?false:true, "bar", "MiB", NAN, "descending");
4416 - add_table_field(func_processes_fields, "Shared", "Shared Pages", false, "bar", "MiB", NAN, "descending");
4417 - add_table_field(func_processes_fields, "Swap", "Swap Memory", false, "bar", "MiB", NAN, "descending");
4420 + add_table_field(func_processes_fields, "VMSize", "Virtual Memory Size", false, "bar", "MiB", NAN, "descending", true, false, false, NULL, "sum");
4421 + add_table_field(func_processes_fields, "RSS", "Resident Set Size", MemTotal?false:true, "bar", "MiB", NAN, "descending", true, false, false, NULL, "sum");
4422 + add_table_field(func_processes_fields, "Shared", "Shared Pages", false, "bar", "MiB", NAN, "descending", true, false, false, NULL, "sum");
4423 + add_table_field(func_processes_fields, "Swap", "Swap Memory", false, "bar", "MiB", NAN, "descending", true, false, false, NULL, "sum");
4424
4425 if(MemTotal)
4420 - add_table_field(func_processes_fields, "MemPcnt", "Memory Percentage", true, "bar", "%", 100.0, "descending");
4426 + add_table_field(func_processes_fields, "MemPcnt", "Memory Percentage", true, "bar", "%", 100.0, "descending", true, false, false, NULL, "sum");
4427
4428 // Logical I/O
4429 #ifndef __FreeBSD__
4424 - add_table_field(func_processes_fields, "LReads", "Logical I/O Reads", false, "bar", "KiB/s", NAN, "descending");
4425 - add_table_field(func_processes_fields, "LWrites", "Logical I/O Writes", false, "bar", "KiB/s", NAN, "descending");
4430 + add_table_field(func_processes_fields, "LReads", "Logical I/O Reads", false, "bar", "KiB/s", NAN, "descending", true, false, false, NULL, "sum");
4431 + add_table_field(func_processes_fields, "LWrites", "Logical I/O Writes", false, "bar", "KiB/s", NAN, "descending", true, false, false, NULL, "sum");
4432 #endif
4433
4434 // Physical I/O
4429 - add_table_field(func_processes_fields, "PReads", "Physical I/O Reads", true, "bar", "KiB/s", NAN, "descending");
4430 - add_table_field(func_processes_fields, "PWrites", "Physical I/O Writes", true, "bar", "KiB/s", NAN, "descending");
4435 + add_table_field(func_processes_fields, "PReads", "Physical I/O Reads", true, "bar", "KiB/s", NAN, "descending", true, false, false, NULL, "sum");
4436 + add_table_field(func_processes_fields, "PWrites", "Physical I/O Writes", true, "bar", "KiB/s", NAN, "descending", true, false, false, NULL, "sum");
4437
4438 // I/O calls
4433 - add_table_field(func_processes_fields, "RCalls", "I/O Read Calls", false, "bar", "calls/s", NAN, "descending");
4434 - add_table_field(func_processes_fields, "WCalls", "I/O Write Calls", false, "bar", "calls/s", NAN, "descending");
4439 + add_table_field(func_processes_fields, "RCalls", "I/O Read Calls", false, "bar", "calls/s", NAN, "descending", true, false, false, NULL, "sum");
4440 + add_table_field(func_processes_fields, "WCalls", "I/O Write Calls", false, "bar", "calls/s", NAN, "descending", true, false, false, NULL, "sum");
4441
4442 // open file descriptors
4437 - add_table_field(func_processes_fields, "Files", "Open Files", false, "bar", "generic", NAN, "descending");
4438 - add_table_field(func_processes_fields, "Pipes", "Open Pipes", false, "bar", "generic", NAN, "descending");
4439 - add_table_field(func_processes_fields, "Sockets", "Open Sockets", false, "bar", "generic", NAN, "descending");
4440 - add_table_field(func_processes_fields, "iNotiFDs", "Open iNotify Descriptors", false, "bar", "generic", NAN, "descending");
4441 - add_table_field(func_processes_fields, "EventFDs", "Open Event Descriptors", false, "bar", "generic", NAN, "descending");
4442 - add_table_field(func_processes_fields, "TimerFDs", "Open Timer Descriptors", false, "bar", "generic", NAN, "descending");
4443 - add_table_field(func_processes_fields, "SigFDs", "Open Signal Descriptors", false, "bar", "generic", NAN, "descending");
4444 - add_table_field(func_processes_fields, "EvPollFDs", "Open Event Poll Descriptors", false, "bar", "generic", NAN, "descending");
4445 - add_table_field(func_processes_fields, "OtherFDs", "Other Open Descriptors", false, "bar", "generic", NAN, "descending");
4446 - add_table_field(func_processes_fields, "FDs", "All Open File Descriptors", true, "bar", "generic", NAN, "descending");
4443 + add_table_field(func_processes_fields, "Files", "Open Files", false, "bar", "generic", NAN, "descending", true, false, false, NULL, "sum");
4444 + add_table_field(func_processes_fields, "Pipes", "Open Pipes", false, "bar", "generic", NAN, "descending", true, false, false, NULL, "sum");
4445 + add_table_field(func_processes_fields, "Sockets", "Open Sockets", false, "bar", "generic", NAN, "descending", true, false, false, NULL, "sum");
4446 + add_table_field(func_processes_fields, "iNotiFDs", "Open iNotify Descriptors", false, "bar", "generic", NAN, "descending", true, false, false, NULL, "sum");
4447 + add_table_field(func_processes_fields, "EventFDs", "Open Event Descriptors", false, "bar", "generic", NAN, "descending", true, false, false, NULL, "sum");
4448 + add_table_field(func_processes_fields, "TimerFDs", "Open Timer Descriptors", false, "bar", "generic", NAN, "descending", true, false, false, NULL, "sum");
4449 + add_table_field(func_processes_fields, "SigFDs", "Open Signal Descriptors", false, "bar", "generic", NAN, "descending", true, false, false, NULL, "sum");
4450 + add_table_field(func_processes_fields, "EvPollFDs", "Open Event Poll Descriptors", false, "bar", "generic", NAN, "descending", true, false, false, NULL, "sum");
4451 + add_table_field(func_processes_fields, "OtherFDs", "Other Open Descriptors", false, "bar", "generic", NAN, "descending", true, false, false, NULL, "sum");
4452 + add_table_field(func_processes_fields, "FDs", "All Open File Descriptors", true, "bar", "generic", NAN, "descending", true, false, false, NULL, "sum");
4453
4454 buffer_strcat(
4455 func_processes_fields,
@@ -4531,12 +4537,16 @@ static void apps_plugin_function_processes(const char *transaction, char *functi
4537 "\n },"
4538 "\n \"group_by\": {"
4539 "\n \"Process Tree by PID\": {"
4534 - "\n \"columns\": [ \"PPid\", \"Pid\" ],"
4535 - "\n \"order\": [ \"ascending\", \"ascending\" ]"
4540 + "\n \"columns\": [ \"PPid\" ]"
4541 "\n },"
4542 "\n \"Process Tree by Category\": {"
4538 - "\n \"columns\": [ \"Category\", \"PPid\", \"Pid\" ],"
4539 - "\n \"order\": [ \"any\", \"ascending\", \"ascending\" ]"
4543 + "\n \"columns\": [ \"Category\", \"PPid\" ]"
4544 + "\n },"
4545 + "\n \"Process Tree by User\": {"
4546 + "\n \"columns\": [ \"User\", \"PPid\" ]"
4547 + "\n },"
4548 + "\n \"Process Tree by Group\": {"
4549 + "\n \"columns\": [ \"Group\", \"PPid\" ]"
4550 "\n }"
4551 "\n },"
4552 "\n \"data\":["