SOURCE

[Python] Redis INFO 정보 출력하기

해적하록 2017. 2. 18. 16:04


https://pypi.python.org/pypi/redis


#!/usr/bin/env python


import redis
import json
import time


r_total_net_output_bytes =0
r_total_net_input_bytes  =0
r_keyspace_hits          =0
r_keyspace_misses        =0
r_used_cpu_sys           =0
r_used_cpu_user          =0
r_used_cpu_sys_children  =0
r_used_cpu_user_children =0

FLAG=0

print ("%-20s %-7s %-10s %-5s %-5s %-6s %-10s %-10s %-12s %-12s %-12s %-8s %-13s %-9s %-11s %-7s %-12s %-12s %-14s %-15s %-16s"
    % ("Time",
       "ver",
       "role",
       "port",
       "conn",
       "qps",
       "netOut",
       "netInput",
       "memory_rss",
       "used_memory",
       "mem_frag(%)",
       "evicted",
       "hit_ratio(%)",
       "key_hits",
       "key_misses",
       "CPU(%)",
       "cpu_sys(%)",
       "cpu_user(%)",
       "cpu_sys_bg(%)",
       "cpu_user_bg(%)",
       "blocked_clients"
      )
      )

r=redis.Redis(host='localhost',port=6300)

while 1:
           re=json.loads(json.dumps(r.info()))
           for x in re:
                     if(x == 'redis_version'):
                                redis_version = re[x]

                     if(x == 'role'):
                                role= re[x]

                     if(x == 'tcp_port'):
                                tcp_port= re[x]

                     if(x == 'connected_clients'):
                                connected_clients= re[x]

                     if(x == 'instantaneous_ops_per_sec'):
                                instantaneous_ops_per_sec = re[x]

                     if(x == 'total_net_output_bytes'):
                                total_net_output_bytes= re[x] - r_total_net_output_bytes
                                r_total_net_output_bytes= re[x]

                     if(x == 'total_net_input_bytes'):
                                total_net_input_bytes= re[x] - r_total_net_input_bytes
                                r_total_net_input_bytes= re[x]

                     if(x == 'used_memory_rss'):
                                used_memory_rss= re[x]

                     if(x == 'used_memory'):
                                used_memory= re[x]

                     if(x == 'evicted_keys'):
                                evicted_keys= re[x]

                     if(x == 'mem_fragmentation_ratio'):
                                mem_fragmentation_ratio= re[x]

                     if(x == 'keyspace_hits'):
                                keyspace_hits= re[x] - r_keyspace_hits
                                r_keyspace_hits= re[x]

                     if(x == 'keyspace_misses'):
                                keyspace_misses= re[x] - r_keyspace_misses
                                r_keyspace_misses= re[x]

                     if(x == 'used_cpu_sys'):
                                used_cpu_sys = re[x] - r_used_cpu_sys
                                r_used_cpu_sys = re[x]

                     if(x == 'used_cpu_user'):
                                used_cpu_user= re[x] - r_used_cpu_user
                                r_used_cpu_user= re[x]

                     if(x == 'used_cpu_sys_children'):
                                used_cpu_sys_children= re[x] - r_used_cpu_sys_children
                                r_used_cpu_sys_children= re[x]

                     if(x == 'used_cpu_user_children'):
                                used_cpu_user_children = re[x] - r_used_cpu_user_children
                                r_used_cpu_user_children = re[x]

                     if(x == 'blocked_clients'):
                                blocked_clients = re[x]
                               
           if(FLAG != 0):
                     sum_cpu = used_cpu_sys + used_cpu_user + used_cpu_sys_children + used_cpu_user_children
                     key_hit_r = (keyspace_hits + 0.00) / ( keyspace_hits + keyspace_misses) * 100
                     lotime = time.strftime('%Y/%m/%d %H:%M:%S',time.localtime(time.time()))
                   print ("%-20s %-7s %-10s %-5s %-5s %-6s %-10s %-10s %-12s %-12s %-12.2f %-8s %-13.2f %-9s %-11s %-7.2f %-12.2f %-12.2f %-14.2f %-15.2f %-16d"
                     %(lotime,redis_version,role,tcp_port,connected_clients,instantaneous_ops_per_sec,total_net_output_bytes,total_net_input_bytes,used_memory_rss,used_memory,mem_fragmentation_ratio,evicted_keys,key_hit_r,keyspace_hits,keyspace_misses,sum_cpu,used_cpu_sys,used_cpu_user,used_cpu_sys_children,used_cpu_user_children,blocked_clients))

           time.sleep(1)
           FLAG=1