Glances

Siehe auch

Besser als htop: glances toppt top und htop um Längen (nettes Wortspiel ;-). Glances hat sich zum Ziel gesetzt, auch auf der kleinsten Konsole so viele Informationen wie möglich übersichtlich anzuzeigen. Dabei passt es sich dem Bildschirm-Layout dynamisch an („responsive“) und bietet auf einen Blick auch Netzwerk- und Festplatten-Statistiken. Das Tool basiert auf Python und ist ab RHEL 7 im EPEL-Repository verfügbar.

Links
yum -y install glances

# refresh every second:
glances -t 1

top durch Glances ersetzen:

echo "alias top='glances -t 0.5'" > /etc/profile.d/glances.sh
source /etc/profile.d/glances.sh

Troubleshooting

Glances < 2.8 ist inkompatibel mit Docker API 20+. Das wurde in der Version 2.8 zwar gefixt, leider liefert EPEL in RHEL 7 aber Glances in der Version 2.5.1.

Der Fehler:

Traceback (most recent call last):
File "/usr/bin/glances", line 9, in <module>
    load_entry_point('Glances==2.5.1', 'console_scripts', 'glances')()
File "/usr/lib/python2.7/site-packages/glances/__init__.py", line 122, in main
    args=core.get_args())
File "/usr/lib/python2.7/site-packages/glances/core/glances_standalone.py", line 68, in __init__
    self.stats.update()
File "/usr/lib/python2.7/site-packages/glances/core/glances_stats.py", line 156, in update
    self._plugins[p].update()
File "/usr/lib/python2.7/site-packages/glances/plugins/glances_plugin.py", line 654, in wrapper
    ret = fct(*args, **kw)
File "/usr/lib/python2.7/site-packages/glances/plugins/glances_docker.py", line 152, in update
    self.docker_client = self.connect()
File "/usr/lib/python2.7/site-packages/glances/plugins/glances_docker.py", line 97, in connect
    ret = docker.Client(base_url='unix://var/run/docker.sock')
AttributeError: 'module' object has no attribute 'Client'

Der Fix:

/usr/lib/python2.7/site-packages/glances/plugins/glances_docker.py
diff --git a/glances/plugins/glances_docker.py b/glances/plugins/glances_docker.py
index d0df668..5827d0e 100644
--- a/glances/plugins/glances_docker.py
+++ b/glances/plugins/glances_docker.py
@@ -93,12 +93,18 @@ class Plugin(GlancesPlugin):
    def connect(self, version=None):
        """Connect to the Docker server."""
        # Init connection to the Docker API
+
+        if hasattr(docker, 'APIClient'):
+            init_docker = docker.APIClient
+        else:
+            init_docker = docker.Client
+
        try:
            if version is None:
-                ret = docker.Client(base_url='unix://var/run/docker.sock')
+                ret = init_docker(base_url='unix://var/run/docker.sock')
            else:
-                ret = docker.Client(base_url='unix://var/run/docker.sock',
-                                    version=version)
+                ret = init_docker(base_url='unix://var/run/docker.sock',
+                                  version=version)
        except NameError:
            # docker lib not found
            return None

Built on 2024-04-18