summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authornicolargo <nicolas@nicolargo.com>2021-04-18 18:24:15 +0200
committernicolargo <nicolas@nicolargo.com>2021-04-18 18:24:15 +0200
commit877f31cbad9f6928e81a4737e2df5dc6f72f6d96 (patch)
tree29d8f68bbec730ea5d8362e49619b37e7e8bcc25
parent6f8bfd3193e7a39c7d0e62e6162fafa0d860f753 (diff)
Add update stats time
-rw-r--r--glances/__init__.py7
-rw-r--r--glances/outputs/glances_stdout_issue.py36
-rw-r--r--glances/standalone.py12
3 files changed, 45 insertions, 10 deletions
diff --git a/glances/__init__.py b/glances/__init__.py
index c48b434e..8b640606 100644
--- a/glances/__init__.py
+++ b/glances/__init__.py
@@ -111,7 +111,12 @@ def start(config, args):
# Start the main loop
logger.debug("Glances started in {} seconds".format(start_duration.get()))
- mode.serve_forever()
+ if args.stdout_issue:
+ # Serve once for issue/test mode
+ mode.serve_issue()
+ else:
+ # Serve forever
+ mode.serve_forever()
# Shutdown
mode.end()
diff --git a/glances/outputs/glances_stdout_issue.py b/glances/outputs/glances_stdout_issue.py
index c041207a..ca0ddc8d 100644
--- a/glances/outputs/glances_stdout_issue.py
+++ b/glances/outputs/glances_stdout_issue.py
@@ -25,12 +25,14 @@ import shutil
from glances.logger import logger
from glances.compat import printandflush
+from glances.timer import Counter
try:
TERMINAL_WIDTH = shutil.get_terminal_size(fallback=(79, 24)).columns
except:
TERMINAL_WIDTH = 79
+
class colors:
RED = '\033[91m'
GREEN = '\033[92m'
@@ -45,6 +47,7 @@ class colors:
self.ORANGE = ''
self.NO = ''
+
class GlancesStdoutIssue(object):
"""
@@ -60,7 +63,8 @@ class GlancesStdoutIssue(object):
pass
def print_issue(self, plugin, result, message):
- sys.stdout.write('{}{}{}'.format(colors.BLUE + plugin, result, message))
+ sys.stdout.write('{}{}{}'.format(
+ colors.BLUE + plugin, result, message))
sys.stdout.write(colors.NO + '\n')
sys.stdout.flush()
@@ -69,20 +73,38 @@ class GlancesStdoutIssue(object):
duration=3):
"""Display issue
"""
- # printandflush(sorted(stats.getPluginsList()))
- for plugin in sorted(stats.getPluginsList()):
+ for plugin in stats._plugins:
+ if stats._plugins[plugin].is_disable():
+ # If current plugin is disable
+ # then continue to next plugin
+ result = colors.ORANGE + '[N/A]'.rjust(19 - len(plugin))
+ message = colors.NO
+ self.print_issue(plugin, result, message)
+ continue
+ # Start the counter
+ counter = Counter()
+ counter.reset()
stat = None
stat_error = None
try:
+ # Update the stats
+ stats._plugins[plugin].update()
+ # Get the stats
stat = stats.get_plugin(plugin).get_export()
except Exception as e:
stat_error = e
if stat_error is None:
- result = colors.GREEN + '[OK] '.rjust(25 - len(plugin))
- message = colors.NO + str(stat)[0:TERMINAL_WIDTH-25]
+ result = (colors.GREEN +
+ '[OK] ' +
+ colors.BLUE +
+ ' {:.4f}s '.format(counter.get())).rjust(40 - len(plugin))
+ message = colors.NO + str(stat)[0:TERMINAL_WIDTH-40]
else:
- result = colors.RED + '[ERROR] '.rjust(25 - len(plugin))
- message = colors.NO + str(stat_error)[0:TERMINAL_WIDTH-25]
+ result = (colors.RED +
+ '[ERROR]' +
+ colors.BLUE +
+ ' {:.4f}s '.format(counter.get())).rjust(40 - len(plugin))
+ message = colors.NO + str(stat_error)[0:TERMINAL_WIDTH-40]
self.print_issue(plugin, result, message)
# Return True to exit directly (no refresh)
diff --git a/glances/standalone.py b/glances/standalone.py
index 351bfd95..1ab1facb 100644
--- a/glances/standalone.py
+++ b/glances/standalone.py
@@ -116,7 +116,15 @@ class GlancesStandalone(object):
print("Exporters list: {}".format(
', '.join(sorted(self.stats.getExportsList(enable=False)))))
- def __serve_forever(self):
+ def serve_issue(self):
+ """Special mode for the --issue option
+ Update is done in the sceen.update function
+ """
+ ret = not self.screen.update(self.stats)
+ self.end()
+ return ret
+
+ def __serve_once(self):
"""Main loop for the CLI.
return True if we should continue (no exit key has been pressed)
@@ -156,7 +164,7 @@ class GlancesStandalone(object):
"""Wrapper to the serve_forever function."""
loop = True
while loop:
- loop = self.__serve_forever()
+ loop = self.__serve_once()
self.end()
def end(self):