Overview
Maintenance windows suppress alerting across the MicroGemLabs platform during planned work โ deployments, infrastructure migrations, certificate renewals, scheduled DB maintenance โ so your on-call rotation doesn't get paged for noise you already know about. Monitoring keeps running and data keeps recording for post-window analysis; only the alert routing pauses.
How to configure a maintenance window
All maintenance windows are managed at Ops โ Maintenance (/maintenance). There are two paths depending on whether you need to start immediately or schedule ahead.
Quick Suppress (start now)
Use the Quick Suppress panel for unplanned or "starting in the next 5 minutes" maintenance. One click, no future-time math.
1. Pick a scope โ All Products, or a specific product (PulseGuardPlus, CronKeeper, LogVault, CertGuard, CronRunner, HookRelay).
2. Pick a duration โ 15m, 30m, 1h, 2h, or 4h. The window auto-ends at the chosen time.
3. Optionally type a reason โ shows up on the active-window banner and in audit history for postmortems.
4. Click Suppress. An amber banner appears across the top of the Maintenance page showing the active window with a countdown.
Schedule a Window (start later)
Use the Schedule Window form to plan ahead for a known maintenance time.
1. Set start time and end time.
2. Choose scope (see below).
3. Configure the two independent toggles:
- Suppress alerts โ when on, no incidents are created and on-call isn't paged during the window
- Exclude from baselines โ when on, data collected during the window is dropped from anomaly-detection baseline computations
4. Optionally type a reason for the audit trail.
5. Save. The window sits inactive until its start time, then auto-activates.
Both toggles default to on, but they're independent โ you can keep alerting active while excluding baseline noise (useful for partial deployments where you still want page-worthy outages to fire), or suppress alerts while keeping baselines intact (useful for short scheduled blips that shouldn't shift your baseline).
Scope levels
The window's scope decides what gets suppressed. More-specific scopes override less-specific ones โ a resource-level window beats a global window for that resource.
| Scope | What's suppressed | When to use |
|---|---|---|
| Global | Every product, every resource | Full infrastructure maintenance, regional cutover |
| Product | All resources in one product (e.g. all PulseGuardPlus monitors) | Deploying or migrating one service product |
| Resource | One specific monitor, check, log stream, domain, scheduled job, or webhook endpoint | Migrating a single database server or rotating one cert |
Resource-level windows are the right default for routine work โ global suppression is a sledgehammer and easy to forget to lift.
Active window management
Active windows show as amber banners at the top of the Maintenance page. Each banner has:
- Remaining time โ counts down to auto-end
- Extend โ
+30mand+1hbuttons if maintenance is running long; click as many times as needed - End Now โ closes the window immediately and resumes alerting (use when maintenance finishes early)
Windows complete automatically when their end time arrives โ a background job checks every minute and flips status without anyone needing to remember.
What still happens during a maintenance window
Suppression only stops the alert path. Everything else keeps running:
- Monitoring continues โ checks still run, pings are still recorded, logs still ingest, certs still get probed
- Incident data still records to history (if "Suppress alerts" is on, no incident row is created โ but the underlying check results are saved)
- Status pages can still reflect the maintenance window (configure a notice on the public status page separately)
- Postmortem source data is preserved โ you can review what happened during the window after it ends
- Anomaly detection still computes Z-scores, but data from the window is dropped from baselines if "Exclude from baselines" is on
Common patterns
+30m.
Database migration โ Product-level window on PulseGuardPlus + LogVault (the products that watch the DB). Or a resource-level window if you have a specific "DB" monitor.
Certificate renewal โ Resource-level window on the specific domain in CertGuard. Short duration (30m) since the swap is fast.
Regional incident drill / chaos test โ Global window. Reason: "fire drill โ ignore alerts for next 2h." End Now button when the drill wraps.
Planned cron job downtime โ Resource-level window on the specific CronKeeper check. Otherwise the missed-ping detection fires.
Recurring weekly batch โ Schedule a window with both toggles on for the recurring time slot. (Recurring schedules are a future feature; for now create per-week.)What NOT to use maintenance windows for
- Persistent muting โ if a monitor is flapping and needs to be silenced indefinitely, disable the monitor rather than running indefinite maintenance windows
- On-call coverage gaps โ if no one's on call for a period, that's a schedule problem, not a maintenance-window problem (see the On-Call User Guide)
- One-off alert suppression โ if you just need to acknowledge one noisy alert, acknowledge that incident directly
Quick reference
| What | Where |
|---|---|
| Start a window now | /maintenance โ Quick Suppress |
| Schedule a future window | /maintenance โ Schedule Window |
| Extend a running window | /maintenance โ active banner โ +30m / +1h |
| End early | /maintenance โ active banner โ End Now |
| See past windows | /maintenance โ history table |
| Disable a monitor instead | /pulse/dashboard โ monitor โ Disable |