JsonPerfMon collects system information from a Linux/AIX system and print a json structures at a regular period to the standard output.
optimized C code It only needs a few milliseconds per second to collect all the datas.
lightweight It only needs a few megabytes of memory (~4 Mb) to manage datas. Memory is allocated during the first collect and reused during all the process life.
Per second data collection Every group of data - cpu_total, cpus, memory, disks, nfs, adapters & processes - can be collected in a single json or in an indivual one at a period of 2^n (power) seconds.
Rsyslog integration The tool provide an option to communication through pipes with rsyslog improg module.
Elasticsearch The json file can be efficiently inserted in elastic search indexes to monitoring multiple linux / Aix boxes in the same charts.
jsonperfmon [-A <n>] [-t <n>] [-u <n>] [-m <n>] [-s <n>] [-n <n>] [-i <n>] [-p <n>] [-r] [-R]
-Aset the period for All groups, always overwritten by individual group setting
-tset the period for the cpu total
-uset the period for the individual cpus
-mset the period for the memory
-sset the period for the storage (disks & mounts)
-nset the period for the nfs v3/v4
-iset the period for the IO adapaters network and fiber channel
-pset the period for the processes top 10 for high cpu and top 5 high memory
-ractivate dialog with rsyslog improg confirm mode
-Rinsert an empty line between jsons for human readable purpose
<n>=0disable the concerned group(s),<0produce the group every2^(n-1)seconds in the main json structure,>0same as<0except the json produced is dedicated to the group.
_s=> per second_us=> in µ-second_mb=> in mega-bytes_pct=> in percent
{
"cpu_total": { // Group total cpu (-t)
"active": 2,
"configured": 2,
"processorMHZ": 2497,
"run_queue_s": 0,
"context_switch_s": 24,
"physique": {
"user_pct": 0.0,
"sys_pct": 0.0,
"wait_pct": 0.0,
"idle_pct": 100.0
},
"load_average": {
"T0": 0.0,
"T5": 0.0,
"T15": 0.0
}
},
"cpus": { // Group cpus (-u)
"0": {
"user_pct": 0.0,
"sys_pct": 0.0,
"wait_pct": 0.0,
"idle_pct": 100.0
},
...
},
"memory": { // Group memory (-m)
"virt_total": 726,
"real_total": 5845,
"real_free": 4008,
"virt_active_pg": 838856,
"pgins_s": 0,
"pgouts_s": 0,
"pgspins_s": 0,
"pgspouts_s": 0,
"hugepage": {
"size_kb": 2048,
"total": 0,
"free": 0
},
"paging": {
"total": 4194300,
"used_pct": 1,
"faults_s": 30
}
},
"pagingspaces": { // Group memory
"/dev/dm-1": {
"type": "LV",
"size_mb": 4095,
"used_pct": 0.3
}
},
"disks": { // Group disks (-d)
"sda": {
"busy_pct": 0,
"read": {
"blocks_s": 0,
"time_avg_us": 0
},
"write": {
"blocks_s": 0,
"time_avg_us": 0
},
"queue": {
"time_avg_us": 0,
"write_len_avg": 0,
"read_len_avg": 0,
"wq_depth": 0
}
},
"dm-0": {
"busy_pct": 0,
"read": {
"blocks_s": 0,
"time_avg_us": 0
},
"write": {
"blocks_s": 0,
"time_avg_us": 0
},
"queue": {
"time_avg_us": 0,
"write_len_avg": 0,
"read_len_avg": 0,
"wq_depth": 0
}
}
},
"fs": {
// ... see AIX
},
"intfs": { // Group io-dapters (-a)
"eth0:": {
"in": {
"packets_s": 3,
"errors": 0,
"bytes_s": 238
},
"out": {
"packets_s": 3,
"errors": 0,
"bytes_s": 4258
},
"collisions": 0,
"drops": 0
}
},
"fcadapters": { // Group io-adapters
"fcs0": {
"rx_kb_s": 0,
"tx_kb_s": 0,
"err_frm_s": 0,
"err_frm_tot": 0,
"lost_frm_s": 0,
"lost_frm_tot": 0,
"link_fail_s": 0,
"link_fail_tot": 0
}
},
"processes": { // Group processes (-p)
// ... see AIX
},
"server": "dev-lnx-d10",
"timestamp": 1549740204
}
{ "cpu_total": { // Group total cpu (-t) "active": 4, "configured": 4, "processorMHZ": 4228, "run_queue_s": 0, "context_switch_s": 3572, "syscall_s": 22760, "logic": { "user_pct": 2.4, "sys_pct": 4.6, "wait_pct": 0.0, "idle_pct": 93.0 }, "physique": { "user_pct": 37.2, "sys_pct": 36.1, "wait_pct": 0.0, "idle_pct": 26.7 }, "load_average": { "T0": 5.6, "T5": 6.4, "T15": 6.6 } }, "cpus": { // Group cpus (-u) "0": { "user_pct": 3.0, "sys_pct": 15.2, "wait_pct": 0.0, "idle_pct": 81.8 }, "1": { "user_pct": 12.1, "sys_pct": 15.2, "wait_pct": 0.0, "idle_pct": 72.7 }, "2": { "user_pct": 0.0, "sys_pct": 0.0, "wait_pct": 0.0, "idle_pct": 100.0 }, "3": { "user_pct": 0.0, "sys_pct": 0.0, "wait_pct": 0.0, "idle_pct": 100.0 } }, "memory": { // Group memory (-m) "virt_total": 92416, "real_total": 73728, "real_free": 28485, "virt_active_pg": 9712324, "pgins_s": 0, "pgouts_s": 0, "pgspins_s": 0, "pgspouts_s": 0, "numperm": 6715, "real_system": 7026, "real_user": 36486, "paging": { "reserved": 4784128, "total": 2, "used_pct": 18688, "faults_s": 26 }, "page_4k": { "rtotal": 18808831, "rfree": 7292270, "rused": 11516561 } }, "disks": { // Group storage (-d) "hdisk0": { "busy_pct": 0, "read": { "blocks_s": 0, "timeouts_s": 0, "failed_s": 0, "time_min_us": 100, "time_max_us": 376159, "time_avg_us": 0 }, "write": { "blocks_s": 0, "timeouts_s": 0, "failed_s": 0, "time_min_us": 142, "time_max_us": 166931, "time_avg_us": 0 }, "queue": { "q_full_s": 0, "time_min_us": 0, "time_max_us": 1993627, "time_avg_us": 0, "write_len_avg": 0, "read_len_avg": 0, "wq_depth": 0 } } }, "fs": { // Group storage "dev_hd4": { "mount": "/", "type": "LUN", "size_mb": 2048, "free_pct": 95 }, "dev_hd2": { "mount": "/usr", "type": "LUN", "size_mb": 4096, "free_pct": 28 }, ... "exploit": { "mount": "/exploit/nfs", "type": "NFS", "size_mb": 20480, "free_pct": 77 } }, "nfsv3": { // Group nfs (-n) "calls_s": 4, "access_pct": 0.0, "read_pct": 0.0, "write_pct": 0.0, "lookup_pct": 0.0, "attrGetSet_pct": 0.0 }, "nfsv4": { "calls_s": 0 }, "intfs": { // Group io-adapters (-a) "en3": { "in": { "packets_s": 4, "errors": 0, "bytes_s": 896 }, "out": { "packets_s": 6, "errors": 0, "bytes_s": 908 }, "collisions": 0, "drops": 0 }, "en4": { "in": { "packets_s": 6, "errors": 0, "bytes_s": 364 }, "out": { "packets_s": 5, "errors": 0, "bytes_s": 6590 }, "collisions": 0, "drops": 0 } }, "fcadapters": { // Group io-adapters "fcs0": { "max_xfer": 0, "rx_kb_s": 0, "tx_kb_s": 0, "err_frm_s": 0, "err_frm_tot": 0, "lost_frm_s": 0, "lost_frm_tot": 0, "link_fail_s": 0, "link_fail_tot": 0 } }, "processes": { // Group processes (-p) "cpu": { "0": { "pid": 33948658, "process": "perfjson", "cpu_pct": 0.3, "mem_mb": 1 }, "1": { "pid": 46990290, "process": "sshd", "cpu_pct": 0.1, "mem_mb": 4 }, // ... until "9" }, "mem": { "0": { "pid": 52494940, "process": "rmcd", "mem_mb": 22 }, "1": { "pid": 54985398, "process": "IBM.ConfigRMd", "mem_mb": 16 }, // ... until "4" } }, "server": "dev-aix-d1c", "timestamp": 1549737252 }