A small Python server monitor is straightforward to build with psutil: poll a few host and service metrics, timestamp each result, and write newline-delimited JSON. It is useful for a single server or a prototype, but it does not give you durable metric history, multi-host dashboards, or routed alerts by itself. Those needs are a good point to consider Prometheus.
What a tiny monitor should measure
Start with the questions you need answered, not an exhaustive inventory of the machine. A practical first pass covers CPU, memory, disk capacity, network counters, the state of a selected process, and one or two service checks. psutil is a cross-platform Python library for retrieving information about processes and system utilization, including memory, disks, and network activity.
As an Amazon Associate I earn from qualifying purchases.
- CPU: record the host-wide utilization value and its unit. A single brief peak is not necessarily a problem.
- Memory: capture virtual-memory statistics and make clear whether a threshold applies to the whole host or a particular process.
- Disk: check the filesystems that matter, rather than assuming one filesystem represents every volume.
- Network: record cumulative counters with their units. A counter is not a traffic rate until you compare samples over time.
- Process and service health: check whether a selected process exists, and whether a service probe succeeds within a configured timeout.
Keep the scope narrow enough that every reading has a clear meaning. A reported zero and an unavailable metric are different states: if collection fails, record that failure instead of quietly substituting zero.
Free tools Windows power users keep installed
One-click scans. No signup required.
Build a polling loop that is observable
Install psutil in the Python environment where the monitor will run:
#1 Best Overall
- Includes Raspberry Pi 4 4GB Model B with 1.5GHz 64-bit quad-core CPU (4GB RAM)
- Includes Pre-Loaded 32GB EVO+ Micro SD Card (Class 10), USB MicroSD Card Reader
- CanaKit Premium High-Gloss Raspberry Pi 4 Case with Integrated Fan Mount, CanaKit Low Noise Bearing System Fan
- CanaKit 3.5A USB-C Raspberry Pi 4 Power Supply (US Plug) with Noise Filter, Set of Heat Sinks, Display Cable - 6 foot (Supports up to 4K60p)
- CanaKit USB-C PiSwitch (On/Off Power Switch for Raspberry Pi 4)
pip install psutil
A polling loop can call psutil’s CPU, virtual-memory, disk-usage, network-counter, and process APIs. For service checks, use a timeout so an unresponsive endpoint cannot stall the entire loop. Record each sample as newline-delimited JSON: one complete JSON object per line is easy to inspect with shell tools and can later be ingested by another system.
Every record should include an ISO-8601 timestamp and units alongside values. For example, a disk percentage should be labeled as a percentage, while network counters should identify their byte or packet units. Add an explicit status or error field when a metric cannot be collected; this distinguishes “unknown” from a healthy zero.
Make operational choices configurable
Keep the polling interval, thresholds, probe timeouts, and output location in configuration rather than burying them as constants in the code. State what each threshold measures: host-wide CPU, per-process memory, or capacity on a named filesystem. That makes the monitor safer to adapt and prevents an alert from being interpreted more broadly than intended.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
There is no single interval that fits every server. Check often enough to notice the problems you care about, while accounting for the overhead and volume of the resulting data. Prometheus’s getting-started configuration uses a 15-second global scrape interval and a 5-second override for one job; these are example configuration values, not universal recommendations. See the Prometheus getting-started guide.
Rank #3
- Includes Raspberry Pi 5 with 2.4Ghz 64-bit quad-core CPU (8GB RAM)
- Includes 128GB Micro SD Card pre-loaded with 64-bit Raspberry Pi OS, USB MicroSD Card Reader
- CanaKit Turbine Black Case for the Raspberry Pi 5
- CanaKit Low Noise Bearing System Fan
- Mega Heat Sink - Black Anodized
Choose alerts that point to an action
Disk capacity and a failed service check are often useful first alerts because they are comparatively easy to interpret and investigate. CPU and memory thresholds require more context: a short spike may be normal, whereas pressure sustained over time may indicate a real issue. Choose and document thresholds for the host, process, or filesystem they actually cover.
Even a local script should make collection problems visible. If it stops running, cannot read a metric, or times out during a probe, the output should reveal that fact. Otherwise, an empty or stale log can look deceptively like a healthy server.
Rank #4
- powful cputhe cpu of the raspberry pi 4 model b adopts the latest arm cortex-a72 architecture, which is also used in high-performance smartphones, and has evolved into a real pc.the operating clock has been changed from pi3's 1.2ghz to 1.5ghz, and the speed has become a different dimension with the updated architecture.
- video output/gputhe on-board gpu of the raspberry pi 4 supports 4kp@60 and newly supports h.265 decoding, opengl es 3.0, etc.as for the video output, two micro hdmis with smaller connectors are installed, and the raspberry pi 4 also supports dual screen output.
- usb 3.0with a new soc, the speed of the raspberry pi 4 around i/o has been improved, and finally usb 3.0 is supported.usb boot is faster and more convenient.
- network&bluetoothgigabit ethernet (wired lan) has also been significantly speeded up from 300mbps of pi 3b + to 1000mbps (logical value).in addition, bluetooth supported version has been upgraded to 5.0, and the transfer speed of pi 4 has been doubled.
- power input connectorthe power input connector of the raspberry pi 4 has been changed to usb type c. it is easier to use than micro usb and can supply a larger current reliably.the power requirement of raspberry pi 4 model b is 5v 3.0a, which is higher than the previous model.
Know when a script is enough—and when it is not
A standalone psutil script keeps setup and custom logic relatively simple, and its library is cross-platform. Its limitations become important when you need to retain and query history, compare multiple hosts, build dashboards, or route alerts. A Prometheus-based design adds those capabilities through separate components: targets expose metrics, Prometheus scrapes and stores time series, and Alertmanager can handle alerts.
Recommended Free Tools
| Need | Standalone psutil script | Prometheus-based design |
|---|---|---|
| Setup and operational overhead | A small script is a lightweight starting point; persistence and presentation are your responsibility. | Requires operating a metrics collection and storage system, with additional alerting components if needed. |
| Retention and querying | Can write logs or JSON, but durable time-series querying is not built in. | Stores metrics as time series with timestamps and optional key-value labels. |
| Multiple hosts and labels | You must organize host identity and comparisons yourself. | Labels provide a model for identifying and querying metrics across targets. |
| Dashboards and alert routing | Not included; these require additional tools or custom code. | Fits a broader metrics and alerting workflow, including Alertmanager for alerts. |
| Portability and custom service checks | psutil is cross-platform, and custom Python checks can be tailored to an application’s needs. | Node Exporter is a reference point for Linux host metrics; a custom Python exporter can still suit application-specific checks. |
The Prometheus data model stores metric samples with timestamps and optional labels. Its getting-started documentation also describes using Alertmanager to raise alerts based on preset rules. For host-level Linux metrics, the Node Exporter guide explains that Node Exporter exposes a wide variety of hardware- and kernel-related metrics.
Best Value
- All-in-One Complete Kit: This SANOOV RPi 5 bundle comes with Raspberry Pi 5 4GB RAM single board, active cooler, durable ABS case and screwdriver. No extra parts needed, ready to use right out of the box for beginners and hobbyists
- Powerful Single Board Computer: Equipped with 4GB RAM and high-performance processor, delivers fast running speed for 4K playback, AI projects, programming and daily computing tasks. SANOOV for raspberry pi 5 4GB is equipped with broadcom 64 quad-core Arm Cortex A76 processor with gigabit ethernet and upgraded with IEEE 802.11ac Wi-Fi, Bluetooth 5.0 dual-band 2.4Ghz and 5Ghz and Power Over Ethernet (POE). Upgrading delivers 2-3 x speed vs Pi 4, redefining the experience
- Efficient Active Cooler: Effectively lowers operating temperature and prevents performance throttling. Runs quietly even under long-time heavy load, ensures stable operation all day long. SANOOV RPi 5 4GB kit offer an active cooler, which combines an aluminium heatsink with a high-performance PWM fan. Active cooler is fully compatible with the Pi OS, which can effectively reduce the temperature of RPi5 and ensure its good performance during long-term high load operation
- Sturdy ABS Protective Case: Well-fitted for Raspberry Pi 5 board, can be secured with 4 screws to effectively protect the Pi 5 motherboard from damage, reserves full access to all ports and buttons. SANOOV uses ABS material to produce the case, which has a softer texture and feel. Meanwhile, SANOOV case adopts a layered design for easy disassembly and installation. (Tip: The Case cannot install M.2 HAT Add on Board and Solid State Drive!)
- Wide Application & Full Compatibility: Seamlessly compatible with official OS and mainstream peripheral accessories for Raspberry Pi 5. Whether you are a beginner, student, electronics hobbyist or professional developer, this all-in-one kit meets your diverse needs. It excels in IoT projects, robotics design, retro gaming devices, home media servers and other DIY creations. Backed by a large global community, you can easily find guides, technical support and shared projects online
Move from local output to scraping when needs grow
Plain logs or JSON separate collection from presentation and are enough for an initial monitor. If another system needs to collect the data, expose a metrics endpoint or adopt the Prometheus Python client. The Python client tutorial installs prometheus-client, starts an HTTP metrics server, and demonstrates request-timing metrics whose rates can be calculated over time.
Consider making that move when you need durable history, labels across hosts, dashboards, recording rules, or alert routing. For standard Linux host measurements, Node Exporter is an established option; retain custom Python checks where they capture application-specific health that generic host metrics cannot express.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.




