def yield_taskstats(processes): ts = TaskStats() ts.bind() try: for name, pid in processes: results = do_query(ts, pid) for key in interesting_taskstats_keys: value = results[key] yield 'taskstat_{}{{name="{}", pid="{}"}} {}'.format( key, name, pid, value) finally: ts.close()
''' Monitor process exit ''' from pyroute2 import TaskStats from pyroute2.common import hexdump pmask = '' with open('/proc/cpuinfo', 'r') as f: for line in f.readlines(): if line.startswith('processor'): pmask += ',' + line.split()[2] pmask = pmask[1:] ts = TaskStats() ts.register_mask(pmask) msg = ts.get()[0] print(hexdump(msg.raw)) print(msg) ts.deregister_mask(pmask) ts.release()
def setup(self): self.ts = TaskStats() self.ts.bind()
def setup(self): self.ts = TaskStats()