API: Monitoring
The monitor category allows you to add uptime monitoring checks and contacts.
| Action | Required Parameters | Optional Parameters |
|---|---|---|
| monitor/check-list | None | None |
| monitor/check-types | None | None |
| monitor/check-add | name, type, check_interval, delay | None |
| monitor/check-remove | check_id | None |
| monitor/contact-list | None | None |
| monitor/contact-add | type, rel | None |
| monitor/contact-remove | contact_id | None |
| monitor/alert-list | check_id | None |
| monitor/alert-add | check_id, contact_id | None |
| monitor/alert-remove | alert_id | None |
monitor/check-list
Endpoint: monitor/check-list
{
"checks": {
"1261": {
"check_interval": "60",
"data": "{"target":"1.2.3.4"}",
"data_nice": {
"target": "1.2.3.4"
},
"data_summary": "target: 1.2.3.4",
"delay": "1",
"enabled": "1",
"id": "1261",
"name": "ping-1.2.3.4",
"status": "online",
"type": "icmp",
"type_details": {
"name": "Ping (ICMP)",
"params": {
"force_ip": {
"default": "0",
"help": "Force IP version when connecting (assuming a domain name is provided).",
"name": "Force IP Version",
"required": "",
"type": {
"0": "Any",
"4": "IPv4",
"6": "IPv6"
}
},
"packetloss": {
"default": "",
"help": "Trigger check failure even if only some of the ICMP packets are dropped.",
"name": "Trigger on Packet Loss",
"required": "",
"type": "boolean"
},
"target": {
"name": "Target",
"placeholder": "e.g. example.com or 1.2.3.4 or 2602:ffb6::1",
"required": "1",
"type": "string"
}
},
"short_name": "Ping"
}
}
}
}
monitor/check-types
Lists the various check types supported by the system. The output includes the supported parameters for each type, which can be passed to monitor/check-add.
Endpoint: monitor/check-types
{
"success": "yes",
"types": {
"dns": {
"name": "DNS",
"params": {
"expect": {
"help": "Substring to look for in the query response.",
"name": "Expected Response",
"placeholder": "e.g. 1.2.3.4",
"required": "",
"type": "string"
},
"name": {
"help": "Name to perform query on.",
"name": "Name",
"placeholder": "e.g. google.com",
"required": "1",
"type": "string"
},
"server": {
"name": "DNS Server",
"placeholder": "e.g. 8.8.8.8",
"required": "",
"type": "string"
},
"type": {
"default": "A",
"help": "DNS record type to query for.",
"name": "Type",
"required": "1",
"type": {
"A": "A",
"AAAA": "AAAA",
"MX": "MX",
"NS": "NS",
"PTR": "PTR",
"SOA": "SOA",
"SPF": "SPF",
"SRV": "SRV",
"TXT": "TXT"
}
}
},
"short_name": "DNS"
},
...
}
}
Response notes:
- If a parameter is required (required='1'), then check-add will fail if that parameter is not set.
monitor/check-add
Add a new monitoring check. To receive notifications, you'll need to associate this check with contacts: see monitor/contact-add and monitor/alert-add.
Required parameters:
- name - a label for this check
- type - the check type, see monitor/check-types
- check_interval - how often to perform the check in seconds (e.g. 60 to perform the check every minute)
- delay - the number of intervals where the check fails before the check is considered offline and notifications are sent (e.g. 1 or 2); the delay also applies in the opposite direction, when check is offline but the checks are succeeding
Notes:
- Additional parameters, some of which may be required, depend on the type of the check. These parameters are specified by the output of monitor/check-types. These parameters must be prefixed by "param_" in the API request, as in the example below.
Endpoint: monitor/check-add
name=mycheck
type=tcp
check_interval=60
delay=1
param_address=1.2.3.4
param_timeout=10
{
"check_id": "3751",
"success": "yes"
}
monitor/check-remove
Required parameters:
- check_id - the check ID.
Endpoint: monitor/check-remove
check_id=3751
{"success": "yes"}
monitor/contact-list
Endpoint: monitor/contact-list
{
"contacts": {
"1900": {
"data": "noreply@example.com",
"id": "1900",
"type": "email"
}
},
"success": "yes"
}
Response notes:
- The contacts attribute contains a JSON object where keys are contact IDs and values encode the corresponding contacts.
monitor/contact-add
Add a new contact that can be alerted when a check fails. To associate the contact with a check, see monitor/alert-add.
Required parameters:
- type - one of 'email', 'sms', 'voice', or 'http'
- rel - an e-mail address, phone number, or URL
Endpoint: monitor/contact-add
type=email
rel=noreply@example.com
{"success":"yes"}
monitor/contact-remove
Required parameters:
- contact_id - the contact ID.
Endpoint: monitor/contact-remove
contact_id=1900
{"success": "yes"}
monitor/alert-list
Required parameters:
- check_id - the check ID
Endpoint: monitor/alert-list
check_id=3754
{
"alerts": {
"3892": {
"contact": "noreply@example.com",
"contact_id": "13",
"id": "3892",
"type": "both"
}
},
"success": "yes"
}
monitor/alert-add
Create an alert to associate a contact with a check.
Required parameters:
- check_id - the check ID
- contact_id - the contact ID
Endpoint: monitor/alert-add
check_id=3754
contact_id=13
{"success":"yes"}
monitor/alert-remove
Required parameters:
- alert_id - the alert ID.
Endpoint: monitor/alert-remove
alert_id=3892
{"success": "yes"}