diff options
author | Nicolargo <nicolas@nicolargo.com> | 2014-08-11 18:57:49 +0200 |
---|---|---|
committer | Nicolargo <nicolas@nicolargo.com> | 2014-08-11 18:57:49 +0200 |
commit | 8e92419f3b300323dc5916941bc3379a280813bc (patch) | |
tree | 8c92f3e927c5003dd1fa4149749234ba87f813d4 | |
parent | f0a7dfd77e0092c86725e889f4a241658661619b (diff) |
Add extended info
-rw-r--r-- | glances/core/glances_processes.py | 11 | ||||
-rw-r--r-- | glances/plugins/glances_processlist.py | 22 |
2 files changed, 33 insertions, 0 deletions
diff --git a/glances/core/glances_processes.py b/glances/core/glances_processes.py index af9027c2..10f40134 100644 --- a/glances/core/glances_processes.py +++ b/glances/core/glances_processes.py @@ -92,6 +92,8 @@ class GlancesProcesses(object): procstat = proc.as_dict(attrs=['pid']) if mandatory_stats: + procstat['mandatory_stats'] = True + # Process CPU, MEM percent and name procstat.update(proc.as_dict(attrs=['cpu_percent', 'memory_percent', 'name'], ad_value='')) @@ -126,6 +128,8 @@ class GlancesProcesses(object): procstat['io_counters'] += [io_tag] if standard_stats: + procstat['standard_stats'] = True + # Process username (cached with internal cache) try: self.username_cache[procstat['pid']] @@ -155,6 +159,8 @@ class GlancesProcesses(object): procstat['status'] = str(procstat['status'])[:1].upper() if extended_stats: + procstat['extended_stats'] = True + # CPU affinity # Memory extended # Number of context switch @@ -186,6 +192,11 @@ class GlancesProcesses(object): procstat['tcp'] = None procstat['udp'] = None + # IO Nice + # http://pythonhosted.org/psutil/#psutil.Process.ionice + if is_linux or is_windows: + procstat.update(proc.as_dict(attrs=['ionice'])) + # !!! Only for dev logger.debug("EXTENDED STATS: %s" % procstat) diff --git a/glances/plugins/glances_processlist.py b/glances/plugins/glances_processlist.py index de129e03..27ee5587 100644 --- a/glances/plugins/glances_processlist.py +++ b/glances/plugins/glances_processlist.py @@ -110,6 +110,7 @@ class Plugin(GlancesPlugin): tag_proc_time = True # Loop over processes (sorted by the sort key previously compute) + first = True for p in self.sortlist(process_sort_key): ret.append(self.curse_new_line()) # CPU @@ -237,6 +238,27 @@ class Plugin(GlancesPlugin): except UnicodeEncodeError: ret.append(self.curse_add_line("", splittable=True)) + # Add extended stats but only for the top processes + # !!! CPU consumption !!!! + if first: + # Left padding + xpad = ' ' * 13 + # First line is CPU affinity + ret.append(self.curse_new_line()) + msg = xpad + _('CPU affinity: ') + ','.join(str(i) for i in p['cpu_affinity']) + ret.append(self.curse_add_line(msg)) + # Second line is memory info + ret.append(self.curse_new_line()) + msg = xpad + _('Memory info: ') + msg += _('swap ') + self.auto_unit(p['memory_swap'], low_precision=False) + for k, v in p['memory_info_ex']._asdict().items(): + # Ignore rss and vms (already displayed) + if k not in ['rss', 'vms']: + msg += ', ' + k + ' ' + self.auto_unit(v, low_precision=False) + ret.append(self.curse_add_line(msg)) + # End of extended stats + first = False + # Return the message with decoration return ret |