Check Types

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

NameDescriptionValidation
categoryThe category the check is in.* String
typeThe name of the supported check type.* String
fieldsCheck type fields. Optional

Array [Optional]
supported_platformsPlatforms 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 CodeNameDescription
200OKThe request completed.
401UnauthorizedThe system received a request from a user that is not authenticated.
403ForbiddenThe system received a request that the user is not authorized to make.
500Internal Server ErrorAn unexpected condition was encountered.
503Service UnavailableThe system is experiencing heavy load or another system failure.

Request

The following table shows the header parameters for the request:

NameTypeDescription
X-Auth-TokenString (Required)A valid authentication token with administrative access. For details, see Get your credentials

Note

This operation does not accept a request body.

Response

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 CodeNameDescription
200OKThe request completed.
401UnauthorizedThe system received a request from a user that is not authenticated.
403ForbiddenThe system received a request that the user is not authorized to make.
500Internal Server ErrorAn unexpected condition was encountered.
503Service UnavailableThe system is experiencing heavy load or another system failure.

Request

The following table shows the header parameters for the request:

NameTypeDescription
X-Auth-TokenString (Required)A valid authentication token with administrative access. For details, see Get your credentials

Note

This operation does not accept a request body.

Response

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
}
]
}