pdsys 0.3

Creator: railscoder56

Last updated:

Add to Cart

Description:

pdsys 0.3

pdsys
Pandas-powered package for systems monitoring
To Inatall
pip install pdsys

Basic usage
import pdsys

To get a system utilization report (as dataframe) on local:
df = pdsys.report()

pdsys returns by default all process attributes information from psutil process iterator:
df.columns.tolist()
>>> ['cmdline',
'connections',
'cpu_affinity',
'cpu_num',
'cpu_percent',
'cpu_times.children_system',
'cpu_times.children_user',
'cpu_times.system',
'cpu_times.user',
'create_time',
'cwd',
'environ',
'exe',
'gids.effective',
'gids.real',
'gids.saved',
'hostname',
'io_counters',
'io_counters.read_bytes',
'io_counters.read_chars',
'io_counters.read_count',
'io_counters.write_bytes',
'io_counters.write_chars',
'io_counters.write_count',
'ionice.value',
'memory_full_info',
'memory_full_info.data',
'memory_full_info.dirty',
'memory_full_info.lib',
'memory_full_info.pss',
'memory_full_info.rss',
'memory_full_info.shared',
'memory_full_info.swap',
'memory_full_info.text',
'memory_full_info.uss',
'memory_full_info.vms',
'memory_info.data',
'memory_info.dirty',
'memory_info.lib',
'memory_info.rss',
'memory_info.shared',
'memory_info.text',
'memory_info.vms',
'memory_maps',
'memory_percent',
'name',
'nice',
'num_ctx_switches.involuntary',
'num_ctx_switches.voluntary',
'num_fds',
'num_threads',
'open_files',
'pid',
'ppid',
'status',
'terminal',
'threads',
'uids.effective',
'uids.real',
'uids.saved',
'username']

You can query the output dataframe to get more insights about the system:
# getting top 5 processes sorted by memory utilization
df.sort_values(by='memory_percent',
ascending=False)[['name', 'memory_percent']].head(5)





name
memory_percent




104
systemd-journald
20.865


76
gunicorn
4.06886


75
gunicorn
4.05697


77
gunicorn
4.01536


74
gunicorn
1.92189



Also, pdsys can run reports from remote systems by providing list of hosts:
df = pdsys.report(hosts=['user@host1', 'user@host2'])
df[df.memory_percent > 0.9].groupby(['hostname',
'name']).agg({'memory_percent': 'sum',
'pid': 'count',
'num_threads': 'sum',
'memory_info.rss': lambda x: sum(x) / 1e6})





hostname
name
memory_percent
pid
num_threads
memory_info.rss




0
host1
Google Chrome
2.13456
1
31
183.357


1
host1
Google Chrome Helper (GPU)
1.31197
1
9
112.697


2
host1
Google Chrome Helper (Renderer)
9.3699
8
107
804.868


3
host1
Python
1.0848
1
12
93.184


4
host1
Terminal
1.7745
1
6
152.429


5
host1
pycharm
9.88402
1
66
849.031


6
host2
do-agent
1.19791
1
6
12.3822


7
host2
gunicorn
14.0631
4
4
145.363


8
host2
postgres
1.54504
1
1
15.9703


9
host2
python3
3.47208
3
4
35.8892


10
host2
systemd-journald
21.0484
1
1
217.567

License

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Customer Reviews

There are no reviews.