Merge branch 'develop' into glancesv4

This commit is contained in:
nicolargo 2022-07-28 18:23:58 +02:00
commit 9b4afb84cf
13 changed files with 538 additions and 452 deletions

View File

@ -2,11 +2,56 @@
Glances changelog Glances changelog
============================================================================== ==============================================================================
===============
Version 3.3.0
===============
Version under development: see roadmap here https://github.com/nicolargo/glances/milestone/60
=============== ===============
Version 3.2.7 Version 3.2.7
=============== ===============
Under development: see roadmap here https://github.com/nicolargo/glances/milestone/59 Enhancements:
* Config to disable all plugins by default (or enable an exclusive list) #2089
* Keybind(s) for modifying nice level #2081
* [WEBUI] Reorganize help screen #2037
* Add a Json stdout option #2060
* Improve error message when export error occures
* Improve error message when MQTT error occures
* Change the way core are displayed
* Remove unused key in the process list
* Refactor top menu of the curse interface
* Improve Irix display for the load plugin
Bug corrected:
* In the sensor plugin thresholds in the configuration file should overwrite system ones #2058
* Drive names truncated in Web UI #2055
* Correct issue with CPU label
Documentation and CI:
* Improve makefile help #2078
* Add quote to the update command line (already ok for the installation). Related to #2073
* Make Glances (almost) compliant with REUSE #2042
* Update README for Debian package users
* Update documentation for Docker
* Update docs for new shortcut
* Disable Pyright on the Git actions pipeline
* Refactor comments
* Except datutil import error
* Another dep issue solved in the Alpine Docker + issue in the outdated method
Contributors for this version:
* Nicolargo
* Sylvain MOUQUET
* FastThenLeft
* Jiajie Chen
* dbrennand
* ewuerger
=============== ===============
Version 3.2.6 Version 3.2.6

View File

@ -21,18 +21,21 @@ Glances - An eye on your system
:target: https://github.com/nicolargo/glances/actions :target: https://github.com/nicolargo/glances/actions
:alt: Linux tests (GitHub Actions) :alt: Linux tests (GitHub Actions)
.. image:: https://img.shields.io/appveyor/ci/nicolargo/glances/master.svg?maxAge=3600&label=Windows .. image:: https://img.shields.io/github/contributors/nicolargo/glances
:target: https://ci.appveyor.com/project/nicolargo/glances :target: https://github.com/nicolargo/glances/issues?q=is%3Aissue+is%3Aopen+label%3A%22needs+contributor%22
:alt: Windows tests (Appveyor) :alt: Contibutors
.. image:: https://scrutinizer-ci.com/g/nicolargo/glances/badges/quality-score.png?b=develop .. image:: https://scrutinizer-ci.com/g/nicolargo/glances/badges/quality-score.png?b=develop
:target: https://scrutinizer-ci.com/g/nicolargo/glances/?branch=develop :target: https://scrutinizer-ci.com/g/nicolargo/glances/?branch=develop
:alt: Code quality
.. image:: https://img.shields.io/static/v1?label=Sponsor&message=%E2%9D%A4&logo=GitHub&link=https://github.com/sponsors/nicolargo .. image:: https://img.shields.io/github/sponsors/nicolargo
:target: https://github.com/sponsors/nicolargo :target: https://github.com/sponsors/nicolargo
:alt: Sponsors
.. image:: https://img.shields.io/twitter/url/https/twitter.com/cloudposse.svg?style=social&label=Follow%20%40nicolargo .. image:: https://img.shields.io/twitter/url/https/twitter.com/cloudposse.svg?style=social&label=Follow%20%40nicolargo
:target: https://twitter.com/nicolargo :target: https://twitter.com/nicolargo
:alt: @nicolargo
Summary Summary
======= =======
@ -132,8 +135,14 @@ For Windows, just install psutil from the binary installation file.
*Note 2 (for the Wifi plugin)*: If you want to use the Wifi plugin, you need *Note 2 (for the Wifi plugin)*: If you want to use the Wifi plugin, you need
to install the *wireless-tools* package on your system. to install the *wireless-tools* package on your system.
You can also install the following libraries in order to use optional By default, Glances is installed without the Web interface dependencies.
features (like the Web interface, exports modules...): To install it, use the following command:
.. code-block:: console
pip install --user 'glances[web]'
For a full installation (with all features:
.. code-block:: console .. code-block:: console
@ -144,29 +153,14 @@ To upgrade Glances to the latest version:
.. code-block:: console .. code-block:: console
pip install --user --upgrade glances pip install --user --upgrade glances
pip install --user --upgrade 'glances[...]''
If you need to install Glances in a specific user location, use: The current develop branch is published to the test.pypi.org package index.
If you want to test the develop version (could be instable), enter:
.. code-block:: console
export PYTHONUSERBASE=~/mylocalpath
pip install --user glances
If you are administrator and want to install Glances for all users:
.. code-block:: console
sudo pip install glances
The current develop branch is also published to the test.pypi.org package index.
If you want to test the develop version, enter:
.. code-block:: console .. code-block:: console
pip install --user -i https://test.pypi.org/simple/ Glances pip install --user -i https://test.pypi.org/simple/ Glances
Glances Auto Install script: the easy way Glances Auto Install script: the easy way
----------------------------------------- -----------------------------------------
@ -205,7 +199,7 @@ Available versions on the Docker Hub repository:
- *nicolargo/glances:latest-full* for a full Debian Glances image version with all dependencies - *nicolargo/glances:latest-full* for a full Debian Glances image version with all dependencies
- *nicolargo/glances:alpine-latest-full* for a full Alpine Glances image version with all dependencies - *nicolargo/glances:alpine-latest-full* for a full Alpine Glances image version with all dependencies
You can also specify a version by replacing latest by 3.2.6.3 (for example). You can also specify a version by replacing latest by 3.2.6.4 (for example).
Run last version of Glances container in *console mode*: Run last version of Glances container in *console mode*:
@ -246,6 +240,10 @@ able to install it using your favorite package manager. Be aware that
when you use this method the operating system `package`_ for `Glances` when you use this method the operating system `package`_ for `Glances`
may not be the latest version. may not be the latest version.
Note: The Debian package (and all other Debian-based distributions) do
not include anymore the JS statics files used by the Web interface
(see ``issue2021``).
FreeBSD FreeBSD
------- -------
@ -472,3 +470,4 @@ Glances is distributed under the LGPL version 3 license. See ``COPYING`` for mor
.. _wiki: https://github.com/nicolargo/glances/wiki/How-to-contribute-to-Glances-%3F .. _wiki: https://github.com/nicolargo/glances/wiki/How-to-contribute-to-Glances-%3F
.. _package: https://repology.org/metapackage/glances/packages .. _package: https://repology.org/metapackage/glances/packages
.. _sponsors: https://github.com/sponsors/nicolargo .. _sponsors: https://github.com/sponsors/nicolargo
.. _issue2021: https://github.com/nicolargo/glances/issues/2021#issuecomment-1197831157

View File

@ -524,6 +524,7 @@ port=8125
# Configuration for the --export elasticsearch option # Configuration for the --export elasticsearch option
# Data are available via the ES RESTful API. ex: URL/<index>/cpu # Data are available via the ES RESTful API. ex: URL/<index>/cpu
# https://www.elastic.co # https://www.elastic.co
scheme=http
host=localhost host=localhost
port=9200 port=9200
index=glances index=glances
@ -547,7 +548,7 @@ queue=glances_queue
# Configuration for the --export mqtt option # Configuration for the --export mqtt option
host=localhost host=localhost
port=8883 port=8883
tls=true tls=false
user=guest user=guest
password=guest password=guest
topic=glances topic=glances

View File

@ -54,6 +54,8 @@ RUN CASS_DRIVER_NO_CYTHON=1 pip3 install --no-cache-dir --user -r optional-requi
FROM build as dev FROM build as dev
ARG PYTHON_VERSION ARG PYTHON_VERSION
COPY --from=remoteInstall /root/.local/bin /usr/local/bin/
COPY --from=remoteInstall /root/.local/lib/python${PYTHON_VERSION}/site-packages /usr/lib/python${PYTHON_VERSION}/site-packages/
COPY --from=additional-packages /root/.local/lib/python${PYTHON_VERSION}/site-packages /usr/lib/python${PYTHON_VERSION}/site-packages/ COPY --from=additional-packages /root/.local/lib/python${PYTHON_VERSION}/site-packages /usr/lib/python${PYTHON_VERSION}/site-packages/
COPY . /glances COPY . /glances
COPY ./docker-compose/glances.conf /etc/glances.conf COPY ./docker-compose/glances.conf /etc/glances.conf
@ -85,8 +87,8 @@ COPY --from=remoteInstall /root/.local/bin /usr/local/bin/
COPY --from=remoteInstall /root/.local/lib/python${PYTHON_VERSION}/site-packages /usr/lib/python${PYTHON_VERSION}/site-packages/ COPY --from=remoteInstall /root/.local/lib/python${PYTHON_VERSION}/site-packages /usr/lib/python${PYTHON_VERSION}/site-packages/
COPY ./docker-compose/glances.conf /etc/glances.conf COPY ./docker-compose/glances.conf /etc/glances.conf
# EXPOSE PORT (XMLRPC / WebUI) # EXPOSE PORT (XMLRPC)
EXPOSE 61209 61208 EXPOSE 61209
# Define default command. # Define default command.
CMD python3 -m glances -C /etc/glances.conf $GLANCES_OPT CMD python3 -m glances -C /etc/glances.conf $GLANCES_OPT
@ -100,3 +102,9 @@ ARG PYTHON_VERSION
COPY --from=additional-packages /root/.local/lib/python${PYTHON_VERSION}/site-packages /usr/lib/python${PYTHON_VERSION}/site-packages/ COPY --from=additional-packages /root/.local/lib/python${PYTHON_VERSION}/site-packages /usr/lib/python${PYTHON_VERSION}/site-packages/
COPY ./docker-compose/glances.conf /etc/glances.conf COPY ./docker-compose/glances.conf /etc/glances.conf
# EXPOSE PORT (XMLRPC / WebUI)
EXPOSE 61209 61208
# Define default command.
CMD python3 -m glances -C /etc/glances.conf $GLANCES_OPT

View File

@ -51,6 +51,8 @@ RUN CASS_DRIVER_NO_CYTHON=1 pip3 install --no-cache-dir --user -r optional-requi
FROM build as dev FROM build as dev
ARG PYTHON_VERSION ARG PYTHON_VERSION
COPY --from=remoteInstall /root/.local/bin /usr/local/bin/
COPY --from=remoteInstall /root/.local/lib/python${PYTHON_VERSION}/site-packages /usr/local/lib/python${PYTHON_VERSION}/site-packages/
COPY --from=additional-packages /root/.local/lib/python${PYTHON_VERSION}/site-packages /usr/local/lib/python${PYTHON_VERSION}/site-packages/ COPY --from=additional-packages /root/.local/lib/python${PYTHON_VERSION}/site-packages /usr/local/lib/python${PYTHON_VERSION}/site-packages/
COPY . /glances COPY . /glances
COPY ./docker-compose/glances.conf /etc/glances.conf COPY ./docker-compose/glances.conf /etc/glances.conf
@ -84,8 +86,8 @@ COPY --from=remoteInstall /root/.local/bin /usr/local/bin/
COPY --from=remoteInstall /root/.local/lib/python${PYTHON_VERSION}/site-packages /usr/local/lib/python${PYTHON_VERSION}/site-packages/ COPY --from=remoteInstall /root/.local/lib/python${PYTHON_VERSION}/site-packages /usr/local/lib/python${PYTHON_VERSION}/site-packages/
COPY ./docker-compose/glances.conf /etc/glances.conf COPY ./docker-compose/glances.conf /etc/glances.conf
# EXPOSE PORT (XMLRPC / WebUI) # EXPOSE PORT (XMLRPC)
EXPOSE 61209 61208 EXPOSE 61209
# Define default command. # Define default command.
CMD python3 -m glances -C /etc/glances.conf $GLANCES_OPT CMD python3 -m glances -C /etc/glances.conf $GLANCES_OPT
@ -99,3 +101,9 @@ ARG PYTHON_VERSION
COPY --from=additional-packages /root/.local/lib/python${PYTHON_VERSION}/site-packages /usr/local/lib/python${PYTHON_VERSION}/site-packages/ COPY --from=additional-packages /root/.local/lib/python${PYTHON_VERSION}/site-packages /usr/local/lib/python${PYTHON_VERSION}/site-packages/
COPY ./docker-compose/glances.conf /etc/glances.conf COPY ./docker-compose/glances.conf /etc/glances.conf
# EXPOSE PORT (XMLRPC / WebUI)
EXPOSE 61209 61208
# Define default command.
CMD python3 -m glances -C /etc/glances.conf $GLANCES_OPT

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 107 KiB

After

Width:  |  Height:  |  Size: 105 KiB

File diff suppressed because it is too large Load Diff

View File

@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u .in \\n[rst2man-indent\\n[rst2man-indent-level]]u
.. ..
.TH "GLANCES" "1" "Jul 24, 2022" "3.2.7_beta01" "Glances" .TH "GLANCES" "1" "Jul 28, 2022" "3.2.7" "Glances"
.SH NAME .SH NAME
glances \- An eye on your system glances \- An eye on your system
.SH SYNOPSIS .SH SYNOPSIS

View File

@ -19,7 +19,7 @@ import sys
# Global name # Global name
# Version should start and end with a numerical char # Version should start and end with a numerical char
# See https://packaging.python.org/specifications/core-metadata/#version # See https://packaging.python.org/specifications/core-metadata/#version
__version__ = '3.2.7_beta01' __version__ = '3.3.0_beta1'
__author__ = 'Nicolas Hennion <nicolas@nicolargo.com>' __author__ = 'Nicolas Hennion <nicolas@nicolargo.com>'
__license__ = 'LGPLv3' __license__ = 'LGPLv3'

View File

@ -242,17 +242,17 @@ def pretty_date(time=False):
if second_diff < 10: if second_diff < 10:
return "just now" return "just now"
if second_diff < 60: if second_diff < 60:
return str(second_diff) + " seconds" return str(second_diff) + " secs"
if second_diff < 120: if second_diff < 120:
return "a minute" return "a min"
if second_diff < 3600: if second_diff < 3600:
return str(second_diff // 60) + " minutes" return str(second_diff // 60) + " mins"
if second_diff < 7200: if second_diff < 7200:
return "an hour" return "an hour"
if second_diff < 86400: if second_diff < 86400:
return str(second_diff // 3600) + " hours" return str(second_diff // 3600) + " hours"
if day_diff == 1: if day_diff == 1:
return "Yesterday" return "yesterday"
if day_diff < 7: if day_diff < 7:
return str(day_diff) + " days" return str(day_diff) + " days"
if day_diff < 31: if day_diff < 31:

View File

@ -86,6 +86,55 @@
"integrity": "sha512-6nFkfkmSeV/rqSaS4oWHgmpnYw194f6hmWF5is6b0J1naJZoiD0NTc9AiUwPHvWsowkjuHErCZT1wa0jg+BLIA==", "integrity": "sha512-6nFkfkmSeV/rqSaS4oWHgmpnYw194f6hmWF5is6b0J1naJZoiD0NTc9AiUwPHvWsowkjuHErCZT1wa0jg+BLIA==",
"dev": true "dev": true
}, },
"@jridgewell/gen-mapping": {
"version": "0.3.2",
"resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz",
"integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==",
"dev": true,
"requires": {
"@jridgewell/set-array": "^1.0.1",
"@jridgewell/sourcemap-codec": "^1.4.10",
"@jridgewell/trace-mapping": "^0.3.9"
}
},
"@jridgewell/resolve-uri": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz",
"integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==",
"dev": true
},
"@jridgewell/set-array": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz",
"integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==",
"dev": true
},
"@jridgewell/source-map": {
"version": "0.3.2",
"resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz",
"integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==",
"dev": true,
"requires": {
"@jridgewell/gen-mapping": "^0.3.0",
"@jridgewell/trace-mapping": "^0.3.9"
}
},
"@jridgewell/sourcemap-codec": {
"version": "1.4.14",
"resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz",
"integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==",
"dev": true
},
"@jridgewell/trace-mapping": {
"version": "0.3.14",
"resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.14.tgz",
"integrity": "sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ==",
"dev": true,
"requires": {
"@jridgewell/resolve-uri": "^3.0.3",
"@jridgewell/sourcemap-codec": "^1.4.10"
}
},
"@nodelib/fs.scandir": { "@nodelib/fs.scandir": {
"version": "2.1.5", "version": "2.1.5",
"resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
@ -570,8 +619,7 @@
"buffer-from": { "buffer-from": {
"version": "1.1.1", "version": "1.1.1",
"resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz",
"integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A=="
"dev": true
}, },
"camel-case": { "camel-case": {
"version": "4.1.2", "version": "4.1.2",
@ -3121,8 +3169,7 @@
"source-map": { "source-map": {
"version": "0.6.1", "version": "0.6.1",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
"dev": true
}, },
"source-map-js": { "source-map-js": {
"version": "0.6.2", "version": "0.6.2",
@ -3278,13 +3325,14 @@
} }
}, },
"terser": { "terser": {
"version": "5.9.0", "version": "5.14.2",
"resolved": "https://registry.npmjs.org/terser/-/terser-5.9.0.tgz", "resolved": "https://registry.npmjs.org/terser/-/terser-5.14.2.tgz",
"integrity": "sha512-h5hxa23sCdpzcye/7b8YqbE5OwKca/ni0RQz1uRX3tGh8haaGHqcuSqbGRybuAKNdntZ0mDgFNXPJ48xQ2RXKQ==", "integrity": "sha512-oL0rGeM/WFQCUd0y2QrWxYnq7tfSuKBiqTjRPWrRgB46WD/kiwHwF8T23z78H6Q6kGCuuHcPB+KULHRdxvVGQA==",
"dev": true, "dev": true,
"requires": { "requires": {
"@jridgewell/source-map": "^0.3.2",
"acorn": "^8.5.0",
"commander": "^2.20.0", "commander": "^2.20.0",
"source-map": "~0.7.2",
"source-map-support": "~0.5.20" "source-map-support": "~0.5.20"
}, },
"dependencies": { "dependencies": {
@ -3293,12 +3341,6 @@
"resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
"integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
"dev": true "dev": true
},
"source-map": {
"version": "0.7.3",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz",
"integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==",
"dev": true
} }
} }
}, },
@ -3318,8 +3360,7 @@
"commander": { "commander": {
"version": "2.20.3", "version": "2.20.3",
"resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
"integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ=="
"dev": true
}, },
"schema-utils": { "schema-utils": {
"version": "3.1.1", "version": "3.1.1",
@ -3345,30 +3386,10 @@
"version": "0.5.20", "version": "0.5.20",
"resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.20.tgz", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.20.tgz",
"integrity": "sha512-n1lZZ8Ve4ksRqizaBQgxXDgKwttHDhyfQjA6YZZn8+AroHbsIz+JjwxQDxbp+7y5OYCI8t1Yk7etjD9CRd2hIw==", "integrity": "sha512-n1lZZ8Ve4ksRqizaBQgxXDgKwttHDhyfQjA6YZZn8+AroHbsIz+JjwxQDxbp+7y5OYCI8t1Yk7etjD9CRd2hIw==",
"dev": true,
"requires": { "requires": {
"buffer-from": "^1.0.0", "buffer-from": "^1.0.0",
"source-map": "^0.6.0" "source-map": "^0.6.0"
} }
},
"terser": {
"version": "5.9.0",
"resolved": "https://registry.npmjs.org/terser/-/terser-5.9.0.tgz",
"integrity": "sha512-h5hxa23sCdpzcye/7b8YqbE5OwKca/ni0RQz1uRX3tGh8haaGHqcuSqbGRybuAKNdntZ0mDgFNXPJ48xQ2RXKQ==",
"dev": true,
"requires": {
"commander": "^2.20.0",
"source-map": "~0.7.2",
"source-map-support": "~0.5.20"
},
"dependencies": {
"source-map": {
"version": "0.7.3",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz",
"integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==",
"dev": true
}
}
} }
} }
}, },

