upti.my

Maintenance Windows

Schedule maintenance windows to suppress alerts and update status pages during planned downtime.

Overview

Maintenance windows let you plan downtime for your services without triggering false alerts. When you know that a service will be unavailable, for a database migration, infrastructure update, or deployment, you can schedule a maintenance window in advance. During the window, healthchecks continue to run and collect data, but alerts are suppressed and your status page shows a clear "Under Maintenance" indicator.

This keeps your team focused on the planned work instead of responding to expected downtime alerts. It also communicates transparently to your users that the outage is planned and under control.

How Maintenance Windows Work

When a maintenance window becomes active, upti.my applies two changes to the affected resources. First, all incident conditions associated with the selected healthchecks are muted. The checks still execute on schedule and results are recorded, but no notifications are sent. Second, any status page components linked to those healthchecks switch to the "Maintenance" status, which displays a wrench icon and a maintenance banner.

When the window ends, incident conditions are automatically re-enabled and status page components return to their real-time status based on the latest healthcheck results.

Creating a Maintenance Window

Navigate to the Maintenance section of your dashboard and click "Schedule Maintenance." Fill in the following fields to define your window.

FieldDescription
NameA short, descriptive title for the maintenance event (e.g., "Database Migration to v5.2").
DescriptionOptional details about the work being performed. This is shown to status page subscribers in notification emails.
Start TimeThe date and time when maintenance begins. Must be in the future when creating a new window.
End TimeThe date and time when maintenance is expected to end. The window automatically resolves at this time.
TimezoneThe timezone for the start and end times. All IANA timezones are supported (e.g., America/New_York, Europe/London, Asia/Tokyo).
Affected HealthchecksSelect one or more healthchecks whose alerts should be suppressed during the window.
Affected ComponentsSelect status page components that should display the "Maintenance" status during the window.
create-maintenance.json
{
  "name": "Database Migration to v5.2",
  "description": "Upgrading PostgreSQL from 14 to 16 with zero-downtime failover.",
  "start_time": "2026-03-01T02:00:00Z",
  "end_time": "2026-03-01T04:00:00Z",
  "timezone": "America/New_York",
  "healthcheck_ids": ["hc_api_main", "hc_api_payments", "hc_db_primary"],
  "component_ids": ["comp_api", "comp_database"],
  "notify_subscribers": true,
  "auto_resolve": true
}

Recurring Maintenance

For regular maintenance tasks, you can schedule recurring windows instead of creating them manually each time. Recurring windows support daily, weekly, and monthly schedules.

RecurrenceConfiguration
DailyRuns every day at the specified time. Useful for nightly batch processing windows or daily backup periods.
WeeklyRuns on selected days of the week. For example, every Sunday from 2:00 AM to 4:00 AM for weekly patching.
MonthlyRuns on a specific day of the month, or the first/last occurrence of a weekday. Ideal for monthly release windows.
recurring-maintenance.json
{
  "name": "Weekly Security Patching",
  "recurrence": {
    "type": "weekly",
    "days": ["sunday"],
    "start_time": "02:00",
    "duration_minutes": 120
  },
  "timezone": "UTC",
  "healthcheck_ids": ["hc_api_main", "hc_web_app"],
  "component_ids": ["comp_api", "comp_web"],
  "notify_subscribers": true
}

💡 Choosing the Right Schedule

Schedule maintenance during your lowest-traffic periods. Review your analytics to find the best window. For global services, consider rotating maintenance times across regions so that no single user group is always affected.

Subscriber Notifications

When you enable subscriber notifications for a maintenance window, upti.my sends two email notifications to all status page subscribers.

  • Pre-maintenance notification: Sent when the maintenance window is created (or a configurable time before start). Includes the name, description, start time, end time, and affected components.
  • Completion notification: Sent when the maintenance window ends or is manually resolved. Confirms that services are back to normal.

ℹ️ Notification Timing

Pre-maintenance notifications are sent immediately when the window is created if the start time is within 24 hours. For windows scheduled further in advance, the notification is sent 24 hours before the start time. You can customize this lead time in your organization settings.

Auto-Resolve

By default, maintenance windows automatically resolve when the scheduled end time arrives. This means alert suppression is lifted and status page components revert to their live status. If your maintenance finishes early, you can manually resolve the window from the dashboard to re-enable alerts ahead of schedule.

If auto-resolve is disabled, the maintenance window stays active until a team member manually marks it as completed. This is useful when the duration of the work is unpredictable and you want explicit confirmation before re-enabling alerts.

Maintenance History

All past maintenance events are recorded and available in the Maintenance History section of your dashboard. Each entry includes the name, description, scheduled time, actual duration, affected resources, and the user who created or resolved the window. This history is also visible on your public status page under the "Maintenance" tab, giving your users full visibility into past planned downtime.

Common Use Cases

  • Database migrations: Schedule a window before running schema changes or major version upgrades. Link all healthchecks that depend on the database so their alerts are suppressed.
  • Infrastructure updates: Plan windows for Kubernetes node upgrades, load balancer changes, or network reconfigurations that may cause brief service disruptions.
  • Deployment windows: If your deployment process causes temporary downtime or restarts, schedule a short maintenance window around each deployment to avoid false alerts.
  • Security patching: Use recurring weekly or monthly windows for OS and dependency patching across your fleet.
  • Certificate rotation: Schedule maintenance around TLS certificate renewals to suppress SSL check alerts during the brief period when the old certificate is replaced.
  • Capacity scaling: Plan windows for adding or removing capacity, resizing instances, or migrating workloads between availability zones.

API Reference

Maintenance windows can be managed programmatically through the upti.my API. This is useful for integrating maintenance scheduling into your CI/CD pipelines or deployment scripts.

create-via-api.sh
# Create a maintenance window
curl -X POST https://api.upti.my/v1/maintenance \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Deploy v2.5.0",
    "start_time": "2026-03-15T14:00:00Z",
    "end_time": "2026-03-15T14:30:00Z",
    "timezone": "UTC",
    "healthcheck_ids": ["hc_api_main"],
    "notify_subscribers": true
  }'

# Resolve a maintenance window early
curl -X POST https://api.upti.my/v1/maintenance/maint_abc123/resolve \
  -H "Authorization: Bearer YOUR_API_KEY"

Best Practices

  • Always schedule maintenance windows before starting planned work, not after alerts start firing.
  • Write clear descriptions that explain what work is being performed and the expected impact.
  • Select all affected healthchecks and components to ensure complete alert suppression.
  • Enable subscriber notifications so your users know about planned downtime in advance.
  • Use recurring windows for predictable maintenance tasks like weekly patching or nightly backups.
  • Resolve windows early when work finishes ahead of schedule to re-enable monitoring promptly.
  • Review maintenance history periodically to identify patterns and optimize your maintenance strategy.

⚠️ Alert Suppression Scope

Maintenance windows only suppress alerts for the specific healthchecks you select. Other healthchecks continue to alert normally. Double-check your selection before the window starts to avoid unexpected alerts from related checks that were not included.