mirror of
https://github.com/nicolargo/glances.git
synced 2025-01-04 16:03:52 +03:00
Add update stats time
This commit is contained in:
parent
6f8bfd3193
commit
877f31cbad
@ -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()
|
||||
|
@ -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)
|
||||
|
@ -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):
|
||||
|
Loading…
Reference in New Issue
Block a user