Commit da005429 by feilong

init

parent f47262b2
...@@ -17,118 +17,119 @@ Json_join(){ ...@@ -17,118 +17,119 @@ Json_join(){
jstr=$jstr"{\"endpoint\": \"${endpoint}\", \"metric\": \"${metric}\", \"value\": $value,\"step\": ${step}, \"tags\": \"${tags}\",\"counterType\":\"${countertype}\",\"timestamp\": $(date +%s)}," jstr=$jstr"{\"endpoint\": \"${endpoint}\", \"metric\": \"${metric}\", \"value\": $value,\"step\": ${step}, \"tags\": \"${tags}\",\"counterType\":\"${countertype}\",\"timestamp\": $(date +%s)},"
} }
Get_current_value(){ Get_current_value(){
cluster_enabled=0 cluster_enabled=0
eval $($redis_cli_cmd -h $ip -p $port info 2>/dev/null|tr -d "\r"|egrep ':'|awk -F: '{printf("%s=\"%s\"\n",$1,$2)}') eval $($redis_cli_cmd -h $ip -p $port info 2>/dev/null|tr -d "\r"|egrep ':'|awk -F: '{printf("%s=\"%s\"\n",$1,$2)}')
[ $cluster_enabled -eq 1 ] && eval $($redis_cli_cmd -h $ip -p $port cluster info 2>/dev/null|tr -d "\r"|sed 's/-/_/g'|egrep ':'|awk -F: '{printf("%s=\"%s\"\n",$1,$2)}') [ $cluster_enabled -eq 1 ] && eval $($redis_cli_cmd -h $ip -p $port cluster info 2>/dev/null|tr -d "\r"|sed 's/-/_/g'|egrep ':'|awk -F: '{printf("%s=\"%s\"\n",$1,$2)}')
eval $($redis_cli_cmd -h $ip -p $port info commandstats 2>/dev/null|tr -d "\r"|egrep ':'|sed 's/-/_/g'|awk -F[:=,] '{printf("%s_%s=%s\n%s_%s=%s\n%s_%s=%s\n",$1,$2,$3,$1,$4,$5,$1,$6,$7)}') eval $($redis_cli_cmd -h $ip -p $port info commandstats 2>/dev/null|tr -d "\r"|egrep ':'|sed 's/-/_/g'|awk -F[:=,] '{printf("%s_%s=%s\n%s_%s=%s\n%s_%s=%s\n",$1,$2,$3,$1,$4,$5,$1,$6,$7)}')
maxmemory=$($redis_cli_cmd -h $ip -p $port config get maxmemory 2>/dev/null|sed -n '2p') maxmemory=$($redis_cli_cmd -h $ip -p $port config get maxmemory 2>/dev/null|sed -n '2p')
test -z $maxmemory && maxmemory=$($redis_cli_cmd -h $ip -p $port sc_config get maxmemory 2>/dev/null|sed -n '2p') test -z $maxmemory && maxmemory=$($redis_cli_cmd -h $ip -p $port sc_config get maxmemory 2>/dev/null|sed -n '2p')
maxclients=$($redis_cli_cmd -h $ip -p $port config get maxclients 2>/dev/null|sed -n '2p') maxclients=$($redis_cli_cmd -h $ip -p $port config get maxclients 2>/dev/null|sed -n '2p')
test -z $maxclients && maxclients=$($redis_cli_cmd -h $ip -p $port sc_config get maxclients 2>/dev/null|sed -n '2p') test -z $maxclients && maxclients=$($redis_cli_cmd -h $ip -p $port sc_config get maxclients 2>/dev/null|sed -n '2p')
} }
Push_n9e(){ Push_n9e(){
for metric in $(cat redis_metrics);do for metric in $(cat redis_metrics);do
countertype=GAUGE countertype=GAUGE
[[ "${metrics_counter[@]}" =~ "$metric" ]] && countertype=COUNTER [[ "${metrics_counter[@]}" =~ "$metric" ]] && countertype=COUNTER
[[ "$metric" =~ "cmdstat_" ]] && countertype=COUNTER [[ "$metric" =~ "cmdstat_" ]] && countertype=COUNTER
[[ "$metric" =~ "cluster_" ]] && [ $cluster_enabled -eq 0 ] && continue [[ "$metric" =~ "cluster_" ]] && [ $cluster_enabled -eq 0 ] && continue
value=$(eval echo \$$metric) value=$(eval echo \$$metric)
if [ "X"$metric == 'Xrole' ];then if [ "X"$metric == 'Xrole' ];then
if [ "X"$value == 'Xmaster' ];then if [ "X"$value == 'Xmaster' ];then
value=1 value=1
else else
value=0 value=0
master_link_status_value=$(eval echo \$master_link_status) master_link_status_value=$(eval echo \$master_link_status)
[ "X"$master_link_status_value == 'Xup' ] && master_link_status_value=1 || master_link_status_value=0 [ "X"$master_link_status_value == 'Xup' ] && master_link_status_value=1 || master_link_status_value=0
Json_join redis.master_link_status ${master_link_status_value} "port=$port" $countertype Json_join redis.master_link_status ${master_link_status_value} "port=$port" $countertype
fi fi
fi fi
if [ "X"$metric == 'Xrdb_last_bgsave_status' ];then if [ "X"$metric == 'Xrdb_last_bgsave_status' ];then
[ "X"$value == 'Xok' ] && value=1 || value=0 [ "X"$value == 'Xok' ] && value=1 || value=0
fi fi
if [ "X"$metric == 'Xaof_last_bgrewrite_status' ];then if [ "X"$metric == 'Xaof_last_bgrewrite_status' ];then
[ "X"$value == 'Xok' ] && value=1 || value=0 [ "X"$value == 'Xok' ] && value=1 || value=0
fi fi
if [ "X"$metric == 'Xaof_last_write_status' ];then if [ "X"$metric == 'Xaof_last_write_status' ];then
[ "X"$value == 'Xok' ] && value=1 || value=0 [ "X"$value == 'Xok' ] && value=1 || value=0
fi fi
if [ "X"$metric == 'Xcluster_state' ];then if [ "X"$metric == 'Xcluster_state' ];then
[ "X"$value == 'Xok' ] && value=1 || value=0 [ "X"$value == 'Xok' ] && value=1 || value=0
fi fi
[ "X"$value == "X" ] && continue [ "X"$value == "X" ] && continue
Json_join redis.$metric $value "port=$port" $countertype Json_join redis.$metric $value "port=$port" $countertype
done done
} }
Test_alive(){ Test_alive(){
r=$($redis_cli_cmd -h $ip -p $port ping 2>/dev/null) && value=0 || value=1 r=$($redis_cli_cmd -h $ip -p $port ping 2>/dev/null) && value=0 || value=1
Json_join redis.alive $value "port=$port" $countertype Json_join redis.alive $value "port=$port" $countertype
[ "X$r" == 'XPONG' ] && value=0 || value=1 [ $value -eq 1 ] && return $value
Json_join redis.auth_passwd $value "port=$port" $countertype [ "X$r" == 'XPONG' ] && value=0 || value=1
return $value Json_join redis.auth_passwd $value "port=$port" $countertype
return $value
} }
Test_slowlog(){ Test_slowlog(){
$redis_cli_cmd -h $ip -p $port slowlog get 1024 >/tmp/redis_slowlog_$port 2>/dev/null|| return 1 $redis_cli_cmd -h $ip -p $port slowlog get 1024 >/tmp/redis_slowlog_$port 2>/dev/null|| return 1
grep -v ^$ /tmp/redis_slowlog_$port >>/opt/redis_slowlog_$port grep -v ^$ /tmp/redis_slowlog_$port >>/opt/redis_slowlog_$port
value=$($redis_cli_cmd -h $ip -p $port slowlog len 2>/dev/null) value=$($redis_cli_cmd -h $ip -p $port slowlog len 2>/dev/null)
$redis_cli_cmd -h $ip -p $port slowlog reset &>/dev/null $redis_cli_cmd -h $ip -p $port slowlog reset &>/dev/null
Json_join redis.slowlog_len $value "port=$port" $countertype Json_join redis.slowlog_len $value "port=$port" $countertype
if [ $value -gt 0 ];then if [ $value -gt 0 ];then
timestamp=$(date '+%s') timestamp=$(date '+%s')
time_str=${timestamp:0:8} time_str=${timestamp:0:8}
max_time=$(sed -n "/^$time_str/ {n;p}" /tmp/redis_slowlog_$port|sort -n|sed -n '$p') max_time=$(sed -n "/^$time_str/ {n;p}" /tmp/redis_slowlog_$port|sort -n|sed -n '$p')
fi fi
test -z $max_time && max_time=0 test -z $max_time && max_time=0
Json_join redis.slowlog_max_time $max_time "port=$port" $countertype Json_join redis.slowlog_max_time $max_time "port=$port" $countertype
return 0 return 0
} }
Tast_keyspace_hit_ratio(){ Tast_keyspace_hit_ratio(){
value=0 value=0
keyspace_total=$((keyspace_hits + keyspace_misses)) keyspace_total=$((keyspace_hits + keyspace_misses))
[ $keyspace_total -ne 0 ] && value=$((100 * keyspace_hits / keyspace_total)) [ $keyspace_total -ne 0 ] && value=$((100 * keyspace_hits / keyspace_total))
Json_join redis.keyspace_hit_ratio $value "port=$port" $countertype Json_join redis.keyspace_hit_ratio $value "port=$port" $countertype
return $value return $value
} }
Tast_use_memory(){ Tast_use_memory(){
value=0 value=0
[ $maxmemory -ne 0 ] && value=$((100 * used_memory / maxmemory)) [ $maxmemory -ne 0 ] && value=$((100 * used_memory / maxmemory))
Json_join redis.used_memory_percent $value "port=$port" $countertype Json_join redis.used_memory_percent $value "port=$port" $countertype
return $value return $value
} }
Tast_use_connected_clients(){ Tast_use_connected_clients(){
value=0 value=0
[ $maxclients -ne 0 ] && value=$((100 * connected_clients / maxclients)) [ $maxclients -ne 0 ] && value=$((100 * connected_clients / maxclients))
Json_join redis.used_connected_clients_percent $value "port=$port" $countertype Json_join redis.used_connected_clients_percent $value "port=$port" $countertype
return $value return $value
} }
Test_use_cpu(){ Test_use_cpu(){
pid=$(ps aux|grep redis-server|grep :${port}|awk '{print $2}') pid=$(ps aux|grep redis-server|grep :${port}|awk '{print $2}')
value=$(top -b -n1| grep redis-server| grep ${pid}|awk '{print $9}') value=$(top -b -n1| grep redis-server| grep ${pid}|awk '{print $9}')
Json_join redis.used_cpu_percent $value "port=$port" $countertype Json_join redis.used_cpu_percent $value "port=$port" $countertype
} }
Main(){ Main(){
for port in $(grep $service ../service_port 2>/dev/null| grep -v redis-shake 2>/dev/null|awk '$0=$2');do for port in $(grep $service ../service_port 2>/dev/null| grep -v redis-shake 2>/dev/null|awk '$0=$2');do
#which redis-cli &>/dev/null || exit 1 #which redis-cli &>/dev/null || exit 1
[ $port -gt 10000 ] && continue [ $port -gt 10000 ] && continue
test -f redis_auth.conf && passwd=$(awk -F: '/^'$port':/{print $2}' redis_auth.conf) test -f redis_auth.conf && passwd=$(awk -F: '/^'$port':/{print $2}' redis_auth.conf)
test -z $passwd && redis_cli_cmd='redis-cli' || redis_cli_cmd="redis-cli -a $passwd" test -z $passwd && redis_cli_cmd='redis-cli' || redis_cli_cmd="redis-cli -a $passwd"
Test_alive || continue Test_alive || continue
Test_slowlog || continue Test_slowlog || continue
Get_current_value Get_current_value
Tast_keyspace_hit_ratio Tast_keyspace_hit_ratio
Tast_use_connected_clients Tast_use_connected_clients
Tast_use_memory Tast_use_memory
#Test_use_cpu #Test_use_cpu
Push_n9e Push_n9e
done done
jstr=$(echo $jstr|sed 's/^/[/;s/,$/]/;s/\[$/[]/') jstr=$(echo $jstr|sed 's/^/[/;s/,$/]/;s/\[$/[]/')
echo $jstr echo $jstr
......
...@@ -45,4 +45,7 @@ if __name__ == "__main__": ...@@ -45,4 +45,7 @@ if __name__ == "__main__":
sys.stderr.write('cannot get local ip') sys.stderr.write('cannot get local ip')
sys.exit(0) sys.exit(0)
core_total = int(os.popen("cat /proc/cpuinfo | grep processor | tail -1 | cut -d' ' -f2").read().strip()) + 1 core_total = int(os.popen("cat /proc/cpuinfo | grep processor | tail -1 | cut -d' ' -f2").read().strip()) + 1
print(json.dumps(get_cpu_core_stat(core_total))) if core_total <= 8:
print(json.dumps(get_cpu_core_stat(core_total)))
else:
print('[]')
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment