---
title: "Maintenance windows, heartbeat monitors and nameserver checks"
description: "Maintenance windows and alert grouping so one outage pages once, decline, snooze and page someone by hand, heartbeat monitors for cron jobs, checks for every nameserver of a zone, and Discord and Slack subscribers on status pages."
url: https://spectate.net/changelog/maintenance-windows-heartbeats-and-nameserver-checks
last_updated: 2026-11-09
---

# Maintenance windows, heartbeat monitors and nameserver checks

> Maintenance windows and alert grouping so one outage pages once, decline, snooze and page someone by hand, heartbeat monitors for cron jobs, checks for every nameserver of a zone, and Discord and Slack subscribers on status pages.

This week was mostly about pages that shouldn't go out. Planned work, a flapping monitor and a provider outage that takes down 40 monitors at once all paged people more than they should. Now they page once, or not at all. We also added heartbeat monitors for cron jobs, better DNS checks and two new ways to follow a status page.

## Maintenance windows

Planned work no longer pages anyone. Create a window in **Alerting → Maintenance windows**, once or every week, for example Sundays 02:00 to 04:00 in `Europe/Amsterdam`. A window covers the whole team, or the monitors, hosts, domains, alert sources and projects you pick.

Checks keep running during the window. A new alert on something the window covers shows as **Muted** and pages nobody. If the problem ends during the window, the alert resolves and nobody hears about it. If it still fires when the window ends, the escalation starts then. By default, failed checks during the window don't count as downtime, so your uptime and status pages stay clean. See [maintenance windows](https://docs.spectate.net/alerting/maintenance-windows).

