Simple and Reliable CPU/MEM Usage Monitoring Tool — V2.0

Recommended workflow: foreground first, background for long runs

  1. Edit the monitoring and notification configuration, then run cpualert -check. Resolve configuration errors before continuing.
  2. Run cpualert without switches to monitor in the foreground. Watch the live screen output and confirm the targets or thresholds, monitoring results and any errors. If another instance is already running, stop it first. Foreground monitoring can send real alerts to configured recipients.
  3. When everything looks correct, press Ctrl+C to end foreground monitoring. Do not leave the foreground instance running while starting a background instance.
  4. Run cpualert -start for long-running background monitoring, cpualert -status to check its status, and cpualert -stop when you want to stop it. Review the product log during unattended operation.
cpualert -check
cpualert

Observe the live output, then press Ctrl+C. After the foreground process exits:

cpualert -start
cpualert -status

Leave the background monitor running for as long as needed. To stop it later:

cpualert -stop

Use the application directory as the working directory for every command. Background mode does not itself configure automatic startup after a reboot.

On Windows use cpualert.exe; on Linux use ./cpualert. Follow the same sequence on each platform.

V2.0 features, SMS setup and licensing

CPUAlert watches system CPU and RAM usage, sends Email, Microsoft Teams, Telegram, and Smartbooth SMS alerts after consecutive High / Low usage checks, alert includeing TOP1-TOP5 process detection, and sends recovery messages when usage returns to normal. Microsoft Teams notification is supported for modern IT operations. No installation required. Edit configuration files and run it in 1 minute. Windows and Linux versions available.

License and Purchase

Simple, Standalone and No cloud dependency.
No setup. No server. No complexity.
One-time license purchase. No subscription charges.

CPUAlert uses an offline local license file named license.dat.

Recommended customer flow:
Download ZIP → Test CPUAlert → Generate probe.txt → Purchase License → Send probe.txt → Receive license.dat → Run production monitoring

Step 1 - Generate probe.txt

cpualert -probe > probe.txt

This command generates the machine information required for license creation.

Step 2 - Purchase License

To purchase or renew your license, please visit:
https://www.smartbooth.com/purchase_lic.htm

Step 3 - Send probe.txt

Email your generated probe.txt to:

A matching license.dat will then be prepared for your machine.

Step 4 - Verify License

cpualert -licenseinfo

This command displays current license mode, customer, expire date, and machine matching result.

Download CPUAlert

Download the correct package for your operating system:

Overview

Offline License CPU Monitor Memory Monitor Email Alert Microsoft Teams Alert Telegram Alert IamAlive

CPUAlert is designed for simple server and workstation monitoring where sustained high/low CPU or memory usage needs fast notification.

Recommended for Windows/Linux servers, SQL servers, web servers, remote desktops, branch office PCs, and always-on systems that need simple resource monitoring.

Files Included

FileDescription
cpualert.exe / cpualertMain monitoring program.
license.datLicense file. You will receive this after purchasing a license.
cpualert_setup.txtCPU and memory monitoring settings.
cpualert_notify.txtSMTP, Microsoft Teams webhook, and Telegram settings.
cpualert_readme.htmlThis readme file.
cpualert_log.txtRuntime log file created by the program.

Quick Start

  1. Unzip and copy all files into one folder.
  2. Make sure curl is available on this system.
  3. Edit cpualert_setup.txt to define thresholds and intervals.
  4. Edit cpualert_notify.txt to define your SMTP, Microsoft Teams webhook, and Telegram settings.
  5. Run cpualert -check first to validate config format, then run cpualert -test to confirm Email, Microsoft Teams, Telegram, and Smartbooth SMS delivery before enabling background mode.
  6. Place your valid license.dat in the same folder.
  7. Open Command Prompt in this folder and run cpualert.
curl --version
cpualert
cpualert -check
cpualert -test
cpualert
# Verify live output, then press Ctrl+C to exit foreground mode.
cpualert -start
cpualert -status
cpualert -stop
cpualert -licenseinfo
cpualert -probe
Configuration format: key : "value"
Use : as separator. = is not supported by the recommended config standard.

Setup Configuration

Edit cpualert_setup.txt.

