mirror of https://github.com/nicolargo/glances
Alert timestamp is incorrect #2591
parent
f19e98417a
commit
2aa3f418df
3
Makefile
3
Makefile
|
@ -253,6 +253,9 @@ run-docker-ubuntu-dev: ## Start Glances Ubuntu Docker dev in console mode
|
|||
run-webserver: ## Start Glances in Web server mode
|
||||
./venv/bin/python -m glances -C ./conf/glances.conf -w
|
||||
|
||||
run-webserver-local-conf: ## Start Glances in Web server mode with the system conf file
|
||||
./venv/bin/python -m glances -w
|
||||
|
||||
run-restapiserver: ## Start Glances in REST API server mode
|
||||
./venv/bin/python -m glances -C ./conf/glances.conf -w --disable-webui
|
||||
|
||||
|
|
|
@ -13,7 +13,7 @@ NodeJS should be installed/updated on your system.
|
|||
Example on Ubuntu OS:
|
||||
|
||||
```bash
|
||||
sudo apt install nodejs
|
||||
sudo apt install nodejs npm
|
||||
```
|
||||
|
||||
### Upgrade NodeJS
|
||||
|
@ -22,7 +22,7 @@ Example on Ubuntu OS:
|
|||
|
||||
```bash
|
||||
sudo apt update
|
||||
sudo apt install nodejs
|
||||
sudo apt install nodejs npm
|
||||
sudo npm install -g n
|
||||
sudo n lts
|
||||
hash -r
|
||||
|
|
|
@ -95,10 +95,7 @@ export default {
|
|||
},
|
||||
methods: {
|
||||
formatDate(date) {
|
||||
return new Date(date)
|
||||
.toISOString()
|
||||
.slice(0, 19)
|
||||
.replace(/[^\d-:]/, ' ');
|
||||
return new Date(date).toLocaleString();
|
||||
}
|
||||
}
|
||||
};
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<template>
|
||||
<section id="now" class="plugin">
|
||||
<div class="table-row">
|
||||
<div class="table-cell text-left">{{ localDate(value) }}</div>
|
||||
<div class="table-cell text-left">{{ localDate(date_iso) }}</div>
|
||||
</div>
|
||||
</section>
|
||||
</template>
|
||||
|
@ -14,16 +14,13 @@ export default {
|
|||
}
|
||||
},
|
||||
computed: {
|
||||
value() {
|
||||
return this.data.stats['now'];
|
||||
date_iso() {
|
||||
return this.data.stats['now']['iso'];
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
localDate(date) {
|
||||
console.log(date)
|
||||
var local_date = new Date(date)
|
||||
console.log(local_date)
|
||||
return local_date.toISOString().slice(0, 19).replace(/[^\d-:]/, ' ');
|
||||
return new Date(date).toLocaleString();
|
||||
}
|
||||
}
|
||||
};
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -2,7 +2,7 @@
|
|||
#
|
||||
# This file is part of Glances.
|
||||
#
|
||||
# SPDX-FileCopyrightText: 2022 Nicolas Hennion <nicolas@nicolargo.com>
|
||||
# SPDX-FileCopyrightText: 2024 Nicolas Hennion <nicolas@nicolargo.com>
|
||||
#
|
||||
# SPDX-License-Identifier: LGPL-3.0-only
|
||||
#
|
||||
|
@ -10,18 +10,42 @@
|
|||
"""Now (current date) plugin."""
|
||||
|
||||
from time import tzname, strftime
|
||||
import datetime
|
||||
from glances.plugins.plugin.model import GlancesPluginModel
|
||||
|
||||
# Fields description
|
||||
# description: human readable description
|
||||
# short_name: shortname to use un UI
|
||||
# unit: unit type
|
||||
# rate: if True then compute and add *_gauge and *_rate_per_is fields
|
||||
# min_symbol: Auto unit should be used if value > than 1 'X' (K, M, G)...
|
||||
fields_description = {
|
||||
'custom': {
|
||||
'description': 'Current date in custom format.'
|
||||
},
|
||||
'iso': {
|
||||
'description': 'Current date in ISO 8601 format.'
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
class PluginModel(GlancesPluginModel):
|
||||
"""Plugin to get the current date/time.
|
||||
|
||||
stats is (string)
|
||||
stats is a dict:
|
||||
{
|
||||
"custom": "2024-04-27 16:43:52 CEST",
|
||||
"iso": "2024-04-27T16:28:23.382748"
|
||||
}
|
||||
"""
|
||||
|
||||
def __init__(self, args=None, config=None):
|
||||
"""Init the plugin."""
|
||||
super(PluginModel, self).__init__(args=args, config=config)
|
||||
super(PluginModel, self).__init__(
|
||||
args=args,
|
||||
config=config,
|
||||
fields_description=fields_description,
|
||||
stats_init_value={})
|
||||
|
||||
# We want to display the stat in the curse interface
|
||||
self.display_curse = True
|
||||
|
@ -35,23 +59,23 @@ class PluginModel(GlancesPluginModel):
|
|||
if 'global' in config.as_dict():
|
||||
self.strftime = config.as_dict()['global']['strftime_format']
|
||||
|
||||
def reset(self):
|
||||
"""Reset/init the stats."""
|
||||
self.stats = ''
|
||||
|
||||
def update(self):
|
||||
"""Update current date/time."""
|
||||
# Had to convert it to string because datetime is not JSON serializable
|
||||
# Add the time zone (issue #1249 / #1337 / #1598)
|
||||
stats = self.get_init_value()
|
||||
|
||||
# Start with the ISO format
|
||||
stats['iso'] = datetime.datetime.now().astimezone().replace(microsecond=0).isoformat()
|
||||
|
||||
# Then the custom
|
||||
if self.strftime:
|
||||
self.stats = strftime(self.strftime)
|
||||
stats['custom'] = strftime(self.strftime)
|
||||
else:
|
||||
if len(tzname[1]) > 6:
|
||||
self.stats = strftime('%Y-%m-%d %H:%M:%S %z')
|
||||
stats['custom'] = strftime('%Y-%m-%d %H:%M:%S %z')
|
||||
else:
|
||||
self.stats = strftime('%Y-%m-%d %H:%M:%S %Z')
|
||||
stats['custom'] = strftime('%Y-%m-%d %H:%M:%S %Z')
|
||||
|
||||
self.stats = stats
|
||||
return self.stats
|
||||
|
||||
def msg_curse(self, args=None, max_width=None):
|
||||
|
@ -64,7 +88,7 @@ class PluginModel(GlancesPluginModel):
|
|||
|
||||
# Build the string message
|
||||
# 23 is the padding for the process list
|
||||
msg = '{:23}'.format(self.stats)
|
||||
msg = '{:23}'.format(self.stats['custom'])
|
||||
ret.append(self.curse_add_line(msg))
|
||||
|
||||
return ret
|
||||
|
|
Loading…
Reference in New Issue