Skip to main content

Recomputation Requests

API Calls for listing existing and creating new recomputation requests

NameDescriptionShortcut
GET: List Recomputation RequestsThis method can be used to retrieve a list of current Recomputation requests. Description
GET: Get a specific recomputation by idThis method can be used to retrieve a specific recomputation by id Description
POST: Create a new recomputation requestThis method can be used to insert a new recomputation request onto the Compute Engine. Description
DELETE: Delete a specific recomputationThis method can be used to delete a specific recomputation. Description
POST: change statusThis method can be used to change status of a specific recomputation. Description
DELETE: Reset status of recomputationThis method can be used to reset status of a specific recomputation. Description

[GET]: List Recomputation Requests

This method can be used to retrieve a list of current Recomputation requests.

Input

GET /recomputations

Optional Query Parameters

TypeDescriptionRequired
reportFilter recomputations by report nameNO
dateSpecific date to retrieve all relevant recomputations that their period include this dateNO

Request headers

x-api-key: shared_key_value
Accept: application/json

Response

Headers: Status: 200 OK

Response body

Json Response

{
"root": [
{
"id": "56db43ee-f331-46ca-b0fd-4555b4aa1cfc",
"requester_name": "John Doe",
"requester_email": "JohnDoe@foo.com",
"reason": "power cuts",
"start_time": "2015-01-10T12:00:00Z",
"end_time": "2015-01-30T23:00:00Z",
"report": "Critical",
"exclude": [
"Gluster"
],
"status": "running",
"timestamp": "2015-02-01T14:58:40",
"history": [
{
"status": "pending",
"timestamp" : "2015-02-01T14:58:40"
},
{
"status": "approved",
"timestamp" : "2015-02-02T08:58:40"
},
{
"status": "running",
"timestamp" : "2015-02-02T09:10:40"
},

]
},
{
"id": "f68b43ee-f331-46ca-b0fd-4555b4aa1cfc",
"requester_name": "John Doe",
"requester_email": "JohnDoe@foo.com",
"reason": "power cuts",
"start_time": "2015-03-10T12:00:00Z",
"end_time": "2015-03-30T23:00:00Z",
"report": "OPS-Critical",
"exclude": [
"Gluster"
],
"status": "running",
"timestamp": "2015-02-01T14:58:40",
"history": [
{
"status": "pending",
"timestamp" : "2015-04-01T14:58:40"
},
{
"status": "approved",
"timestamp" : "2015-04-02T08:58:40"
},
{
"status": "running",
"timestamp" : "2015-04-02T09:10:40"
},

]
}
]
}

Example Request #2

GET /recomputations?date=2015-03-15

Response

Headers: Status: 200 OK

Response body

Json Response

{
"root": [
{
"id": "f68b43ee-f331-46ca-b0fd-4555b4aa1cfc",
"requester_name": "John Doe",
"requester_email": "JohnDoe@foo.com",
"reason": "power cuts",
"start_time": "2015-03-10T12:00:00Z",
"end_time": "2015-03-30T23:00:00Z",
"report": "OPS-Critical",
"exclude": [
"Gluster"
],
"status": "running",
"timestamp": "2015-02-01T14:58:40",
"history": [
{
"status": "pending",
"timestamp" : "2015-04-01T14:58:40"
},
{
"status": "approved",
"timestamp" : "2015-04-02T08:58:40"
},
{
"status": "running",
"timestamp" : "2015-04-02T09:10:40"
},

]
}
]
}

Example Request #3

GET /recomputations?report=OPS-Critical

Response

Headers: Status: 200 OK

Response body

Json Response

{
"root": [
{
"id": "f68b43ee-f331-46ca-b0fd-4555b4aa1cfc",
"requester_name": "John Doe",
"requester_email": "JohnDoe@foo.com",
"reason": "power cuts",
"start_time": "2015-03-10T12:00:00Z",
"end_time": "2015-03-30T23:00:00Z",
"report": "OPS-Critical",
"exclude": [
"Gluster"
],
"status": "running",
"timestamp": "2015-02-01T14:58:40",
"history": [
{
"status": "pending",
"timestamp" : "2015-04-01T14:58:40"
},
{
"status": "approved",
"timestamp" : "2015-04-02T08:58:40"
},
{
"status": "running",
"timestamp" : "2015-04-02T09:10:40"
},

]
}
]
}

