Monitor Types
Complete reference for all 25+ monitor types
ATStatus supports a wide variety of monitor types to cover virtually any service, protocol, or infrastructure component you need to monitor.
Web & HTTP Monitors
HTTP/HTTPS Monitor
The most common monitor type. Checks if a URL returns a successful HTTP response.
| Setting | Description | Default |
|---|---|---|
url | URL to monitor (http:// or https://) | Required |
method | HTTP method: GET, POST, HEAD, PUT, DELETE | GET |
expectedStatus | Expected HTTP status code(s) | 200-299 |
followRedirects | Follow HTTP redirects | true |
maxRedirects | Maximum number of redirects to follow | 5 |
headers | Custom headers (JSON) | {} |
body | Request body (for POST/PUT) | null |
ignoreTls | Ignore TLS certificate errors | false |
// Example: API Health Check
{
"type": "http",
"url": "https://api.example.com/health",
"method": "GET",
"expectedStatus": 200,
"headers": {
"Authorization": "Bearer token123"
}
}Keyword Monitor
Checks if the HTTP response body contains a specific keyword or phrase.
| Setting | Description |
|---|---|
keyword | Text to search for in response body |
keywordType | contains (must include) or not_contains (must not include) |
caseSensitive | Case-sensitive matching (default: false) |
Perfect for checking if an API returns specific JSON values like "status":"healthy"or verifying a webpage contains expected content.
JSON Query Monitor
Parses JSON response and evaluates a JSONPath expression.
| Setting | Description |
|---|---|
jsonPath | JSONPath expression (e.g., $.data.status) |
expectedValue | Expected value at the path |
operator | ==, !=, >, <, contains |
// Check if API returns status="healthy"
{
"type": "json-query",
"url": "https://api.example.com/status",
"jsonPath": "$.status",
"expectedValue": "healthy",
"operator": "=="
}gRPC Health Monitor
Checks gRPC service health using the standard health checking protocol.
| Setting | Description |
|---|---|
grpcHost | Host and port (e.g., grpc.example.com:50051) |
grpcService | Service name (empty for server health) |
grpcProtoFile | Optional proto file path |
grpcTls | Use TLS connection |
Network & Protocol Monitors
TCP Port Monitor
Checks if a TCP port is open and accepting connections.
| Setting | Description |
|---|---|
hostname | Target hostname or IP |
port | TCP port number |
// Check PostgreSQL port
{
"type": "tcp",
"hostname": "db.example.com",
"port": 5432
}UDP Monitor
Sends a UDP packet and checks for a response.
| Setting | Description |
|---|---|
hostname | Target hostname or IP |
port | UDP port number |
data | Data to send (hex or string) |
ICMP Ping Monitor
Sends ICMP echo requests (ping) to check host availability.
| Setting | Description |
|---|---|
hostname | Target hostname or IP |
packetCount | Number of ping packets to send |
ICMP ping requires elevated privileges on most systems. The monitoring process may need to run with appropriate permissions.
DNS Monitor
Performs DNS resolution and validates the response.
| Setting | Description |
|---|---|
dnsHost | Domain to resolve |
dnsServer | DNS server to query (optional) |
dnsRecordType | A, AAAA, CNAME, MX, TXT, NS, etc. |
expectedResult | Expected IP or value (optional) |
// Check DNS resolution
{
"type": "dns",
"dnsHost": "example.com",
"dnsRecordType": "A",
"expectedResult": "93.184.216.34"
}Database Monitors
MySQL/MariaDB Monitor
Connects to MySQL or MariaDB and optionally runs a query.
| Setting | Description |
|---|---|
mysqlHost | Database hostname |
mysqlPort | Port (default: 3306) |
mysqlUsername | Database username |
mysqlPassword | Database password (encrypted) |
mysqlDatabase | Database name |
mysqlQuery | Optional query to execute |
PostgreSQL Monitor
Connects to PostgreSQL and optionally runs a query.
| Setting | Description |
|---|---|
postgresHost | Database hostname |
postgresPort | Port (default: 5432) |
postgresUsername | Database username |
postgresPassword | Database password (encrypted) |
postgresDatabase | Database name |
postgresQuery | Optional query to execute |
MongoDB Monitor
Connects to MongoDB and checks database health.
| Setting | Description |
|---|---|
mongoUri | MongoDB connection string |
mongoCommand | Optional command to run (e.g., ping) |
Redis Monitor
Connects to Redis and checks availability.
| Setting | Description |
|---|---|
redisHost | Redis hostname |
redisPort | Port (default: 6379) |
redisPassword | Optional password |
redisDatabase | Database index (default: 0) |
Certificate & Security Monitors
SSL/TLS Certificate Monitor
Checks SSL certificate validity and expiration.
| Setting | Description |
|---|---|
sslHost | Hostname to check certificate |
sslPort | Port (default: 443) |
sslDaysWarning | Days before expiry to warn (default: 30) |
sslDaysCritical | Days before expiry for critical (default: 7) |
// Check certificate expiration
{
"type": "ssl",
"sslHost": "example.com",
"sslDaysWarning": 30,
"sslDaysCritical": 7
}Use this monitor to get notified before your certificates expire. Set degraded threshold at 30 days and critical at 7 days to have time to renew.
Application & Service Monitors
Docker Container Monitor
Checks Docker container status via the Docker API.
| Setting | Description |
|---|---|
dockerHost | Docker daemon socket or API URL |
dockerContainer | Container name or ID |
Steam Game Server Monitor
Queries Steam game servers using the A2S protocol.
| Setting | Description |
|---|---|
steamHost | Game server hostname/IP |
steamPort | Query port (usually game port + 1) |
Minecraft Server Monitor
Queries Minecraft servers using the server list ping protocol.
| Setting | Description |
|---|---|
minecraftHost | Server hostname/IP |
minecraftPort | Server port (default: 25565) |
GameDig Monitor
Monitor 100+ game server types using the GameDig library.
| Setting | Description |
|---|---|
gamedigType | Game type identifier (e.g., arkse, rust) |
gamedigHost | Server hostname/IP |
gamedigPort | Query port |
Messaging & Queue Monitors
RabbitMQ Monitor
Checks RabbitMQ server health via the management API.
| Setting | Description |
|---|---|
rabbitmqHost | Management API URL |
rabbitmqUsername | Username |
rabbitmqPassword | Password |
Kafka Monitor
Connects to Kafka brokers and checks cluster health.
| Setting | Description |
|---|---|
kafkaBrokers | Comma-separated broker list |
kafkaTopic | Topic to check (optional) |
kafkaSasl | SASL authentication config |
Push-Based Monitors
Push Monitor
Instead of ATStatus checking your service, your service pushes its status to ATStatus. Useful for services behind firewalls or complex health checks.
| Setting | Description |
|---|---|
pushToken | Unique push token (auto-generated) |
pushInterval | Expected interval between pushes |
pushGrace | Grace period before marking down |
# Your service pushes status
curl -X POST https://status.example.com/api/push/TOKEN123 \
-H "Content-Type: application/json" \
-d '{"status": "up", "msg": "All systems operational"}'Special Monitors
Group Monitor
Combines multiple monitors into a single status based on configurable logic.
| Setting | Description |
|---|---|
groupMonitors | List of child monitor IDs |
groupLogic | any (one up = up), all (all must be up), majority |
Real Browser Monitor
Uses a headless browser to load pages and check for JavaScript-rendered content.
| Setting | Description |
|---|---|
browserUrl | URL to load in browser |
browserSelector | CSS selector to wait for |
browserScript | Optional JavaScript to execute |
Real browser monitors use more resources than HTTP monitors. Use sparingly and only when JavaScript rendering is required.
