AI Made Your Devs Faster. Nobody Made Your Monitoring Smarter.
A recent InfoWorld article revisits Hodges's law — "junk expands to fill the space allotted for it" — and C. Northcote Parkinson's version: work expands to fill the time allotted. The author's question is about agentic coding: if AI makes developers five times more productive, the backlog simply absorbs the gain. You fix five bugs a day instead of one, and the queue refills by Friday.
Swap "developer" for "sysadmin," "help desk tech," or "MSP NOC engineer," and the law is even crueler. Every monitoring tool you add expands its alert stream to fill the console. Every hour automation saves you gets eaten by triage across five disconnected dashboards. And the environment keeps growing underneath: more VMs, more Windows services, more scheduled tasks, more firewalls, more client sites — more junk filling more space.
Meanwhile, the detection gap has not moved in a decade. Users still find outages before your monitoring does. The on-call tech still gets paged at 2 a.m. for a flapping switch port while the D: drive on FILE01 quietly fills to 100% in the dark. If that sentence made you wince, this post is for you.
The Problem in Depth
Your stack was never designed to talk to itself
The typical mid-size IT shop or MSP runs some version of this:
- Server monitoring: Nagios, Zabbix, PRTG, or SolarWinds, with WMI/SNMP checks configured by someone who left in 2019
- Uptime checks: UptimeRobot or Pingdom polling from outside the firewall
- RMM: NinjaOne, ConnectWise Automate, or Datto for endpoints and remediation
- Helpdesk: ConnectWise Manage, HaloPSA, Freshservice, or Jira Service Management
- Patching: WSUS, or whatever the RMM does, on a completely different schedule
Five tools, five agents or collectors, five databases, five escalation configurations. The architecture is the problem: there is no shared incident object. The alert in Nagios and the ticket in ConnectWise Manage have no relationship in any database. Correlation has to happen inside a human's head, at 2 a.m., from memory.
And because the console has unlimited space, thresholds multiply and never get pruned — Hodges's law again. Industry surveys consistently put non-actionable alerts well above half of total alert volume. The on-call rotation learns that most pages are noise, so response times slide — exactly when the real page arrives.
A scenario every sysadmin has lived
FILE01 runs a D: volume — user shares and shadow copies — growing about 1.2% per day. The monitoring rule, set in 2018, fires when disk usage exceeds 95%.
- Thursday 14:12 — the volume crosses 95%. The alert lands in a console nobody genuinely watches on weekends, because 80% of weekend alerts are noise.
- Saturday 03:41 — disk hits 100%. The monitoring agent runs on that same volume. It dies with the disk. Silence.
- Saturday 04:00 — the Veeam job fails on a full volume. Nothing monitors backup job results. Nobody knows.
- Sunday — no users, no tickets. The outage clock is running and nobody has started it.
- Monday 08:52 — first ticket: "can't save to the shared drive." By 09:30 there are fourteen duplicate tickets, three executives are emailing the IT director, and someone is copying files to a USB stick.
Real time-to-detect: roughly 43 hours. What the helpdesk SLA report will eventually claim: an 11-minute MTTA and a green score — because the clock only starts when a ticket exists. The monitoring data and the ticket data live in different systems, so nobody can prove anything.
What it actually costs
- Downtime: ITIC surveys put the cost of one hour of downtime above $300,000 for large enterprises. For a 200-person company, an unmonitored weekend outage is a full day of payroll spent watching "cannot connect" dialogs.
- Ticket pollution: 20–30% of tickets during any outage are "is it down?" — zero-resolution noise that inflates queue metrics and buries the real work.
- People: on-call dread, quiet quitting of the rotation, and the MSP version — a tech with 12 browser tabs across 5 tools just to triage one client's network.
- The Parkinson tax on remediation: the minutes scripting or AI saves on the fix get reinvested — by law — into swivel-chair correlation between consoles that should have been one console.
How AlertMonitor Solves This
One agent, one pane of glass, one alert stream
AlertMonitor collapses the five-tool stack into one platform: infrastructure and server monitoring, RMM, integrated helpdesk, patch management, network topology mapping, and intelligent alerting. Servers, Windows services, scheduled tasks, event logs, printers, switches, firewalls, and workstations are monitored by a single agent framework feeding one alert stream — with severity routing, deduplication, flapping suppression, maintenance windows, and escalation chains.
The workflow change is concrete:
| The old fragmented way | The AlertMonitor way |
|---|---|
| Static "95% used" alert fires into an unwatched console | Trend-based forecasting raises "D: full in ~3 days" at 15% free — as a medium alert with a ticket auto-created |
| Disk hits 100%, local agent dies, total silence | Host-down watchdog on the platform side flags the dead agent within seconds and escalates after 5 minutes without acknowledgment |
| Monday: 14 duplicate user tickets, three management escalations | One incident ticket linked to the originating alert; user-reported tickets auto-merge into it |
| SLA report says green because the clock started at 08:52 | SLA clock starts at detection; MTTR reflects reality because alert, ticket, and remediation share one timeline |
| Fix requires RMM login, then a helpdesk update, then the patch tool | Restart the service, kill the hung process, or push the pending patch directly from the alert |
What the team feels in week one
- Detection drops from "whenever a user calls" to seconds. That is the entire game.
- Triage drops from cross-referencing four consoles to reading one screen: the alert, the affected host, its topology dependencies (yes, FILE01's full volume is why DFS and the backup job are angry), and the linked ticket.
- Reporting becomes honest. When monitoring, helpdesk, and patching write to one dataset, MTTR and SLA numbers are defensible in front of a CIO or a client QBR.
- The MSP math: one platform per client environment instead of five means per-tech client load goes up without quality going down. That is margin you can actually bank.
Practical Steps
1. Audit your monitoring coverage tonight
You cannot alert on servers your monitoring doesn't know exist. Sweep AD and check for the agent:
# List all domain servers and check whether the AlertMonitor agent is installed
Get-ADComputer -Filter 'OperatingSystem -like "*Server*"' -Properties IPv4Address |
ForEach-Object {
$svc = Get-Service -ComputerName $_.Name -Name 'AMAgent' -ErrorAction SilentlyContinue
[PSCustomObject]@{
Server = $_.Name
IP = $_.IPv4Address
AgentStatus = if ($svc) { $svc.Status.ToString() } else { 'NOT INSTALLED' }
}
} |
Export-Csv "$env:USERPROFILE\Desktop\monitoring-coverage-audit.csv" -NoTypeInformation
Every row that says NOT INSTALLED is next Saturday's outage, waiting politely for its moment.
2. Run the disk sweep your monitoring tool should have run
$servers = 'DC01','SQL01','FILE01','APP01','RDS02'
Get-CimInstance -ComputerName $servers -ClassName Win32_LogicalDisk -Filter 'DriveType=3' |
Select-Object SystemName, DeviceID,
@{N='SizeGB';E={[math]::Round($_.Size/1GB,1)}},
@{N='FreeGB';E={[math]::Round($_.FreeSpace/1GB,1)}},
@{N='FreePercent';E={[math]::Round(($_.FreeSpace/$_.Size)*100,1)}} |
Sort-Object FreePercent |
Format-Table -AutoSize
Anything under 15% free gets a growth check today — WinSxS, shadow storage, log growth — not after it pages someone.
3. Verify the services end users actually notice
# Confirm critical services are running and start any that are not
Invoke-Command -ComputerName APP01,SQL01 -ScriptBlock {
Get-Service -Name 'W3SVC','MSSQLSERVER' |
Where-Object Status -ne 'Running' |
Start-Service -PassThru |
Select-Object PSComputerName, Name, Status
}
In AlertMonitor, these same services become monitored objects with automatic restart and escalation — so this becomes a one-time baseline instead of a weekly ritual.
4. Check the silent killers: failed scheduled tasks
Failed scheduled tasks — backups, maintenance plans, antivirus scans — generate no user tickets and no service-down alerts. They just quietly stop happening.
# Find scheduled tasks that ran and failed in the last 24 hours
Get-ScheduledTask -CimSession 'SQL01' |
Where-Object State -ne 'Disabled' |
Get-ScheduledTaskInfo |
Where-Object { $_.LastTaskResult -ne 0 -and $_.LastRunTime -gt (Get-Date).AddDays(-1) } |
Select-Object TaskName, TaskPath, LastRunTime, LastTaskResult |
Sort-Object LastRunTime -Descending
AlertMonitor monitors scheduled task results natively, so a failed 02:00 backup fires an alert at 02:01 — not during the next restore attempt.
5. Linux servers count too
#!/bin/bash
# Quick sweep: flag filesystems above 85% and any dead critical service
df -h --output=source,pcent,target | awk 'NR>1 && int($2) >= 85 {print "DISK: "$1" at "$2" mounted on "$3}'
for svc in nginx sshd postgresql; do
systemctl is-active --quiet "$svc" || echo "SERVICE DOWN: $svc"
done
6. Enforce alert hygiene — in one place
Once the stack is unified, prune with Parkinson in mind: delete every threshold older than 12 months unless someone can name the incident it caught; set dedupe windows so one failing switch produces one alert instead of four hundred; define escalation chains (5 minutes unacknowledged means the next tier gets paged); and review MTTD/MTTR monthly from the single dataset. Alerts will still expand to fill the space you give them — so give them less space, and make every one of them countable.
The Takeaway
The InfoWorld article's point stands: AI productivity gains get absorbed by expanding work. Agentic coding means more software ships faster — more services, more scheduled jobs, more failure modes landing on your infrastructure every sprint. You cannot monitor that expansion with a stack that was already failing at last year's load, and you cannot fix it by adding a sixth tool, because the noise will simply expand to fill it.
Collapse the space. One agent, one alert stream, one timeline from detection to ticket to resolution. That is how seconds-level response actually happens — and how your team finally gets credit for the outages it caught before users did.
Related Resources
AlertMonitor Infrastructure & Server Monitoring AlertMonitor Platform Overview Book a Demo Infrastructure & Server Monitoring Resources
Is your security operations ready?
Get a free SOC assessment or see how AlertMonitor cuts through alert noise with automated triage.