[GET]: Get specific recomputation request by id

This method can be used to retrieve a specific recomputation request by its id

Input

GET /recomputations/{ID}

Request headers

x-api-key: shared_key_value
Accept: application/json

Response

Headers: Status: 200 OK

Response body

Json Response

{
"root": [
{
"id": "56db43ee-f331-46ca-b0fd-4555b4aa1cfc",
"requester_name": "John Doe",
"requester_email": "JohnDoe@foo.com",
"reason": "power cuts",
"start_time": "2015-01-10T12:00:00Z",
"end_time": "2015-01-30T23:00:00Z",
"report": "Critical",
"exclude": [
"Gluster"
],
"status": "running",
"timestamp": "2015-02-01T14:58:40",
"history": [
{
"status": "pending",
"timestamp" : "2015-02-01T14:58:40"
},
{
"status": "approved",
"timestamp" : "2015-02-02T08:58:40"
},
{
"status": "running",
"timestamp" : "2015-02-02T09:10:40"
},

]
}

[POST]: Create a new recomputation request

This method can be used to insert a new recomputation request onto the Compute Engine.

Input

POST /recomputations

Request headers

x-api-key: shared_key_value
Accept: application/json

Parameters

ParameterTypeDescriptionRequired
start_timestringUTC timestamp in W3C format (e.g., 2025-05-07T12:00:00Z)Yes
end_timestringUTC timestamp in W3C format (e.g., 2025-05-09T09:00:00Z)Yes
reasonstringExplanation of the need for the recomputationYes
requester_namestringName of the person submitting the recomputationYes
requester_emailstringEmail of the person submitting the recomputationYes
reportstringReport for which the recomputation is requestedYes
exclude_monitoring_sourcearrayList of monitoring sources to exclude during recomputation, each with host, start_time, and end_timeNo
excludearrayList of group names to exclude from recomputationNo
exclude_metricsarrayList of specific metrics (optionally scoped by hostname, service or group) to exclude from recomputationNo
applied_status_changesarrayManual status overrides for specific topology elements (group, service, endpoint, or metric)No

Response

Headers: Status: 201 Created

Request Body

The recomputation request body can include any combination of the following optional elements:

  • "exclude_monitoring_source" — to exclude data from specified monitoring sources during a time window.
  • "exclude" — to exclude specific groups from availability/reliability calculations.
  • "exclude_metrics" — to exclude particular metrics, optionally scoped by hostname, service, or group.
  • "applied_status_changes" — to manually override statuses of monitored topology items.

All these elements are optional and can be included individually or together depending on the recomputation needs.


Example Request Body

{
"requester_name": "John Doe",
"requester_email": "johndoe@foo.gr",
"reason": "Recomputation request including all types",
"start_time": "2025-05-07T12:00:00Z",
"end_time": "2025-05-09T09:00:00Z",
"report": "Report-A",

"exclude_monitoring_source": [
{
"host": "monitoring_node01.example.foo",
"start_time": "2022-01-10T12:00:00Z",
"end_time": "2022-01-10T23:00:00Z"
}
],

"exclude": [
"Group-1",
"Group-2"
],

"exclude_metrics": [
{ "metric": "check-1" },
{ "metric": "check-2", "hostname": "host1.example.com" }
],

"applied_status_changes": [
{ "group": "Group-A", "state": "CRITICAL" },
{ "service": "Service-a", "state": "OK" }
]
}

[DELETE]: Delete a specific recomputation

DELETE /recomputations/{ID}

Request headers

x-api-key: shared_key_value
Accept: application/json

Response

Status 200 OK

[POST]: Change status of recomputation

POST /recomputations/{ID}/status

Request headers

x-api-key: shared_key_value
Accept: application/json

POST body

{
"status" : "approved"
}

Eligible recomputation status values:

  • pending
  • approved
  • rejected
  • running
  • done

If recomputation status input not in eligible values the api will respond with status code 404:conflict

Response

Status 200 OK

Response body

Json Response

{
"status": {
"message": "Recomputation status updated successfully to: approved",
"code": "200"
}
}

[DELETE]: Reset status of a specific recomputation

DELETE /recomputations/{ID}/status

Request headers

x-api-key: shared_key_value
Accept: application/json

Response

Status 200 OK

Response body

Json Response

{
"status": {
"message": "Recomputation status reset to: pending",
"code": "200"
}
}