class _TestTaskStats(object):
    def setup(self):
        self.ts = TaskStats()
        self.ts.bind()

    def teardown(self):
        self.ts.close()

    def test_get_pid_stat(self):
        require_user('root')
        ret = self.ts.get_pid_stat(1)[0]
        assert ret.get_attr('TASKSTATS_TYPE_AGGR_PID').\
            get_attr('TASKSTATS_TYPE_PID') == 1
Beispiel #2
0
class TestTaskStats(object):

    def setup(self):
        self.ts = TaskStats()

    def teardown(self):
        self.ts.release()

    def test_get_pid_stat(self):
        require_user('root')
        ret = self.ts.get_pid_stat(1)[0]
        assert ret.get_attr('TASKSTATS_TYPE_AGGR_PID').\
            get_attr('TASKSTATS_TYPE_PID') == 1
Beispiel #3
0
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()
Beispiel #4
0
'''
Simple taskstats sample.

Usage:
    python taskstats.py [pid]
'''
import os
import sys
from pyroute2 import TaskStats
from pyroute2.common import hexdump

pid = sys.argv[-1] if len(sys.argv) > 1 else os.getpid()
ts = TaskStats()
ret = ts.get_pid_stat(int(pid))[0]
# raw hex structure to check alignment
print(hexdump(ret.raw))
# parsed structure
print(ret)
Beispiel #5
0
'''
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()
Beispiel #7
0
 def setup(self):
     self.ts = TaskStats()
Beispiel #8
0
"""
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()
Beispiel #9
0
'''
Simple taskstats sample.
'''
import os
from pyroute2 import TaskStats
from pyroute2.common import hexdump

pid = os.getpid()
ts = TaskStats()
# bind is required in the case of generic netlink
ts.bind()
ret = ts.get_pid_stat(int(pid))[0]
# raw hex structure to check alignment
print(hexdump(ret.raw))
# parsed structure
print(ret)
ts.close()
Beispiel #10
0
"""
Simple taskstats sample.
"""
import os
from pyroute2 import TaskStats
from pyroute2.common import hexdump

pid = os.getpid()
ts = TaskStats()
ret = ts.get_pid_stat(int(pid))[0]
# raw hex structure to check alignment
print(hexdump(ret.raw))
# parsed structure
print(ret)
ts.release()
Beispiel #11
0
'''
Simple taskstats sample.
'''
import os
from pyroute2 import TaskStats
from pyroute2.common import hexdump

pid = os.getpid()
ts = TaskStats()
ret = ts.get_pid_stat(int(pid))[0]
# raw hex structure to check alignment
print(hexdump(ret.raw))
# parsed structure
print(ret)
ts.release()
Beispiel #12
0
 def setup(self):
     self.ts = TaskStats()
     self.ts.bind()