dstat_disk_svctm.py (dstat-0.7.3) | : | dstat_disk_svctm.py (dstat-0.7.4) | ||
---|---|---|---|---|
skipping to change at line 32 | skipping to change at line 32 | |||
def discover(self, *objlist): | def discover(self, *objlist): | |||
ret = [] | ret = [] | |||
for l in self.splitlines(): | for l in self.splitlines(): | |||
if len(l) < 13: continue | if len(l) < 13: continue | |||
if l[3:] == ['0',] * 11: continue | if l[3:] == ['0',] * 11: continue | |||
name = l[2] | name = l[2] | |||
ret.append(name) | ret.append(name) | |||
for item in objlist: ret.append(item) | for item in objlist: ret.append(item) | |||
if not ret: | if not ret: | |||
raise Exception, "No suitable block devices found to monitor" | raise Exception('No suitable block devices found to monitor') | |||
return ret | return ret | |||
def vars(self): | def vars(self): | |||
ret = [] | ret = [] | |||
if op.disklist: | if op.disklist: | |||
varlist = op.disklist | varlist = op.disklist | |||
else: | else: | |||
varlist = [] | varlist = [] | |||
blockdevices = [os.path.basename(filename) for filename in glob.glob ('/sys/block/*')] | blockdevices = [os.path.basename(filename) for filename in glob.glob ('/sys/block/*')] | |||
for name in self.discover: | for name in self.discover: | |||
skipping to change at line 63 | skipping to change at line 63 | |||
return self.vars | return self.vars | |||
def extract(self): | def extract(self): | |||
for l in self.splitlines(): | for l in self.splitlines(): | |||
if len(l) < 13: continue | if len(l) < 13: continue | |||
if l[3:] == ['0',] * 11: continue | if l[3:] == ['0',] * 11: continue | |||
if l[3] == '0' and l[7] == '0': continue | if l[3] == '0' and l[7] == '0': continue | |||
name = l[2] | name = l[2] | |||
if name not in self.vars or name == 'total': continue | if name not in self.vars or name == 'total': continue | |||
self.set2[name] = dict( | self.set2[name] = dict( | |||
nr_ios = long(l[3])+long(l[7]), | nr_ios = int(l[3])+int(l[7]), | |||
tot_ticks = long(l[12]), | tot_ticks = int(l[12]), | |||
) | ) | |||
for name in self.vars: | for name in self.vars: | |||
tput = ( self.set2[name]['nr_ios'] - self.set1[name]['nr_ios'] ) | tput = ( self.set2[name]['nr_ios'] - self.set1[name]['nr_ios'] ) | |||
if tput: | if tput: | |||
util = ( self.set2[name]['tot_ticks'] - self.set1[name]['tot_tic ks'] ) | util = ( self.set2[name]['tot_ticks'] - self.set1[name]['tot_tic ks'] ) | |||
self.val[name] = ( util * 1.0 / tput, ) | self.val[name] = ( util * 1.0 / tput, ) | |||
else: | else: | |||
self.val[name] = ( 0.0, ) | self.val[name] = ( 0.0, ) | |||
End of changes. 2 change blocks. | ||||
3 lines changed or deleted | 3 lines changed or added |