diff options
author | Nicolas Hennion <nicolas@nicolargo.com> | 2014-09-15 19:06:12 +0200 |
---|---|---|
committer | Nicolas Hennion <nicolas@nicolargo.com> | 2014-09-15 19:06:12 +0200 |
commit | 4521f2aa0b74b8a23b17860cd8faf989dc1229d8 (patch) | |
tree | 844abdd540a0be93094191ea14a7ae2b52b99919 | |
parent | ff10056508036b573a32686f9e522e65e6102611 (diff) |
Automaticaly compute top processes number for the current screen - issue #408
-rw-r--r-- | conf/glances-test.conf | 4 | ||||
-rw-r--r-- | conf/glances.conf | 4 | ||||
-rw-r--r-- | glances/core/glances_processes.py | 3 | ||||
-rw-r--r-- | glances/core/glances_standalone.py | 10 | ||||
-rw-r--r-- | glances/outputs/glances_curses.py | 15 |
5 files changed, 16 insertions, 20 deletions
diff --git a/conf/glances-test.conf b/conf/glances-test.conf index fef896ec..9ca9175a 100644 --- a/conf/glances-test.conf +++ b/conf/glances-test.conf @@ -96,10 +96,6 @@ core 0_alias=CPU Core 0 core 1_alias=CPU Core 1 [processlist] -# Maximum number of processes to show in the UI -# Note: Only limit number of showed processes (not the one returned by the API) -# Default is 20 processes (Top 20) -max_processes=20 # Limit values for CPU/MEM per process in % # Default values if not defined: 50/70/90 cpu_careful=50 diff --git a/conf/glances.conf b/conf/glances.conf index c0dbb077..b571aed5 100644 --- a/conf/glances.conf +++ b/conf/glances.conf @@ -96,10 +96,6 @@ battery_critical=95 #core 1_alias=CPU Core 1 [processlist] -# Maximum number of processes to show in the UI -# Note: Only limit number of showed processes (not the one returned by the API) -# Default is 20 processes (Top 20) -max_processes=20 # Limit values for CPU/MEM per process in % # Default values if not defined: 50/70/90 cpu_careful=50 diff --git a/glances/core/glances_processes.py b/glances/core/glances_processes.py index 97bb5726..fb4cefa4 100644 --- a/glances/core/glances_processes.py +++ b/glances/core/glances_processes.py @@ -66,9 +66,6 @@ class GlancesProcesses(object): self.process_filter = None self.process_filter_re = None - # !!! ONLY FOR TEST - # self.set_process_filter('.*python.*') - def enable(self): """Enable process stats.""" self.disable_tag = False diff --git a/glances/core/glances_standalone.py b/glances/core/glances_standalone.py index a6586f6b..4fe860da 100644 --- a/glances/core/glances_standalone.py +++ b/glances/core/glances_standalone.py @@ -34,14 +34,8 @@ class GlancesStandalone(object): # Init stats self.stats = GlancesStats(config=config, args=args) - # If configured, set the maximum processes number to display - try: - max_processes = int(self.stats.get_plugin('processlist').get_conf_value('max_processes')) - logger.debug(_("Limit maximum displayed processes to %s") % max_processes) - except: - max_processes = None - logger.warning(_("Maximum displayed processes is not configured (high CPU consumption)")) - glances_processes.set_max_processes(max_processes) + # Default number of processes to displayed is set to 20 + glances_processes.set_max_processes(20) # If process extended stats is disabled by user if args.disable_process_extended: diff --git a/glances/outputs/glances_curses.py b/glances/outputs/glances_curses.py index 9c592964..33454af6 100644 --- a/glances/outputs/glances_curses.py +++ b/glances/outputs/glances_curses.py @@ -383,6 +383,7 @@ class GlancesCurses(object): # Update the stats messages ########################### + # Update the client server status self.args.cs_status = cs_status stats_system = stats.get_plugin('system').get_stats_display(args=self.args) @@ -400,10 +401,22 @@ class GlancesCurses(object): stats_sensors = stats.get_plugin('sensors').get_stats_display(args=self.args) stats_now = stats.get_plugin('now').get_stats_display() stats_processcount = stats.get_plugin('processcount').get_stats_display(args=self.args) - stats_processlist = stats.get_plugin('processlist').get_stats_display(args=self.args) stats_monitor = stats.get_plugin('monitor').get_stats_display(args=self.args) stats_alert = stats.get_plugin('alert').get_stats_display(args=self.args) + # Adapt number of processes to the available space + max_processes_displayed = screen_y - 11 - self.get_stats_display_height(stats_alert) + if not self.args.disable_process_extended: + max_processes_displayed -= 4 + if max_processes_displayed < 0: + max_processes_displayed = 0 + if glances_processes.get_max_processes() is None or \ + glances_processes.get_max_processes() != max_processes_displayed: + logger.debug(_("Set number of displayed processes to %s") % max_processes_displayed) + glances_processes.set_max_processes(max_processes_displayed) + + stats_processlist = stats.get_plugin('processlist').get_stats_display(args=self.args) + # Display the stats on the curses interface ########################################### |