Replace poll-only SolarWinds with a self-hosted Prometheus + Grafana stack, make an availability-zone failure a shrug instead of an outage, and fix the ServiceNow change automation that keeps missing “Implementing.” Built as code, documented by itself.
Tier-1 workloads in West Europe lived entirely in AZ1 — one fault domain. AZ1 had a platform event; everything went hard-down until manual rebuild.
100% SolarWinds: 15-min polling, no webhooks, per-element licence that rises yearly, shallow on K8s / Azure / network. Never surfaced the zone risk.
ServiceNow branched on typed status text (“Implementing”, typos) and record names. Changes mis-routed or missed; renames made duplicates.
state + approval, keyed on sys_id.Range $45k–$215k. Net-positive from year one once the parallel-run window closes.
| Line item | Today | Proposed |
|---|---|---|
| Monitoring licence + support | $120–250k | $0 |
| Monitoring compute (3 regions + dev) | incl. | $30–60k |
| Metrics storage / long-term | incl. | $5–15k |
| Zone-redundancy uplift (tier-1 only) | $0 | $20–50k |
| Ops effort | vendor + admin | 0.5–1.0 FTE |
| Net recurring · monitoring only | ≈ −$130k |
Zone-redundancy is a deliberate resilience investment shown as a separate line — not folded into the saving. One avoided AZ1-class outage across a 2,000-customer estate dwarfs the uplift. *All figures are documented order-of-magnitude ranges; midpoints are illustrative and carry a [validate with finance] flag.
Alert names kept as <service>-<severity>-<symptom> so runbook links survive migration. Parallel-run: stack goes up beside SolarWinds, cut over per service, decommission SolarWinds last. China (21Vianet) runs a fully isolated stack — no cross-border telemetry, ever; Brazil metrics stay in-region under LGPD.
Enforced in code: modules/aks fails the Terraform plan if a tier-1 resource has < 2 zones. A Prometheus alert flags any single-zone tier-1 workload. Applies to tier-1 only — dev & ephemeral are exempt.
sys_id