hostid : "192.168.1.2 MYSQL DB"
interval : "5"
cpuhighthreshold : "85"
cpuhighnum : "3"
memhighthreshold : "85"
memhighnum : "3"
cpulowthreshold : "15"
cpulownum : "30"
memlowthreshold : "20"
memlownum : "50"

Parameter Description

ParameterDescription
hostidYour label shown in alerts and logs.
intervalCheck interval in seconds.
cpuhighthresholdCPU high usage threshold percentage.
cpuhighnumNumber of consecutive high CPU checks before sending a CPU alert.
memhighthresholdMemory high usage threshold percentage.
memhighnumNumber of consecutive high memory checks before sending a memory alert.
cpulowthresholdCPU low usage threshold percentage.
cpulownumNumber of consecutive low CPU checks before sending a CPU alert.
memlowthresholdMemory low usage threshold percentage.
memlownumNumber of consecutive low memory checks before sending a memory alert.

Email, Microsoft Teams, Telegram, and Smartbooth SMS Configuration

Edit cpualert_notify.txt.

Microsoft Teams notification is recommended for IT operation teams.
CPUAlert can send alert and recovery messages to a Teams channel through a Power Automate webhook. This is useful when multiple IT staff need to see the same CPU / MEMORY alert immediately.
* This is the configuration file for Email, Microsoft Teams, Telegram, and Smartbooth SMS alerts.

*** Email alert setting
server : "smtp://smtp.gmail.com:587"
email : "[email protected]"
password : "your_app_password"
from : "[email protected]"
to : "[email protected],[email protected]"
iamalive : "[email protected]"

*** Microsoft Teams notification. Remove * to enable.
*teams_webhook : "https://your-power-automate-webhook-url"

*** Telegram notification. Remove * to enable.
*token : "your telegram bot token"
*chat_id : "-123456789(telegram group chat id)"

Microsoft Teams Setup

  1. Create a Teams channel for monitoring alerts.
  2. Create a Power Automate flow with a Teams webhook or HTTP request trigger.
  3. Copy the generated webhook URL.
  4. Paste it into teams_webhook in cpualert_notify.txt.
  5. Run cpualert -check to validate the file format.
  6. Run cpualert -test to verify Email, Microsoft Teams, Telegram, and Smartbooth SMS delivery.
Teams webhook URLs are usually very long and may include query values such as api-version=1, sv=1.0, and sig=.... Keep the full URL on one line inside double quotes.

Parameter Description

ParameterDescription
serverSMTP server and port. Example: smtp://smtp.gmail.com:587
emailSMTP login account.
passwordSMTP password or app password. The program can auto-convert it to encrypted format.
fromSender email address.
toMain alert recipients.
iamaliveDaily keep-alive recipient. IamAlive is sent by Email at midnight.
teams_webhookMicrosoft Teams / Power Automate webhook URL. Leave blank or mark with * if not used.
tokenTelegram bot token. The program can auto-convert it to encrypted format.
chat_idTelegram chat ID or group ID.
Gmail with App Password is recommended because it is easy to set up, fast, and reliable for sending alert emails. Microsoft Teams is recommended for team visibility. Refer Gmail and Some Public SMTP app password settings.

Alert Behavior

  • CPU and MEMORY alerts are based on consecutive high/low checks, not a single spike.
  • Example: if cpuhighthreshold : "85" and cpuhighnum : "3", CPU usage must stay at or above 85% for 3 consecutive checks before an alert is sent.
  • Example: if memlowthreshold : "50" and memlownum : "30", MEMORY usage must stay at or below 50% for 30 consecutive checks before an alert is sent.
  • After a HIGH/LOW alert is sent, repeated HIGH/LOW alerts are not sent again and again while the condition stays high/low.
  • When the value goes back below threshold, a RECOVERY alert is sent.
  • Midnight IamAlive can be sent to confirm the program is still running.