![The maintenance windows page with three windows: a Kubernetes node upgrade that is running for one project, a payment provider migration scheduled for 12 November, and a weekly database maintenance on Sundays from 02:00 to 04:00 in Europe/Amsterdam. Each is not counted as downtime.](https://spectate.net/images/changelog/2026-11-09-maintenance-windows.webp)

## One outage, one page

An escalation path can now group alerts. Turn on **Group alerts** in the path settings, pick a window such as 5 minutes, and choose what to group by: everything on the path, the same project, the same monitor, host or domain, or the same label. The first alert pages. Alerts that follow wait with it, and its message in Slack, Discord or Telegram shows "+3 more alerts". Acknowledge the first alert and you acknowledge the group. A more severe alert never joins a group, so it always pages. See [group alerts](https://docs.spectate.net/alerting/escalation-paths#group-alerts).

A monitor that goes down and up a few times in a row also keeps one alert now. When it comes back, the alert waits 5 minutes as **Recovering** before it resolves. If the monitor goes down again in that time, the same alert continues, with no new notifications. Change the wait in **Team → Settings → Alert recovery**.

## Decline, snooze and page someone

Acknowledge used to be the only answer to a page. Now there are three more:

- **Not me** declines a page you can't take. Spectate doesn't page you again for that alert, and if everyone on the step declined, the next step runs at once. Use it on the alert page, in Slack, Discord and Telegram, or press 2 on a phone call.
- **Snooze** puts an alert off for 15 minutes to 24 hours. If it still fires after that, the escalation starts again from the first step.
- **Page someone** pulls in a member, whoever is on call for a schedule, or a whole escalation path. Use it on an alert, on an incident, or with `/spectate page` in Slack.

See [alerts](https://docs.spectate.net/alerting/alerts#snooze-an-alert) for the details.

![The header of a firing alert, "No data received from ams-app-01", with the Acknowledge, Snooze, Page someone and Resolve buttons.](https://spectate.net/images/changelog/2026-11-09-alert-actions.webp)

## Heartbeat monitors

Spectate can now tell you when a backup or another scheduled job stops running. Create a monitor of the type **Heartbeat** and add a call to its ping URL at the end of the job. If a ping doesn't arrive in time, Spectate fires an alert through your escalation paths. The job can also report a failure with its exit code and output, and the alert shows the first 1,000 characters.

The monitor waits for the first ping before it starts, and it understands daylight saving time, so a job at 02:30 isn't late on the night the clocks go back. A heartbeat monitor counts as one monitor on your plan. See [heartbeat monitors](https://docs.spectate.net/monitors/heartbeats).

![A heartbeat monitor called Nightly database backup that is up, expected every day with a 30 minute grace period, with its ping URL and two commands to copy: one that pings when the job succeeds, and one that also sends the exit code and output.](https://spectate.net/images/changelog/2026-11-09-heartbeat-monitor.webp)

## Every nameserver, not just the first

A DNS monitor used to ask one nameserver, so a dead `ns2` went unnoticed. Select **Check every authoritative nameserver** and the monitor asks up to 12 of them on each check. It alerts when a nameserver doesn't answer, answers without authority, gives a different answer from the others or has fallen behind on the SOA serial. It also alerts when the parent zone lists other nameservers than the zone itself, and when a DNSSEC signature is about to expire. One bad nameserver keeps the monitor up, with a separate alert. See [DNS monitors](https://docs.spectate.net/monitors/dns#check-every-nameserver-of-the-zone).

New DNS monitors now ask the authoritative nameservers by default instead of a resolver, which can answer from its cache. If you run your own nameservers, the new **Nameserver** monitor watches one server for up to 20 zones, over UDP and TCP. See [nameserver monitors](https://docs.spectate.net/monitors/nameserver).

## Follow a status page in Discord or Slack

Visitors can now send your status page updates to a channel of their own Discord server, with no Spectate account. Each incident or maintenance gets one message, and Spectate edits it as the incident changes, so the channel doesn't fill up. Visitors who use Slack get a `/feed subscribe` command for Slack's RSS app.

You choose which ways to subscribe your page offers in **Settings → Display → Ways to subscribe**: email, Discord, RSS and Atom, and Slack. You can also put the sections of a page in any order, add a link to your logo, and add a **Get in touch** button next to **Subscribe**. See [subscribers](https://docs.spectate.net/status-pages/subscribers).

## Improvements and fixes

- **Route of a failed check.** When a monitor goes down without a response, the checker traces the route to the target. The alert page shows each hop with its loss and times under **What we saw**. See [route of a failed check](https://docs.spectate.net/monitors/locations-and-checks#route-of-a-failed-check).
- **On-call shifts in your calendar.** **Add to calendar** gives a secret URL for Google Calendar, Apple Calendar or Outlook, with your own shifts or everyone's shifts on a schedule. See [on-call](https://docs.spectate.net/alerting/on-call#add-shifts-to-your-calendar).
- **Telegram in notification rules.** Spectate can page you in a Telegram chat, with an **Acknowledge** button. Link your account under **Profile** first.
- **Alerts link to their source.** The alert list and the alert page link to the monitor, host, domain or status page.
- **More in ⌘K.** The command palette opens a new maintenance window, **Page someone** and other create forms directly.
- **Today's uptime is fair.** Half an hour down early in the day no longer shows as 75% for hours. Today's figure counts the rest of the day as up.
- **Fewer false "No data received" alerts.** If many hosts across many teams go silent at once, the problem is most likely on our side, and Spectate waits up to 30 minutes before it alerts.
- **Public incidents through MCP.** AI assistants can add, change and delete the impact periods of a status page incident, also after it resolved.
- **Two new API endpoints.** `GET /v1/checker-addresses` lists the addresses that checks come from, and `GET /v1/slack-installation` returns the ID you need to create a Slack channel.
- **Fixed** the Spectate tab in Slack, which stayed blank.
- **Fixed** response time charts in alerts that drew a flat line when the threshold was far above the values.
- **Fixed** resolved replies in Slack that also showed in the channel instead of only in the thread.
- **Fixed** uptime cards on status pages that were cut off after you expanded a group, and components in a group that didn't line up with the others.

Thanks to everyone who told us which pages they could do without. Keep it coming at help@spectate.net or on our [Discord](https://discord.gg/Xs7HrmdcWj). The Spectate app for iOS and Android is still next.
