Simple and Reliable CPU/MEM Usage Monitoring Tool

CPUAlert watches system CPU and RAM usage, sends Email, Microsoft Teams, and Telegram 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:

service@smartbooth.com

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_email.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_email.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, and Telegram 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 -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, and Telegram Configuration

Edit cpualert_email.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, and Telegram alerts.

*** Email alert setting
server : "smtp://smtp.gmail.com:587"
email : "your@gmail.com"
password : "your_app_password"
from : "your@gmail.com"
to : "admin1@hotmail.com,admin2@yahoo.com"
iamalive : "admin1@hotmail.com"

*** 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_email.txt.
  5. Run cpualert -check to validate the file format.
  6. Run cpualert -test to verify Email, Microsoft Teams, and Telegram 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, and Telegram 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, and Telegram 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_email.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.