Device Monitoring
The RMM agent continuously collects performance and health data from every enrolled device and streams it to the RMM console. All monitoring is passive — no polling from the server side.
Monitored Metrics
Performance Metrics
| Metric | Collected | Notes |
|---|---|---|
| CPU Usage | Every 60s | Aggregate and per-core |
| RAM Usage | Every 60s | Used, available, commit |
| Disk Usage | Every 5 min | Per volume, used/free/total |
| Disk I/O | Every 60s | Read/write MB/s and IOPS |
| Network Throughput | Every 60s | Per interface, inbound/outbound |
| Uptime | Continuous | Time since last boot |
System State
| Data | Platform | Notes |
|---|---|---|
| Running Processes | All | PID, name, CPU%, RAM MB |
| Windows Services | Windows only | Name, status (running/stopped/disabled) |
| macOS Launch Daemons | macOS only | Name, status |
| Windows Event Logs | Windows only | System, Application, Security (errors/warnings) |
| Installed Applications | All | Name, version, install date |
| Device Health Score | All | Composite score 0–100 |
Real-Time Performance Graphs
Click any device in the Devices list to open the Device Detail view. The Performance tab displays live graphs for:
- CPU usage (current + 24-hour history)
- RAM usage (current + 24-hour history)
- Disk usage per volume (current + 7-day trend)
- Network throughput (current + 24-hour history)
Graphs update every 60 seconds. Hover over any data point to see the exact value and timestamp.
Historical Data Retention
| Data Type | Retention |
|---|---|
| Real-time metrics (60s granularity) | 7 days |
| Hourly aggregates | 90 days |
| Daily aggregates | 1 year |
| Event log entries | 30 days |
| Alert history | 1 year |
Device Health Score
Each device is assigned a health score from 0 to 100, updated every 5 minutes. The score factors in:
- Patch compliance — Is the device fully patched? (30% weight)
- Active alerts — Are there unresolved warning/critical alerts? (30% weight)
- Performance — Is CPU or RAM consistently above threshold? (20% weight)
- Agent connectivity — Has the agent checked in recently? (20% weight)
| Score Range | Status | Color |
|---|---|---|
| 90–100 | Healthy | Green |
| 70–89 | Warning | Yellow |
| 50–69 | Degraded | Orange |
| 0–49 | Critical | Red |
The fleet health score on the Dashboard is the average of all device health scores in your tenant.
Process Monitoring
Navigate to a device's Processes tab to see all running processes with:
- Process name and PID
- CPU usage (%)
- RAM usage (MB)
- User context (SYSTEM, service account, or logged-in user)
- Start time
You can sort by CPU or RAM to quickly find resource-hungry processes. To terminate a process, click the Kill icon (requires rmm.devices.execute permission).
Service Monitoring
Windows Services
The Services tab on Windows devices shows all services with their current state:
| State | Meaning |
|---|---|
| Running | Service is active |
| Stopped | Service is not running |
| Disabled | Service is disabled and will not auto-start |
You can start, stop, or restart a service directly from the console. Service state changes are logged in the audit trail.
To alert on a service stopping, create an Alert Rule with type State Change and target the service name.
macOS Launch Daemons
The Services tab on macOS devices shows launchd daemons and their load status. Manual start/stop of daemons is not supported from the RMM console — use a Remote Command with launchctl.
Event Log Monitoring (Windows)
The Event Logs tab surfaces recent entries from the Windows Event Log:
- System — Hardware events, driver errors, OS events
- Application — Application crashes, errors from installed software
- Security — Logon events, privilege escalation (requires agent elevation)
Entries are filtered to errors and warnings by default. To alert on specific event IDs, create an Alert Rule with type Event Log Match.
Custom Metric Collection
For metrics not collected out of the box, write a script that outputs a JSON payload:
{
"metric": "custom.database.active_connections",
"value": 42,
"unit": "count"
}
Schedule the script to run every 5 minutes. The custom metric appears in the device detail view and can be targeted by alert rules using the custom.* metric namespace.