View File

@ -80,10 +80,16 @@ another while ensuring that the tasks do not conflict.',
'unit': 'number', 'unit': 'number',
'rate': True, 'rate': True,
'min_symbol': 'K', 'min_symbol': 'K',
'short_name': 'sw_int', 'short_name': 'sys_call',
},
'cpucore': {
'description': 'Total number of CPU core.',
'unit': 'number'
},
'time_since_update': {
'description': 'Number of seconds since last update.',
'unit': 'seconds'
}, },
'cpucore': {'description': 'Total number of CPU core.', 'unit': 'number'},
'time_since_update': {'description': 'Number of seconds since last update.', 'unit': 'seconds'},
} }
# SNMP OID # SNMP OID

View File

@ -26,7 +26,7 @@ from glances.timer import getTimeSinceLastUpdate
# https://github.com/docker/docker-py # https://github.com/docker/docker-py
try: try:
import docker import docker
from dateutil import parser from dateutil import parser, tz
except Exception as e: except Exception as e:
import_error_tag = True import_error_tag = True
# Display debug message if import KeyError # Display debug message if import KeyError
@ -281,7 +281,8 @@ class PluginModel(GlancesPluginModel):
container_stats['network_tx'] = container_stats['network'].get('tx', None) container_stats['network_tx'] = container_stats['network'].get('tx', None)
# Uptime # Uptime
container_stats['Uptime'] = pretty_date( container_stats['Uptime'] = pretty_date(
parser.parse(container.attrs['State']['StartedAt']).replace(tzinfo=None) # parser.parse(container.attrs['State']['StartedAt']).replace(tzinfo=None)
parser.parse(container.attrs['State']['StartedAt']).astimezone(tz.tzlocal()).replace(tzinfo=None)
) )
else: else:
container_stats['cpu'] = {} container_stats['cpu'] = {}