diff options
| author | Sean Reifschneider <jafo00@gmail.com> | 2016-05-27 10:24:54 -0600 |
|---|---|---|
| committer | Sean Reifschneider <jafo00@gmail.com> | 2016-05-27 10:24:54 -0600 |
| commit | 120a16d86e4795a95efc6c9b4a50f10c992d3972 (patch) | |
| tree | 23d47fee04fa53d89914bd6a6f87f9669982ee73 | |
| parent | 7feed83fcbbda8817e19b74c13dc68e5d1f64461 (diff) | |
| parent | dc35cd8fdbcce2c3d91e385308840fb7182315bf (diff) | |
| download | python-memcached-120a16d86e4795a95efc6c9b4a50f10c992d3972.tar.gz | |
Merge pull request #93 from grg350/master
Adding support for "stats slabs" statistics
| -rw-r--r-- | memcache.py | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/memcache.py b/memcache.py index 2fd452b..db2c0b1 100644 --- a/memcache.py +++ b/memcache.py @@ -345,6 +345,37 @@ class Client(threading.local): 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): data = [] for s in self.servers: |
