Merge pull request #93 from grg350/master
Adding support for "stats slabs" statistics
This commit is contained in:
commit
120a16d86e
31
memcache.py
31
memcache.py
|
@ -345,6 +345,37 @@ class Client(threading.local):
|
||||||
|
|
||||||
return(data)
|
return(data)
|
||||||
|
|
||||||
|
def get_slab_stats(self):
|
||||||
|
data = []
|
||||||
|
for s in self.servers:
|
||||||
|
if not s.connect():
|
||||||
|
continue
|
||||||
|
if s.family == socket.AF_INET:
|
||||||
|
name = '%s:%s (%s)' % (s.ip, s.port, s.weight)
|
||||||
|
elif s.family == socket.AF_INET6:
|
||||||
|
name = '[%s]:%s (%s)' % (s.ip, s.port, s.weight)
|
||||||
|
else:
|
||||||
|
name = 'unix:%s (%s)' % (s.address, s.weight)
|
||||||
|
serverData = {}
|
||||||
|
data.append((name, serverData))
|
||||||
|
s.send_cmd('stats slabs')
|
||||||
|
readline = s.readline
|
||||||
|
while 1:
|
||||||
|
line = readline()
|
||||||
|
if not line or line.strip() == 'END':
|
||||||
|
break
|
||||||
|
item = line.split(' ', 2)
|
||||||
|
if line.startswith('STAT active_slabs') or line.startswith('STAT total_malloced'):
|
||||||
|
serverData[item[1]]=item[2]
|
||||||
|
else:
|
||||||
|
# 0 = STAT, 1 = ITEM, 2 = Value
|
||||||
|
slab = item[1].split(':', 2)
|
||||||
|
# 0 = Slab #, 1 = Name
|
||||||
|
if slab[0] not in serverData:
|
||||||
|
serverData[slab[0]] = {}
|
||||||
|
serverData[slab[0]][slab[1]] = item[2]
|
||||||
|
return data
|
||||||
|
|
||||||
def get_slabs(self):
|
def get_slabs(self):
|
||||||
data = []
|
data = []
|
||||||
for s in self.servers:
|
for s in self.servers:
|
||||||
|
|
Loading…
Reference in New Issue