Each check within Rackspace Monitoring has a designated check type. The check type instructs the monitoring system how to check the monitored resource.
Check types for commonly encountered web protocols, such as HTTP (remote.http), IMAP (remote.imap-banner) , SMTP (remote.smtp), and DNS (remote.dns) are provided. Monitoring commonly encountered infrastructure servers like MySQL (remote.mysql-banner) and PostgreSQL (remote.postgresql-banner) are also available. Monitoring custom server uptime can be accomplished with the remote.tcp banner check to check for a protocol-defined banner at the beginning of a connection. Gathering metrics from server software to create alerts against can be accomplished using the remote.http check type and the ‘extract’ attribute to define the format.
In addition to the standard Rackspace Monitoring check types, you can also use agent check types if the Monitoring Agent is installed on the server you are monitoring.
For a list of available check types, see Available check types and fields.
Checks generate metrics upon which alarms will alert. The metrics generated often depend on the parameters for the check, using the extract attribute on the remote.http check for example. However, the default metrics are always present. Use the Test check to determine the exact metrics available.
The following table summarizes the attributes for Check Type resources:
Attributes
Name | Description | Validation |
---|---|---|
category | The category the check is in. | * String |
type | The name of the supported check type. | * String |
fields | Check type fields. | Optional Array [Optional] |
supported_platforms | Platforms on which an agent check type is supported. This is advisory information only. The check may still work on other platforms, or report that check execution failed at runtime. | Optional Array [String] |
Use the following check type API operations to view checks by check type.
List check types
GET /check_types
Lists all available check types.
This operation can be paginated. For information, see Paginated collections.
The following table shows the possible response codes for this operation:
Response Code | Name | Description |
---|---|---|
200 | OK | The request completed. |
401 | Unauthorized | The system received a request from a user that is not authenticated. |
403 | Forbidden | The system received a request that the user is not authorized to make. |
500 | Internal Server Error | An unexpected condition was encountered. |
503 | Service Unavailable | The system is experiencing heavy load or another system failure. |
The following table shows the header parameters for the request:
Name | Type | Description |
---|---|---|
X-Auth-Token | String (Required) | A valid authentication token with administrative access. For details, see Get your credentials |
Note
This operation does not accept a request body.
Example List check types: JSON response
{
"values": [
{
"id": "remote.dns",
"category": "remote",
"type": "remote",
"fields": [
{
"name": "port",
"description": "Port number (default: 53)",
"optional": true
},
{
"name": "query",
"description": "DNS Query",
"optional": false
},
{
"name": "record_type",
"description": "DNS Record Type",
"optional": false
}
]
},
{
"id": "remote.ssh",
"category": "remote",
"type": "remote",
"fields": [
{
"name": "port",
"description": "Port number (default: 22)",
"optional": true
}
]
},
{
"id": "remote.smtp",
"category": "remote",
"type": "remote",
"fields": [
{
"name": "port",
"description": "Port number (default: 25)",
"optional": true
},
{
"name": "ehlo",
"description": "EHLO parameter",
"optional": true
},
{
"name": "from",
"description": "From parameter",
"optional": true
},
{
"name": "to",
"description": "To parameter (if blank, a \"quit\" is issued before sending a to line, and the connection is terminated)",
"optional": true
},
{
"name": "payload",
"description": "Specifies the payload",
"optional": true
},
{
"name": "starttls",
"description": "Should the connection be upgraded to TLS/SSL",
"optional": true
}
]
},
{
"id": "remote.http",
"category": "remote",
"type": "remote",
"fields": [
{
"name": "url",
"description": "Target URL",
"optional": false
},
{
"name": "body",
"description": "Body match regular expression (body is limited to 100k)",
"optional": true
},
{
"name": "headers",
"description": "Arbitrary headers which are sent with the request.",
"optional": true
},
{
"name": "body_matches",
"description": "Body match regular expressions (body is limited to 100k, matches are truncated to 80 characters)",
"optional": true
},
{
"name": "method",
"description": "HTTP method (default: GET)",
"optional": true
},
{
"name": "auth_user",
"description": "Optional auth user",
"optional": true
},
{
"name": "auth_password",
"description": "Optional auth password",
"optional": true
},
{
"name": "follow_redirects",
"description": "Follow redirects (default: true)",
"optional": true
},
{
"name": "payload",
"description": "Specify a request body (limited to 1024 characters). If following a redirect, payload will only be sent to first location",
"optional": true
}
]
},
{
"id": "remote.tcp",
"category": "remote",
"type": "remote",
"fields": [
{
"name": "port",
"description": "Port number",
"optional": false
},
{
"name": "banner_match",
"description": "Banner match regex.",
"optional": true
},
{
"name": "send_body",
"description": "Send a body. If a banner is provided the body is sent after the banner is verified.",
"optional": true
},
{
"name": "body_match",
"description": "Body match regex. Key/Values are captured when matches are specified within the regex. Note: Maximum body size 1024 bytes.",
"optional": true
},
{
"name": "ssl",
"description": "Enable SSL",
"optional": true
}
]
},
{
"id": "remote.ping",
"category": "remote",
"type": "remote",
"fields": [
{
"name": "count",
"description": "Number of pings to send within a single check",
"optional": true
}
]
},
{
"id": "remote.ftp-banner",
"category": "remote",
"type": "remote",
"fields": [
{
"name": "port",
"description": "Port number (default: 21)",
"optional": true
}
]
},
{
"id": "remote.imap-banner",
"category": "remote",
"type": "remote",
"fields": [
{
"name": "port",
"description": "Port number (default: 143)",
"optional": true
},
{
"name": "ssl",
"description": "Enable SSL",
"optional": true
}
]
},
{
"id": "remote.pop3-banner",
"category": "remote",
"type": "remote",
"fields": [
{
"name": "port",
"description": "Port number (default: 110)",
"optional": true
},
{
"name": "ssl",
"description": "Enable SSL",
"optional": true
}
]
},
{
"id": "remote.smtp-banner",
"category": "remote",
"type": "remote",
"fields": [
{
"name": "port",
"description": "Port number (default: 25)",
"optional": true
},
{
"name": "ssl",
"description": "Enable SSL",
"optional": true
}
]
},
{
"id": "remote.postgresql-banner",
"category": "remote",
"type": "remote",
"fields": [
{
"name": "port",
"description": "Port number (default: 5432)",
"optional": true
},
{
"name": "ssl",
"description": "Enable SSL",
"optional": true
}
]
},
{
"id": "remote.telnet-banner",
"category": "remote",
"type": "remote",
"fields": [
{
"name": "port",
"description": "Port number (default: 23)",
"optional": true
},
{
"name": "banner_match",
"description": "Banner to check",
"optional": true
},
{
"name": "ssl",
"description": "Enable SSL",
"optional": true
}
]
},
{
"id": "remote.mysql-banner",
"category": "remote",
"type": "remote",
"fields": [
{
"name": "port",
"description": "Port number (default: 3306)",
"optional": true
},
{
"name": "ssl",
"description": "Enable SSL",
"optional": true
}
]
},
{
"id": "remote.mssql-banner",
"category": "remote",
"type": "remote",
"fields": [
{
"name": "port",
"description": "Port number (default: 1433)",
"optional": true
},
{
"name": "ssl",
"description": "Enable SSL",
"optional": true
}
]
}
],
"metadata": {
"count": 14,
"limit": 50,
"marker": null,
"next_marker": null,
"next_href": null
}
}
Get a check type by ID
GET /check_types/{checkTypeId}
Retrieve information for a single check type.
The following table shows the possible response codes for this operation:
Response Code | Name | Description |
---|---|---|
200 | OK | The request completed. |
401 | Unauthorized | The system received a request from a user that is not authenticated. |
403 | Forbidden | The system received a request that the user is not authorized to make. |
500 | Internal Server Error | An unexpected condition was encountered. |
503 | Service Unavailable | The system is experiencing heavy load or another system failure. |
The following table shows the header parameters for the request:
Name | Type | Description |
---|---|---|
X-Auth-Token | String (Required) | A valid authentication token with administrative access. For details, see Get your credentials |
Note
This operation does not accept a request body.
Example Get check type by ID: JSON response
{
"id": "remote.dns",
"category": "remote",
"type": "remote",
"fields": [
{
"name": "port",
"description": "Port number (default: 53)",
"optional": true
},
{
"name": "query",
"description": "DNS Query",
"optional": false
},
{
"name": "record_type",
"description": "DNS Record Type",
"optional": false
}
]
}