--- dstat-0.6.9/dstat 2008-12-02 21:23:05.000000000 +0100
+++ dstat-0.6.9/dstat.counts 2008-12-15 22:32:33.000000000 +0100
@@ -630,6 +630,7 @@ class dstat_cpu24(dstat):
class dstat_disk(dstat):
def __init__(self):
self.format = ('f', 5, 1024)
+ self.diskfilter = re.compile('(dm-[0-9]+|md[0-9]+|[hs]d[a-z]+[0-9]+)')
self.open('/proc/diskstats')
self.nick = ('read', 'writ')
self.discover = self.discover()
@@ -658,7 +659,7 @@ class dstat_disk(dstat):
varlist = []
blockdevices = [os.path.basename(filename) for filename in glob.glob('/sys/block/*')]
for name in self.discover:
- if re.match('(md[0-9]+|dm-[0-9]+)', name): continue
+ if self.diskfilter.match(name): continue
if name not in blockdevices: continue
varlist.append(name)
# if len(varlist) > 2: varlist = varlist[0:2]
@@ -676,7 +677,7 @@ class dstat_disk(dstat):
if l[5] == '0' and l[9] == '0': continue
name = l[2]
if l[3:] == ['0',] * 11: continue
- if not re.match('(md[0-9]+|dm-[0-9]+)', name):
+ if not self.diskfilter.match(name):
self.cn2['total'] = ( self.cn2['total'][0] + long(l[5]), self.cn2['total'][1] + long(l[9]) )
if name in self.vars and name != 'total':
self.cn2[name] = ( self.cn2[name][0] + long(l[5]), self.cn2[name][1] + long(l[9]) )
@@ -696,6 +697,7 @@ class dstat_disk(dstat):
class dstat_disk24(dstat):
def __init__(self):
self.format = ('f', 5, 1024)
+ self.diskfilter = re.compile('(dm-[0-9]+|md[0-9]+|[hs]d[a-z]+[0-9]+)')
self.open('/proc/partitions')
self.nick = ('read', 'writ')
self.discover = self.discover()
@@ -724,7 +726,7 @@ class dstat_disk24(dstat):
else:
varlist = []
for name in self.discover:
- if not re.match('(md[0-9]+|dm-[0-9]+)', name):
+ if not self.diskfilter.match(name):
varlist.append(name)
# if len(varlist) > 2: varlist = varlist[0:2]
varlist.sort()
@@ -739,7 +741,7 @@ class dstat_disk24(dstat):
l = line.split()
if len(l) < 15 or l[0] == 'major' or int(l[1]) % 16 != 0: continue
name = l[3]
- if not re.match('(md[0-9]+|dm-[0-9]+)', name):
+ if not self.diskfilter.match(name):
self.cn2['total'] = ( self.cn2['total'][0] + long(l[6]), self.cn2['total'][1] + long(l[10]) )
if name in self.vars:
self.cn2[name] = ( self.cn2[name][0] + long(l[6]), self.cn2[name][1] + long(l[10]) )
@@ -760,6 +762,7 @@ class dstat_disk24(dstat):
class dstat_disk24old(dstat):
def __init__(self):
self.format = ('f', 5, 1024)
+ self.diskfilter = re.compile('(dm-[0-9]+|md[0-9]+|[hs]d[a-z]+[0-9]+)')
self.open('/proc/stat')
self.nick = ('read', 'writ')
self.regexp = re.compile('^\((\d+),(\d+)\):\(\d+,\d+,(\d+),\d+,(\d+)\)$')
@@ -795,7 +798,7 @@ class dstat_disk24old(dstat):
else:
varlist = []
for name in self.discover:
- if not re.match('(md[0-9]+|dm-[0-9]+)', name):
+ if not self.diskfilter.match(name):
varlist.append(name)
# if len(varlist) > 2: varlist = varlist[0:2]
varlist.sort()
@@ -817,7 +820,7 @@ class dstat_disk24old(dstat):
l = m.groups()
if len(l) < 4: continue
name = dev(int(l[0]), int(l[1]))
- if not re.match('(md[0-9]+)', name):
+ if not self.diskfilter.match(name):
self.cn2['total'] = ( self.cn2['total'][0] + long(l[2]), self.cn2['total'][1] + long(l[3]) )
if name in self.vars and name != 'total':
self.cn2[name] = ( self.cn2[name][0] + long(l[2]), self.cn2[name][1] + long(l[3]) )
@@ -1021,6 +1024,7 @@ class dstat_int24(dstat):
class dstat_io(dstat):
def __init__(self):
self.format = ('f', 5, 1000)
+ self.diskfilter = re.compile('(dm-[0-9]+|md[0-9]+|[hs]d[a-z]+[0-9]+)')
self.open('/proc/diskstats')
self.nick = ('read', 'writ')
self.discover = self.discover()
@@ -1049,7 +1053,7 @@ class dstat_io(dstat):
varlist = []
blockdevices = [os.path.basename(filename) for filename in glob.glob('/sys/block/*')]
for name in self.discover:
- if re.match('(md[0-9]+|dm-[0-9]+)', name): continue
+ if self.diskfilter.match(name): continue
if name not in blockdevices: continue
varlist.append(name)
# if len(varlist) > 2: varlist = varlist[0:2]
@@ -1067,7 +1071,7 @@ class dstat_io(dstat):
if l[3] == '0' and l[7] == '0': continue
name = l[2]
if l[3:] == ['0',] * 11: continue
- if not re.match('(md[0-9]+|dm-[0-9]+)', name):
+ if not self.diskfilter.match(name):
self.cn2['total'] = ( self.cn2['total'][0] + long(l[3]), self.cn2['total'][1] + long(l[7]) )
if name in self.vars and name != 'total':
self.cn2[name] = ( self.cn2[name][0] + long(l[3]), self.cn2[name][1] + long(l[7]) )