CPU Usage >= 85% count [1] of [3]
CPU Usage >= 85% count [2] of [3]
CPU Usage >= 85% count [3] of [3]
  TOP1 CPU usage : PID: 3148 CPU_TIME: 3202.6 sec COMMAND: msedgewebview2.exe
  TOP2- PID: 37700 CPU_TIME: 327.5 sec COMMAND: CrossDeviceService.exe
  TOP3- PID: 27340 CPU_TIME: 157.6 sec COMMAND: explorer.exe
  TOP4- PID: 3384 CPU_TIME: 145.8 sec COMMAND:  chrome.exe
  TOP5- PID: 31372 CPU_TIME: 139.5 sec COMMAND: devenv.exe
Sending email alert ...
Email command rc=0
Sending Microsoft Teams alert ...
Teams command rc=0
Sending Telegram alert ...
Telegram command rc=0

MEMORY Usage >= 85% count [1] of [3]
MEMORY Usage >= 85% count [2] of [3]
MEMORY Usage >= 85% count [3] of [3]
  TOP1 MEM usage : PID: 3148 %MEM: 5.1 COMMAND: msedgewebview2.exe
  TOP2- PID: 27340 %MEM: 3.1 COMMAND: explorer.exe
  TOP3- PID: 134516 %MEM: 3.0 COMMAND: Photos.exe
  TOP4- PID: 141976 %MEM: 1.9 COMMAND: Photos.exe
  TOP5- PID: 37700 %MEM: 1.8 COMMAND: CrossDeviceService.exe
Sending email alert ...
Email command rc=0
Sending Microsoft Teams alert ...
Teams command rc=0
Sending Telegram alert ...
Telegram command rc=0
Wait 30 seconds for next time check .....
CPU Usage >= 85% Still HIGH (alert already sent)
MEMORY Usage >= 85% Still HIGH (alert already sent)

Trial Mode Limits

ItemTrial Limit
Email alerts2 per day
Microsoft Teams alerts2 per day
Telegram alerts2 per day
IamAlive1 per day
Licensed mode removes the above Trial limits.

Command Reference

CommandDescription
cpualertRun in foreground mode.
cpualert -startStart in background mode.
cpualert -stopStop background process.
cpualert -statusCheck whether the monitor is running.
cpualert -checkValidate config file format. Use this first to catch = and missing keys.
cpualert -testSend test Email, Microsoft Teams, Telegram, and Smartbooth SMS alerts to verify configuration.
cpualert -probePrint machine probe information.
cpualert -licenseinfoShow current license status.
cpualert -sSilent mode.
cpualert -h / cpualert --helpShow command help and usage summary.

Recommended command flow: edit config, run cpualert -check and cpualert -test, then use cpualert -start for background monitoring.

Recommended Deployment

  • Install in a fixed folder such as CPUAlert.
  • Keep cpualert, license.dat, and config files in the same folder.
  • Use a stable SMTP account.
  • Test with lower thresholds first to verify Email, Microsoft Teams, Telegram, and Smartbooth SMS alerts are working correctly.

Troubleshooting

No Email Alert

  • Check SMTP server, account, password, and firewall rules.
  • Confirm built-in curl is available by running curl --version.
  • Review cpualert_log.txt.
  • Check console output for Email command rc=0 or non-zero return code.

No Telegram Alert

  • Check token and chat_id.
  • Ensure the bot has permission to message the target chat or group.
  • Confirm built-in curl is available by running curl --version.
  • Check console output for Telegram command rc=0 or non-zero return code.

No Microsoft Teams Alert

  • Check teams_webhook in cpualert_notify.txt.
  • Make sure the webhook URL is complete, on one line, and enclosed in double quotes.
  • Confirm the Power Automate flow run history shows success.
  • Confirm built-in curl is available by running curl --version.
  • Run cpualert -test and check console output for Teams command rc=0.

Alert Sent Too Early

  • Check cpuhighnum, memhighnum, cpulownum, and memlownum.
  • These values mean consecutive checks, not total checks since startup.

Still in Trial Mode

  • Confirm license.dat is in the same folder as cpualert.
  • Run cpualert -licenseinfo to check the reason.

curl Not Found

  • This package does not include curl.
  • Run curl --version in Command Prompt or terminal.
  • If curl is not available, use a Windows/Linux version that includes built-in curl.

V2.0 — Windows and Linux

Use the new cpualert_notify.txt configuration for SMTP, Teams, Telegram and Smartbooth SMS. Migrate your previous notification settings to this file. Email messages preserve line breaks so the time, host, failure details and process rows remain readable.

