This week The Register reported that a US watchdog has opened a probe into Tesla's Cybercab self-certification — "wheels turning on the road and in government." Strip away the EV drama and the core question is governance: should the company selling the product be the same entity certifying that it's safe?
If you run servers for a living, that question should sting. Because your monitoring stack almost certainly works exactly this way. Every tool in it certifies its own slice of reality, nothing verifies the whole, and the only independent auditor is Karen in Accounts Receivable opening a ticket that says "can't save invoices, is the server down?"
Every Tool Grades Its Own Homework
Look at the typical mid-size environment — or a typical MSP client — and count the self-certifiers:
- A ping/uptime checker that certifies ICMP reachability. When IIS hangs and a w3svc worker process pegs a core while HTTP.sys keeps answering on port 80, the dashboard is green. The site is dead. The dashboard doesn't know.
- A server agent that certifies the agent is alive. When the agent service crashes or the WMI repository corrupts, you get silence — and most teams never configured "no data = alert," so silence reads as healthy.
- An APM tool, owned by the dev team, that certifies only the transactions someone remembered to instrument. The new reporting endpoint that calls a legacy COM component isn't in the map. Green dashboard, hung requests.
- An RMM — Ninja, ConnectWise, Datto — doing endpoint management with monitoring bolted on as a separate module.
- A standalone helpdesk — ServiceNow, Freshservice, HaloPSA, ConnectWise Manage — that certifies what users report, twenty to forty minutes after the fact.
Five tools, five dashboards, five definitions of "fine." None of them certifies the actual chain users depend on: switch → hypervisor → VM → service → transaction. In most shops, that verification simply does not exist.
What It Costs You in Real Numbers
Detection dominates MTTR, and nobody measures it. Real scenario: a file server's data volume starts filling at 2% a day. The 85% warning went to a shared mailbox nobody has monitored since the admin who set it up left in 2023. Nine days later the volume hits 100% at 09:40. First user ticket: 09:52. Tech actually looks at it: 11:05. Time to fix once a human saw it: 12 minutes. The outage was not the 12 minutes. The outage was the nine days of nobody verifying anything independently.
Alert fatigue trains your team to ignore the alarm. Three monitoring tools plus an RMM easily produce 300+ emails a week to a distro list, two Slack channels, and an SMS gateway. Techs build mental spam filters to survive. So the night "SQL Agent not running" arrives sandwiched between 40 "Backup completed with exceptions" notices, it gets filtered too. That is how 2am outages become 8am apologies.
MSP math is worse. Per client: an uptime portal tab, an RMM tab, a helpdesk tab, documentation, and two vendor portals. Times 15 clients. Twelve tabs across five tools just to answer "is anything wrong anywhere?" — that's the job now, and it's the burnout engine. When everything is your responsibility and nothing is your visibility, techs stop looking proactively. Why would they? The tools don't agree with each other.
SLA reporting is fiction. Monitoring says the fault began at 09:40. The helpdesk says the ticket was opened at 09:52 with first response at 10:30. Two systems, two timelines, two truths — and your quarterly SLA report reconciles neither unless someone spends a day in Excel stitching CSV exports together.
Why does this happen? Not negligence — architecture. RMMs were built for endpoint management. APM was built for developers. Helpdesks were built for intake. They share no data model, so integration is webhooks, CSV exports, and Zapier zaps that silently break (and, fittingly, self-certify as working). Per-probe licensing pushes teams to under-deploy checks. So every tool keeps grading its own homework, and nobody checks the grader.
How AlertMonitor Ends Self-Certification
AlertMonitor replaces the patchwork with one agent, one data model, and one alert stream covering servers, services, applications, Windows workstations, scheduled tasks, and network devices — monitored in real time from a single pane.
Here is what changes, concretely:
- Intelligent alerting instead of five inboxes. One stream with deduplication, correlation, and severity-based routing. Disk hits 90% and the on-call tech is paged in seconds. A failed switch uplink that would have fired 14 "server down" alerts in other tools becomes one incident with the root cause attached — not 15 pages at 2am.
- The helpdesk lives inside the monitoring, not next to it. An alert auto-creates a ticket carrying the host, metric, threshold, and timeline. The SLA clock starts at detection, not at the first user complaint. When users report the same issue, their tickets merge into the incident instead of spawning duplicates.
- RMM is built in. From the alert you open a remote session, restart the service, or run a script — no tab switching, no VPN, no "I'll get to a workstation."
- Patch status lives on the same host record. "Service crashed Tuesday" sitting next to "not patched since March" turns a mystery into a root cause in about ten seconds.
- Topology mapping provides the independent view. The alert shows the dependency path, so you fix the failed switch instead of rebooting the 14 servers behind it.
Run the disk scenario again the AlertMonitor way: the volume crosses 80%, a warning fires and a ticket is auto-created with the free-space trend. It crosses 90%, severity escalates, the on-call tech is paged with full context, remediates from the alert, closes the ticket. Detection: under a minute. Users never find out. Karen never opens a ticket. The quarterly report shows one incident, detected in 54 seconds, resolved in 19 minutes, zero user-reported tickets.
Practical Steps: De-Self-Certify Your Stack This Week
1. Audit what each tool actually certifies (30 minutes, today). List every monitoring tool and the exact question it answers. Then write a second list: what none of them answers. Windows service states? Scheduled task results? Internal servers the ping checker can't reach? Disk trends? That second list is your exposure — it is what becomes next quarter's "how did we not know?"
2. Run the checks your stack probably isn't running. Start with these.
Disk free space across your servers — anything in this output is under 15% free:
$servers = "SQL01","FS01","APP01","DC01","TS01"
Get-CimInstance -ComputerName $servers -ClassName Win32_LogicalDisk -Filter "DriveType=3" |
Select-Object PSComputerName, DeviceID,
@{N='SizeGB';E={[math]::Round($_.Size/1GB,1)}},
@{N='FreeGB';E={[math]::Round($_.FreeSpace/1GB,1)}},
@{N='FreePct';E={[math]::Round($_.FreeSpace/$_.Size*100,1)}} |
Where-Object { $_.FreePct -lt 15 } |
Sort-Object FreePct
Verify critical services and restart them locally:
Invoke-Command -ComputerName APP01 -ScriptBlock {
$critical = "MSSQLSERVER","W32Time","Spooler"
foreach ($name in $critical) {
$svc = Get-Service -Name $name -ErrorAction SilentlyContinue
if ($svc -and $svc.Status -ne 'Running') {
Write-Output "$name is $($svc.Status) - restarting"
Start-Service -Name $name
} else {
Write-Output "$name OK ($($svc.Status))"
}
}
}
Check the scheduled task everyone assumes is working — LastTaskResult 0 means success, 267009 means still running, anything else is a failure nobody reported:
Get-ScheduledTask -TaskName "Nightly-Backup" |
Get-ScheduledTaskInfo |
Select-Object TaskName, LastRunTime, LastTaskResult, NextRunTime
Quick Linux triage from a jump host:
#!/bin/bash
# Fast triage: is the critical service up, and is the disk about to fill?
systemctl is-active --quiet nginx || echo "CRITICAL: nginx is down"
USE=$(df --output=pcent / | tail -1 | tr -dc '0-9')
if [ "$USE" -gt 90 ]; then
echo "CRITICAL: root filesystem is ${USE}% full"
fi
And a patch-compliance spot check to find the stragglers (Get-HotFix misses some update types, but it is enough to catch the server nobody touches):
$cutoff = (Get-Date).AddDays(-45)
Invoke-Command -ComputerName "SQL01","APP01","TS01" -ScriptBlock {
Get-HotFix | Sort-Object InstalledOn -Descending | Select-Object -First 1
} | Select-Object PSComputerName, HotFixID, InstalledOn |
Where-Object { $_.InstalledOn -lt $using:cutoff }
If any of these scripts output surprises, each surprise is a blind spot your current stack self-certified as fine.
3. Consolidate the alert stream. In AlertMonitor: point monitors at your hosts, set thresholds (warn at 80% disk, critical at 90%; any critical Windows service stopped = critical), attach one escalation policy, and enable auto-ticketing. Then retire the distro list. One stream, one rotation, one place to look.
4. Let detection start the SLA clock. Because alerts create tickets with full context, your SLA metrics finally reconcile — one timeline from detection to resolution, not two systems telling different stories.
5. Review weekly. Track mean detection time and the number of incidents resolved before any user noticed. If detection time is not trending toward zero, you still have tools grading their own homework somewhere.
The Cybercab probe will take months — regulators move slowly. Your outages do not, and neither does Karen in Accounting. Independent verification of your infrastructure should not wait for a user ticket to open the investigation.
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.