Glances
Cross-platform system monitoring at a glance
Glances is a cross-platform system monitoring tool that presents a wide range of host metrics in a terminal or web view. It targets administrators wanting a quick overview of a single machine. It is deployed via Docker, pip, or packages.
Key features
- Terminal and web monitoring views
- Wide range of metrics
- REST API and exporters
- Cross-platform support
Pros & cons
Strengths
- Very easy to run
- Lightweight
- Good single-host overview
Trade-offs
- Best for one host at a time
- Limited history
Glances replaces
Last reviewed Aug 26, 2026 · 750 words
Glances is the tool I open when a box feels slow and I want to know why within the next 10 seconds. One command shows CPU, memory, swap, load, disk I/O, network, filesystems, sensors, processes, and every Docker container's CPU and RAM on one screen, on any Linux, macOS, or Windows host, in 128 MB of RAM. What it is not is a monitoring system: history is minutes, alerting is rudimentary, and it looks at one host at a time. Treat it as a diagnostic instrument, pair it with something that keeps records, and it earns a permanent place in the stack.
Three modes from one binary
pip install glances or the distro package gets you the terminal view; it starts as glances. Two flags change the shape. glances -w starts the web UI on port 61208 with the same layout rendered in a browser, which is what you want on a headless server. glances -s runs it as a server that other Glances instances connect to with glances -c hostname, so from a laptop you can flip between boxes. There is also a REST API on the web port that returns every plugin's data as JSON, which is how Homepage and similar dashboards pull a live CPU gauge from it. On a 14-year-old Python codebase (first released 2012, now 33,430 GitHub stars) all of this is stable rather than exciting, and stable is what I want from a tool I run during an incident.
The Docker setup needs the host PID namespace and the socket
In a container Glances can only see what you let it see:
services:
glances:
image: nicolargo/glances:latest-full
pid: host
network_mode: host
environment:
- GLANCES_OPT=-w
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
- /etc/os-release:/etc/os-release:ro
restart: unless-stopped
pid: host is what makes the process list mean anything; without it you see one Python process. The socket mount is read-only and gives the container plugin per-container CPU, memory, and network. Note the tradeoff: a read-only Docker socket still grants a lot, because anything that can read it can inspect every container's environment variables. On a single-user homelab I accept that; on a shared box I would run it bare-metal from pip instead. The latest-full tag bundles the optional dependencies (sensors, Docker, exporters); latest is smaller and skips them.
What the screen tells you that top does not
The layout is opinionated in useful ways. Values are coloured by threshold (green, blue, magenta, red for OK, careful, warning, critical), so a red memory line is a finding rather than a number you have to interpret. Disk I/O and network are shown per device with rates, which is how you notice that the "slow" server is actually a single disk saturated by a scrub. The sensors plugin exposes CPU and drive temperatures where lm-sensors and smartmontools are installed. Thresholds are tunable in glances.conf, and the same file defines simple actions, so a critical CPU alert can run a script or send a notification, though I would not build an alerting pipeline on it.
History is the gap, and exporters fill it
Glances keeps a short ring buffer of samples and that is all. If you want to know what happened at 03:14 last night you need an exporter: it can push to InfluxDB, Prometheus, Elasticsearch, MQTT, CSV, and several others, so glances --export prometheus turns it into a metrics source that Prometheus scrapes and Grafana charts. The honest comparison is with Netdata, which does the same live view with per-second history and alerts built in, at the cost of a heavier agent and a cloud-nagging UI, and with Beszel, which covers the multi-host history use case for a fraction of the effort. The Grafana vs Netdata comparison covers where each of the heavier options wins.
What I'd do
Install Glances from pip on every Linux box you administer, because it costs nothing and you will want it during the next outage. Run the web mode in Docker only on the one host whose dashboard you check daily. For history and alerts, add Beszel for a homelab of under 10 machines or the Prometheus export route if Grafana is already running. Glances for the live picture, something else for the record: that split is the whole recommendation.
Compare Glances
21 head-to-head comparisons.
- Glances vs Netdata
- Glances vs Grafana
- Glances vs Prometheus
- Glances vs InfluxDB
- Glances vs Apache SkyWalking
- Glances vs Kibana
- Glances vs cAdvisor
- Glances vs VictoriaMetrics
- Glances vs Thanos
- Glances vs HyperDX
- Glances vs Coroot
- Glances vs Hertzbeat
- Glances vs Pulse Monitor
- Glances vs Zabbix
- Glances vs Graphite
- Glances vs Cortex
- Glances vs Grafana Mimir
- Glances vs Monitoror
- Glances vs Uptrace
- Glances vs Pushgateway
- Glances vs Robusta
Similar monitoring & status apps
Uptime Kuma
Monitoring & StatusEasy self-hosted uptime monitoring tool
Replaces Pingdom, UptimeRobot
Netdata
Monitoring & StatusReal-time per-second infrastructure monitoring
Replaces Datadog, New Relic
Grafana
Monitoring & StatusOpen observability dashboards and visualization
Replaces Datadog
Prometheus
Monitoring & StatusMetrics-based monitoring and alerting toolkit
Replaces Datadog
InfluxDB
Monitoring & StatusPurpose-built time series database for metrics and events
Replaces Datadog, AWS Timestream
Grafana k6
Monitoring & StatusDeveloper-friendly load testing and performance tool
Replaces LoadRunner, BlazeMeter