Heartbeat Monitors
This resource uses a 'cursor' to paginate. 'start-index' has no effect here.
A cursor identifying the current position in the pagination, leave empty to start at the first item, each call returns a 'next-cursor' header for the next page, do not alter the cursor yourself.
null
The maximum number of results when paging through a list of heartbeat monitors.
100
GET /api/heartbeat-monitors HTTP/1.1
Host:
Authorization: YOUR_API_KEY
Accept: */*
The heartbeat monitor objects
[
{
"id": 1,
"name": "text",
"state": "UNKNOWN",
"intervalSec": 1,
"alertSummary": "text",
"createdAt": "text",
"updatedAt": "text",
"teams": [
{
"id": 1,
"name": "text"
}
]
}
]
The 'integrationKey' field cannot be set as it is generated automatically. Note: if you are building installation scripts for your hosts, you may send deterministic names and ?include=integrationUrl to still return the 'response.body.integrationUrl' field on 409 (already existing resource) conflict responses. This allows you to run installations with a simple single POST request.
We recommend using an interval between 3 and 5 minutes, while pinging every 60 seconds. Of course if you are tracking use-cases like backup jobs that run once a week, a larger timeout and less pings suffice.
POST /api/heartbeat-monitors HTTP/1.1
Host:
Authorization: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 76
{
"name": "text",
"intervalSec": 1,
"alertSummary": "text",
"alertSource": {
"id": 1
}
}
{
"id": 1,
"name": "text",
"state": "UNKNOWN",
"intervalSec": 1,
"alertSummary": "text",
"createdAt": "text",
"updatedAt": "text",
"alertSource": {
"id": 1,
"teams": [
{
"id": 1,
"name": "text"
}
],
"name": "text",
"iconUrl": "text",
"lightIconUrl": "text",
"darkIconUrl": "text",
"escalationPolicy": {
"id": 1,
"name": "text",
"escalationRules": [
{
"escalationTimeout": 1,
"user": {
"id": 1
},
"schedule": {
"id": 1
},
"users": [
{
"id": 1,
"firstName": "text",
"lastName": "text"
}
],
"schedules": [
{
"id": 1,
"name": "text",
"type": "STATIC"
}
]
}
],
"teams": [
{
"id": 1,
"name": "text"
}
],
"repeating": false,
"frequency": 1,
"delayMin": 0,
"routingKey": "text"
},
"integrationType": "NAGIOS",
"integrationKey": "text",
"integrationUrl": "text",
"autoResolutionTimeout": "text",
"alertGroupingWindow": "text",
"alertCreation": "ONE_ALERT_PER_EMAIL",
"status": "PENDING",
"active": true,
"alertPriorityRule": "HIGH",
"supportHours": {
"id": 1
},
"bidirectional": true,
"summaryTemplate": {
"textTemplate": "text",
"elements": [
{
"type": "TEXT",
"val": "text",
"func": "text",
"args": [
{
"S": "text",
"N": 1
}
]
}
]
},
"detailsTemplate": {
"textTemplate": "text",
"elements": [
{
"type": "TEXT",
"val": "text",
"func": "text",
"args": [
{
"S": "text",
"N": 1
}
]
}
]
},
"routingTemplate": {
"textTemplate": "text",
"elements": [
{
"type": "TEXT",
"val": "text",
"func": "text",
"args": [
{
"S": "text",
"N": 1
}
]
}
]
},
"linkTemplates": [
{
"text": "text",
"hrefTemplate": {
"textTemplate": "text",
"elements": [
{
"type": "TEXT",
"val": "text",
"func": "text",
"args": [
{
"S": "text",
"N": 1
}
]
}
]
}
}
],
"priorityTemplate": {
"valueTemplate": {
"textTemplate": "text",
"elements": [
{
"type": "TEXT",
"val": "text",
"func": "text",
"args": [
{
"S": "text",
"N": 1
}
]
}
]
},
"mappings": [
{
"value": "text",
"priority": "LOW"
}
]
},
"eventFilter": "text",
"alertKeyTemplate": {
"textTemplate": "text",
"elements": [
{
"type": "TEXT",
"val": "text",
"func": "text",
"args": [
{
"S": "text",
"N": 1
}
]
}
]
},
"eventTypeFilterCreate": "text",
"eventTypeFilterAccept": "text",
"eventTypeFilterResolve": "text"
},
"teams": [
{
"id": 1,
"name": "text"
}
],
"integrationKey": "text",
"integrationUrl": "text"
}
numeric entity id
GET /api/heartbeat-monitors/{id} HTTP/1.1
Host:
Authorization: YOUR_API_KEY
Accept: */*
the heartbeat monitor object
{
"id": 1,
"name": "text",
"state": "UNKNOWN",
"intervalSec": 1,
"alertSummary": "text",
"createdAt": "text",
"updatedAt": "text",
"alertSource": {
"id": 1,
"teams": [
{
"id": 1,
"name": "text"
}
],
"name": "text",
"iconUrl": "text",
"lightIconUrl": "text",
"darkIconUrl": "text",
"escalationPolicy": {
"id": 1,
"name": "text",
"escalationRules": [
{
"escalationTimeout": 1,
"user": {
"id": 1
},
"schedule": {
"id": 1
},
"users": [
{
"id": 1,
"firstName": "text",
"lastName": "text"
}
],
"schedules": [
{
"id": 1,
"name": "text",
"type": "STATIC"
}
]
}
],
"teams": [
{
"id": 1,
"name": "text"
}
],
"repeating": false,
"frequency": 1,
"delayMin": 0,
"routingKey": "text"
},
"integrationType": "NAGIOS",
"integrationKey": "text",
"integrationUrl": "text",
"autoResolutionTimeout": "text",
"alertGroupingWindow": "text",
"alertCreation": "ONE_ALERT_PER_EMAIL",
"status": "PENDING",
"active": true,
"alertPriorityRule": "HIGH",
"supportHours": {
"id": 1
},
"bidirectional": true,
"summaryTemplate": {
"textTemplate": "text",
"elements": [
{
"type": "TEXT",
"val": "text",
"func": "text",
"args": [
{
"S": "text",
"N": 1
}
]
}
]
},
"detailsTemplate": {
"textTemplate": "text",
"elements": [
{
"type": "TEXT",
"val": "text",
"func": "text",
"args": [
{
"S": "text",
"N": 1
}
]
}
]
},
"routingTemplate": {
"textTemplate": "text",
"elements": [
{
"type": "TEXT",
"val": "text",
"func": "text",
"args": [
{
"S": "text",
"N": 1
}
]
}
]
},
"linkTemplates": [
{
"text": "text",
"hrefTemplate": {
"textTemplate": "text",
"elements": [
{
"type": "TEXT",
"val": "text",
"func": "text",
"args": [
{
"S": "text",
"N": 1
}
]
}
]
}
}
],
"priorityTemplate": {
"valueTemplate": {
"textTemplate": "text",
"elements": [
{
"type": "TEXT",
"val": "text",
"func": "text",
"args": [
{
"S": "text",
"N": 1
}
]
}
]
},
"mappings": [
{
"value": "text",
"priority": "LOW"
}
]
},
"eventFilter": "text",
"alertKeyTemplate": {
"textTemplate": "text",
"elements": [
{
"type": "TEXT",
"val": "text",
"func": "text",
"args": [
{
"S": "text",
"N": 1
}
]
}
]
},
"eventTypeFilterCreate": "text",
"eventTypeFilterAccept": "text",
"eventTypeFilterResolve": "text"
},
"teams": [
{
"id": 1,
"name": "text"
}
],
"integrationKey": "text",
"integrationUrl": "text"
}
ATTENTION: changing 'intervalSec' will regenerate the 'integrationKey', you will have to update your monitoring integrations.
entity ID
We recommend using an interval between 3 and 5 minutes, while pinging every 60 seconds. Of course if you are tracking use-cases like backup jobs that run once a week, a larger timeout and less pings suffice.
PUT /api/heartbeat-monitors/{id} HTTP/1.1
Host:
Authorization: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 76
{
"name": "text",
"intervalSec": 1,
"alertSummary": "text",
"alertSource": {
"id": 1
}
}
the updated heartbeat monitor object
{
"id": 1,
"name": "text",
"state": "UNKNOWN",
"intervalSec": 1,
"alertSummary": "text",
"createdAt": "text",
"updatedAt": "text",
"alertSource": {
"id": 1,
"teams": [
{
"id": 1,
"name": "text"
}
],
"name": "text",
"iconUrl": "text",
"lightIconUrl": "text",
"darkIconUrl": "text",
"escalationPolicy": {
"id": 1,
"name": "text",
"escalationRules": [
{
"escalationTimeout": 1,
"user": {
"id": 1
},
"schedule": {
"id": 1
},
"users": [
{
"id": 1,
"firstName": "text",
"lastName": "text"
}
],
"schedules": [
{
"id": 1,
"name": "text",
"type": "STATIC"
}
]
}
],
"teams": [
{
"id": 1,
"name": "text"
}
],
"repeating": false,
"frequency": 1,
"delayMin": 0,
"routingKey": "text"
},
"integrationType": "NAGIOS",
"integrationKey": "text",
"integrationUrl": "text",
"autoResolutionTimeout": "text",
"alertGroupingWindow": "text",
"alertCreation": "ONE_ALERT_PER_EMAIL",
"status": "PENDING",
"active": true,
"alertPriorityRule": "HIGH",
"supportHours": {
"id": 1
},
"bidirectional": true,
"summaryTemplate": {
"textTemplate": "text",
"elements": [
{
"type": "TEXT",
"val": "text",
"func": "text",
"args": [
{
"S": "text",
"N": 1
}
]
}
]
},
"detailsTemplate": {
"textTemplate": "text",
"elements": [
{
"type": "TEXT",
"val": "text",
"func": "text",
"args": [
{
"S": "text",
"N": 1
}
]
}
]
},
"routingTemplate": {
"textTemplate": "text",
"elements": [
{
"type": "TEXT",
"val": "text",
"func": "text",
"args": [
{
"S": "text",
"N": 1
}
]
}
]
},
"linkTemplates": [
{
"text": "text",
"hrefTemplate": {
"textTemplate": "text",
"elements": [
{
"type": "TEXT",
"val": "text",
"func": "text",
"args": [
{
"S": "text",
"N": 1
}
]
}
]
}
}
],
"priorityTemplate": {
"valueTemplate": {
"textTemplate": "text",
"elements": [
{
"type": "TEXT",
"val": "text",
"func": "text",
"args": [
{
"S": "text",
"N": 1
}
]
}
]
},
"mappings": [
{
"value": "text",
"priority": "LOW"
}
]
},
"eventFilter": "text",
"alertKeyTemplate": {
"textTemplate": "text",
"elements": [
{
"type": "TEXT",
"val": "text",
"func": "text",
"args": [
{
"S": "text",
"N": 1
}
]
}
]
},
"eventTypeFilterCreate": "text",
"eventTypeFilterAccept": "text",
"eventTypeFilterResolve": "text"
},
"teams": [
{
"id": 1,
"name": "text"
}
],
"integrationKey": "text",
"integrationUrl": "text"
}
Was this helpful?