Skip to main content
Version: 6.0

Maintenance Mode

Description

Maintenance mode is a mechanism for temporarily excluding selected global metric dimensions from incident analysis and subsequent service state calculations.

This function is used during planned and unplanned technical work, for example:

  • data migration
  • infrastructure updates
  • service restarts
  • server maintenance
  • network equipment updates
  • scheduled maintenance work

During such operations, some metrics may temporarily transition to a degraded state, although this is not a real incident.
Maintenance mode helps avoid false positives and prevents creating incidents based on expected changes in state.

At the same time:

  • original metric values continue to be calculated
  • state history is not changed
  • matched dimensions receive the attribute is_in_maintenance = true
  • such dimensions are excluded from calculating service metrics and service states

Maintenance Window Statuses

A maintenance window can be in one of the following states:

StatusDescription
plannedWindow created and awaiting the start time of maintenance (start_at)
activeMaintenance is active and applied to matched dimensions
completedMaintenance completed automatically at end_at or manually by user
cancelledMaintenance window was canceled before the start time

CRUD Operations

Creating a Maintenance Window

Creates a new maintenance window for one or more global metrics.

Request

Request example
POST _core/rsm/maintenance
{
"name": "PostgreSQL Data Migration",
"groups": [
{
"name": "Main DB Cluster",
"elements": [
{
"name": "host_name",
"values": [
"db-node-01",
"db-node-02"
]
}
]
}
],
"metric_ids": [
"CycdCp0BvPpotMR2-UhX"
],
"start_at": "2026-04-16T17:05:00.000Z",
"end_at": "2026-04-16T19:50:00.000Z"
}

Request Parameters

FieldTypeRequiredDescription
namestringYesMaintenance window name. Must not be empty
groupsarrayYesFilter groups to define coverage. At least one element must be specified
groups[].namestringYesFilter group name. Must not be empty
groups[].elementsarrayYesConditions within the group. At least one element must be specified
groups[].elements[].namestringYesDimension name. Must not be empty
groups[].elements[].valuesarray[string]YesDimension values. At least one element must be specified
metric_idsarray[string]YesList of global metrics. At least one metric must be selected
start_atdatetimeYesMaintenance start time
end_atdatetimeYesMaintenance end time. Value must be greater than start_at
Filter Logic

An incident falls into maintenance if it fully matches at least one filter group. To match a group, all conditions of that group must match simultaneously.

Updating a Maintenance Window

Changes an existing maintenance window.

Request

Update request example
PUT _core/rsm/maintenance/{id}
{
"name": "PostgreSQL Data Migration",
"groups": [
{
"name": "Main DB Cluster",
"elements": [
{
"name": "host_name",
"values": [
"db-node-02",
"db-node-03"
]
}
]
}
],
"metric_ids": [
"CycdCp0BvPpotMR2-UhX"
],
"start_at": "2026-04-16T17:05:00.000Z",
"end_at": "2026-04-16T19:50:00.000Z"
}

Request Parameters

The same fields as when creating a maintenance window are used.

Getting a List of Maintenance Windows

Returns all created maintenance windows.

Request

GET _core/rsm/maintenance/

Getting a Specific Maintenance Window

Returns information about a specific maintenance window.

Request

GET _core/rsm/maintenance/{id}

Response Example

Maintenance Window
{
"_meta": {
"id": "c8Evq50BlXbjsgPFwFTr",
"created": "2026-04-20T13:58:46.774Z",
"updated": "2026-04-20T22:59:00.000Z",
"type": "user",
"tag_ids": [],
"from_system": false
},
"_permissions": {
"read": {
"roles": [],
"users": []
},
"write": {
"roles": [],
"users": []
},
"owner": "admin",
"isWritable": true
},
"name": "PostgreSQL Data Migration",
"start_at": "2026-04-20T14:00:00.000Z",
"end_at": "2026-04-20T22:59:00.000Z",
"groups": [
{
"name": "Main DB Cluster",
"elements": [
{
"name": "request_origin",
"values": [
"REST"
]
},
{
"name": "host_name",
"values": [
"db-node-03"
]
},
{
"name": "request_type",
"values": [
"SELECT"
]
}
]
},
{
"name": "Backup DB Cluster",
"elements": [
{
"name": "request_origin",
"values": [
"REST"
]
},
{
"name": "host_name",
"values": [
"db-node-04"
]
},
{
"name": "request_type",
"values": [
"SELECT"
]
}
]
}
],
"metric_ids": [
"oeidyJwB_rUm1JmA_Qfz",
"-Ydc9pwBG_16VCpVUhUe"
],
"state": "completed",
"metric_coating_statistic": {
"selected": 2,
"with_coating": 1,
"without_coating": 1
}
}

Main Response Fields

FieldDescription
_meta.idMaintenance window identifier
_meta.createdCreation date and time
_meta.updatedLast modification date and time
_permissions.ownerMaintenance window owner
_permissions.isWritableEdit availability
nameMaintenance window name
start_atMaintenance start time
end_atMaintenance end time
groupsCoverage filter groups
groups[].elementsConditions within group
metric_idsList of related global metrics
stateCurrent maintenance window status
metric_coating_statistic.selectedNumber of selected metrics
metric_coating_statistic.with_coatingNumber of metrics with coverage
metric_coating_statistic.without_coatingNumber of metrics without coverage

Deleting a Maintenance Window

Deletes a maintenance window.

Request

