Recurring Maintenance Plans

Maintenance plans can now be scheduled to run more than once.

It’s now even easier to suppress non-actionable alerts during recurring scheduled maintenance.

BigPanda maintenance plans set a rule to suppress alerts that match a specific condition during a scheduled time frame. They are a key tool in reducing noise during known downtimes such as scheduled maintenance or system testing.

The maintenance window defines when a maintenance plan should be applied to incoming alerts. The recurring maintenance plans feature adds additional scheduling options for repeated or recurring maintenance windows.

With this new functionality, you can:

  • Schedule a single plan to recur at the same time on multiple days.
  • Choose to repeat a plan every day, week, or month.
  • Add an end date to automatically stop the recurring plan in the future.

For example, you can schedule a maintenance plan that will run from today until Dec 31st, that suppresses Splunk alerts from a specific host every Wednesday from 2pm-4pm.

Key Features:

  • Multi-day span: Maintenance windows can now be scheduled for several consecutive days.
  • New Monthly Recurring Options:
    • Monthly recurring on a specific day of the month
    • Monthly recurring based on the relative position of the day within the month (such as Third Friday, Last Wednesday)
  • Changed API Format: When making API calls, a simplified call structure automatically calculates several frequency_data fields, using a simple duration field. See the API section below for the new call structure.
  • Changed Status Name: We’ve updated status names to be clearer about the plan’s current state:
    • Planned: The plan is scheduled to run at a future time, but is not currently suppressing alerts.
    • Running: The plan is currently suppressing matched alerts.
    • Done: The plan suppressed matched alerts in the past, but is not scheduled to run again.
  • Timezone Note: We have added a note to provide clarity that the scheduled maintenance window will be based on the user’s local system timezone.
Recurring Maintenance Plan Editor

Recurring Maintenance Plan Editor

Recurring maintenance plans include additional Define Time Window options while creating or editing a maintenance plan:

  • Starts - What time and day the plan should first run.
  • Ends - What time and day the first run plan should end.
  • Repeat - How often the plan should run. Options are: Does not repeat, Daily, Weekly, Monthly(relative) or Monthly(specific date).
  • End Repeat - When the plan should stop repeating. For plans that should run indefinitely, choose a date in the far future.

📘

Granular From Times

The selection field in the UI uses half-hour segments to simplify scheduling. If you need to configure a schedule window with a more granular time, use the Maintenance Plans V2 API with the Frequency options added (see below).

🚧

Time Zones and Daylight Savings

The time zone of a maintenance plan is determined by the browser time zone settings of the user who created the plan. For example, if a user in the EST time zone creates a maintenance plan that starts at 5 AM EST, users in the PST time zone will see the plan begin at 2 AM PST.

Maintenance plans use a fixed Unix epoch time, so plan windows will not adjust for Daylight Savings Time.

Schedule Limitations

  • For monthly recurring windows, the plan will only run in months where that date occurs. When scheduling a window on the 29th, 30th, or 31st, keep in mind the plan may not execute every month.
  • Recurring windows must have an end date. To schedule a plan that should run indefinitely, select an end date in the distant future.

API Support

Recurring maintenance plans are able to be managed with the Maintenance Plans V2 API using the new frequency and frequency_data fields. To create or update a maintenance plan's schedule, include these additional fields in the body of the API call.

Plan run times are calculated automatically from the plan start field. Plan start should be the time when the plan should first run in Unix epoch time. The end of the run window will be calculated from the duration field.

For recurring plans, the end field sets the time when the plan will stop repeating in Unix epoch time.

Additional object parameters will be added in-system upon creation of a maintenance plan. The current_run and next_run fields should not be included in Post or Patch calls.

Frequency Object
The 'frequency' object schema includes the following attributes:

AttributeDescriptionType
frequencyHow often the scheduled plan should silence alerts.
One of:
- Once
- Daily
- Weekly
- Monthly
Default is OnceThis field is case-sensitive.
object"frequency": "daily"
frequency_dataFor recurring plans only
Defines the plan window when alerts should be silenced each period.

See the Frequency Data Object table for detailed attributes.
"frequency_data": {
“duration”: 10800
}
OR
"frequency_data": {
"relativity": “Last”,
“duration”: 10800
}

Frequency Data Object
The 'frequency_data' object schema includes the following attributes:

AttributeDescriptionTypeExample
relativityRequired for plans using relative monthly dates
What week in the month the window should take place.
One of:- First- Second- Third- Fourth- Last
Last will trigger in the 5th week for months with a 5th week, and otherwise default to the 4th.
String"relativity": "First"
durationRequired for all recurring plans. The length of time the plan should run in seconds.Integer"duration": 10800
current_runSystem-generated field

Unix epoch time when the current running maintenance window began (in seconds)
String"current_run": 1684324800
next_runSystem-generated field

Unix epoch time when the next scheduled maintenance window starts (in seconds)
String"next_run": 1684335600
1  curl --request POST \
2	      --url https://api.bigpanda.io/resources/v2.0/maintenance-plans \
3	      --header 'Authorization: Bearer <User API Key>' \
4	      --header 'accept: application/json' \
5	      --header 'content-type: application/json' \
6	      --data '
7  {
8	   "name": "Weekly Maintenance",
9	   "condition": " \"=\": [         \"host\", \"prod-api-1\"         ]",
10     "start": 1684324800,
11     "end": 1690815600,
12     "frequency": "Monthly"
13     "frequency_data": {
14       “duration”: 10800
19     },
20	   "description": "Monthly regular data cleanup"
21  }
22  '

Learn more about how alerts suppressed by maintenance plans function in BigPanda in the Manage Planned Maintenance documentation.