#! /bin/bash
# Print alarm json messages
function print_json()
{
local json=`echo "$1" | sed -r 's/,{2,}/,/g;s/(^,)|(,$)//g;'`
cat <<EOF
{
"collection_flag":0,
"MSG": [$json]
}
EOF
}
function check_load()
{
local cpu_num=`cat /proc/cpuinfo | grep processor | wc -l`
local load_arr=(`uptime | awk -Faverage: '{print $2}' | tr -d ','`)
local load1 load5 load15 load1_per_cpu load5_per_cpu load15_per_cpu
load1=${load_arr[0]}
load5=${load_arr[1]}
load15=${load_arr[2]}
load1_per_cpu=$(echo $load1 $cpu_num | awk '{print $1/$2}')
load5_per_cpu=$(echo $load5 $cpu_num | awk '{print $1/$2}')
load15_per_cpu=$(echo $load15 $cpu_num | awk '{print $1/$2}')
local D_proc_cnt D_proc_msg
D_proc_cnt=$(ps uax | grep ' [D] ' | wc -l)
echo "{\"cpu_num\":$cpu_num,\"load1\":$load1,\"load5\":$load5,\"load15\":$load15,\"load1_per_cpu\":$load1_per_cpu,\"load5_per_cpu\":$load5_per_cpu,\"load15_per_cpu\":$load15_per_cpu,\"D_proc_cnt\":$D_proc_cnt}"
}
function main()
{
local msg=$(check_load)
print_json $msg
}
main