DELETE _core/rsm/maintenance/{id}

Display and Preview Requests

Checking Metric Coverage

Used for preliminary coverage checking before saving a maintenance window.

Allows:

  • determine intersection of dimensions of selected metrics
  • get list of matched series
  • check for coverage
  • show user preliminary result of applying maintenance mode

Coverage Check Request

Request

Request example
POST _core/rsm/maintenance/intersection
{
"groups": [
{
"name": "Database Servers",
"elements": [
{
"name": "host_name",
"values": [
"db-node-03"
]
}
]
}
],
"metric_ids": [
"oeidyJwB_rUm1JmA_Qfz",
"-Ydc9pwBG_16VCpVUhUe"
]
}

Request Parameters

FieldTypeRequiredDescription
groupsarrayYesFilter groups for coverage check. At least one element must be specified
metric_idsarray[string]YesSelected global metrics. At least one metric must be selected

Response Example

Intersection Result
{
"fields": [
"host_name"
],
"metric_coating_statistic": {
"selected": 2,
"with_coating": 1,
"without_coating": 1
},
"metric_entities": [
{
"title": "Database Response Time",
"dimensions": {
"host_name": "db-node-03",
"request_origin": "REST"
},
"trend": [
{
"timestamp": "2026-04-27T09:00:00.000Z",
"value": 200
},
{
"timestamp": "2026-04-27T09:04:00.000Z",
"value": 204
}
]
}
]
}

Main Response Fields

FieldDescription
fieldsList of common dimensions (intersection of dimensions of selected metrics)
metric_coating_statistic.selectedTotal number of selected metrics
metric_coating_statistic.with_coatingNumber of metrics with status With coverage
metric_coating_statistic.without_coatingNumber of metrics with status Without coverage
metric_entitiesList of matched series for metrics with coverage
metric_entities[].titleGlobal metric name
metric_entities[].dimensionsValues of dimensions of matched series
metric_entities[].trendHistory of metric value changes
metric_entities[].trend[].timestampTime of value fixation
metric_entities[].trend[].valueMetric value at specified time

Getting Available Dimensions for a Specific Metric

Used on the specific metric screen to display:

  • current dimensions
  • maintenance flag
  • related maintenance windows
  • list of active maintenance for dimension row
GET _core/rsm/maintenance/metric_dimensions/{metric_id}

Response Example

Example of available dimensions for a specific metric
{
"_meta": {
"id": "-Ydc9pwBG_16VCpVUhUe",
"from_system": false
},
"title": "Database Response Time",
"info": {
"total": 6,
"in_maintenance": 1,
"active": 5
},
"metric_dimensions": [
{
"_meta": {
"metricId": "y8Epq50BlXbjsgPFzE1J",
"dimensionsSearchable": [
"request_type:SELECT",
"host_name:db-node-03",
"request_origin:REST"
],
"entityId": "c9adc9a911dd83cb1cd5489161af123300b87de843796314b6f8a4b384aa1b64",
"entityTitle": "request_type: SELECT; host_name: db-node-03; request_origin: REST",
"dimensions": {
"request_type": "SELECT",
"host_name": "db-node-03",
"request_origin": "REST"
},
"isInMaintenance": true,
"layerId": "7ScdCp0BvPpotMR2-UdW",
"serviceId": "-icdCp0BvPpotMR2-UdX",
"parentMetricId": "-Ydc9pwBG_16VCpVUhUe",
},
"calculation": {
"value": 50,
"severity": "MEDIUM",
"timestamp": "2026-04-27T10:44:00.001Z"
},
"layer_id": "7ScdCp0BvPpotMR2-UdW",
"service_id": "-icdCp0BvPpotMR2-UdX",
"layer_name": "Main Database Cluster",
"service_name": "Order Management Service",
"trends": [
{
"timestamp": "2026-04-27T09:44:00.000Z",
"value": 597
},
{
"timestamp": "2026-04-27T09:48:00.000Z",
"value": 588
},
{
"timestamp": "2026-04-27T09:52:00.000Z",
"value": 588
},
{
"timestamp": "2026-04-27T09:56:00.000Z",
"value": 582
},
{
"timestamp": "2026-04-27T10:00:00.000Z",
"value": 579
}
],
"maintenances": [
{
"_meta": {
"id": "F4eHzp0Ba9-VhzmokbfC",
"created": "2026-04-27T10:41:24.432Z",
"updated": "2026-04-27T10:42:00.000Z",
"type": "user",
"tag_ids": [],
"from_system": false
},
"name": "PostgreSQL Data Migration",
"start_at": "2026-04-27T10:42:00.000Z",
"end_at": "2026-04-27T12:59:00.000Z"
}
]
}
]
}
FieldDescription
_meta.idGlobal metric identifier
titleGlobal metric name
info.totalTotal number of dimensions
info.in_maintenanceNumber of dimensions in maintenance
info.activeNumber of active dimensions
metric_dimensions[].dimensionsSet of row dimensions
metric_dimensions[].calculationCurrent state and value
metric_dimensions[].layer_nameLayer name
metric_dimensions[].service_nameService name
metric_dimensions[].trendsHistory of value changes
metric_dimensions[].maintenancesActive maintenance windows
maintenances[].nameMaintenance name
maintenances[].start_atStart time
maintenances[].end_atEnd time

Getting Available Dimensions for All Metrics

Used for building the maintenance condition selection form.

GET _core/rsm/maintenance/metric_dimensions/