Smartbooth SMS + Email

Register at smartbooth.com for free SMS testing. Put your own account settings in the product's _notify.txt file. Multiple phone numbers and email addresses are comma-separated. SMS delivery works independently of SMTP.

sms_url : "https://www.smartbooth.com/smartalert/alert.php"
sms_account : "[email protected]"
sms_password : "your-password"
sms_phone : "+10000000001,+10000000002"
sms_email : "[email protected]"

Prefix unused settings with *. The downloadable templates disable notification channels until configured. Run -check first. -test sends real messages to configured recipients.

Trial Mode

Trial notifications display [Trial Mode]. Email, Teams and Telegram trial alerts are limited to two per channel per day; IamAlive is limited to one per day. PingAlert and PortAlert trial monitoring is limited to two targets. Windows SMS trial allows two successful deliveries per day. Linux SMS trial allows two attempts, persisted in .alert_sms_trial_state. A valid license removes trial restrictions; application capacity and SMS service charges still apply.

CPUAlert health checks

V2.0 adds disk free-space checks, required process/service checks, failure details and Health OK recovery messages alongside CPU/memory thresholds and top-five process reports. Windows GPU health checks display-adapter device status; Linux optionally checks NVIDIA temperature and query failures using nvidia-smi. These checks do not replace the separate GPUAlert product.

Windows: cpualert_setup.txt

health_enabled : "yes"
health_disk : "C:\"
health_disk_min_free : "10"
health_fail_num : "3"
*health_services : "Spooler,W32Time"
*health_processes : "myserver.exe"
*health_gpu : "yes"

Linux: cpualert_setup.txt

health_enabled : "1"
health_disk : "/"
health_min_free : "10"
health_count : "3"
health_temperature : "90"
health_gpu : "0"
*health_process : "nginx"
*health_service : "nginx.service"

Windows accepts comma-separated service/executable names. Linux checks one exact process name and one systemd service; enable health_gpu only where NVIDIA nvidia-smi is available. Consecutive failure counts suppress transient failures. Linux ./cpualert -healthcheck prints a read-only health report (exit 0 healthy, 1 failure).

Installation and license activation

Download the matching Windows or Linux x86-64 ZIP and extract into a dedicated writable directory. Stop the old instance before replacing files and back up your existing settings and license. On Windows, open Command Prompt in that directory and use cpualert.exe. On Linux, change into that directory, run chmod +x cpualert, and prefix commands with ./. Make curl available; PingAlert on Linux also requires ping. No license.dat is included in the trial download.

./cpualert -check
./cpualert -probe > probe.txt
./cpualert -licenseinfo
./cpualert
# Verify live output, then press Ctrl+C to exit foreground mode.
./cpualert -start
./cpualert -status
./cpualert -stop

After purchasing, send the product, operating system and probe.txt to Smartbooth for issuance. Put the supplied license.dat in the application directory. Windows and Linux use different product codes and cannot share one license file. Linux V2 uses Ed25519 licenses; older FNV licenses require reissuance. A node license binds to machine identity and MAC; site/portable licenses follow their signed expiration and product restrictions. Keep configuration values quoted using key : "value".

Licensing and prices (USD)

Permanent licenses: Single Tool $49; Any 2 Licenses $89; Complete Bundle $119. A single license covers one product on one host and one operating system. CPUAlert for Windows and CPUAlert for Linux count as two licenses, even on the same physical machine. The Complete Bundle covers CPUAlert, PingAlert and PortAlert on the same host and OS. Permanent licenses include the purchased version forever, plus one year of updates and general email support; later updates/support are optional and quoted separately.

Annual Site plans include all three tools: Small $299/year for up to 10 host/OS installations; Standard $999/year for up to 50; Large $2,499/year for up to 200. Windows and Linux installations can be mixed; each host/OS installation counts separately, including virtual machines. Deployments may be reassigned within the site allowance during the term. Annual plans use one payment for one year and manual renewal, with no automatic recurring charge. Remote IP addresses and ports monitored by PingAlert/PortAlert do not count as installations; application capacity limits still apply. GPUAlert is sold separately. SMS credits and delivery charges are separate.

View plans and buy with PayPal