ATStatus
ATStatus WikiLoading documentation...

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.

25+
Monitor Types
HTTP/S
Web Protocols
TCP/UDP
Socket Protocols
DNS
Name Resolution

Web & HTTP Monitors

HTTP/HTTPS Monitor

The most common monitor type. Checks if a URL returns a successful HTTP response.

SettingDescriptionDefault
urlURL to monitor (http:// or https://)Required
methodHTTP method: GET, POST, HEAD, PUT, DELETEGET
expectedStatusExpected HTTP status code(s)200-299
followRedirectsFollow HTTP redirectstrue
maxRedirectsMaximum number of redirects to follow5
headersCustom headers (JSON){}
bodyRequest body (for POST/PUT)null
ignoreTlsIgnore TLS certificate errorsfalse
// 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.

SettingDescription
keywordText to search for in response body
keywordTypecontains (must include) or not_contains (must not include)
caseSensitiveCase-sensitive matching (default: false)
Use Case

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.

SettingDescription
jsonPathJSONPath expression (e.g., $.data.status)
expectedValueExpected 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.

SettingDescription
grpcHostHost and port (e.g., grpc.example.com:50051)
grpcServiceService name (empty for server health)
grpcProtoFileOptional proto file path
grpcTlsUse TLS connection

Network & Protocol Monitors

TCP Port Monitor

Checks if a TCP port is open and accepting connections.

SettingDescription
hostnameTarget hostname or IP
portTCP port number
// Check PostgreSQL port
{
  "type": "tcp",
  "hostname": "db.example.com",
  "port": 5432
}

UDP Monitor

Sends a UDP packet and checks for a response.

SettingDescription
hostnameTarget hostname or IP
portUDP port number
dataData to send (hex or string)

ICMP Ping Monitor

Sends ICMP echo requests (ping) to check host availability.

SettingDescription
hostnameTarget hostname or IP
packetCountNumber of ping packets to send
Server Requirements

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.

SettingDescription
dnsHostDomain to resolve
dnsServerDNS server to query (optional)
dnsRecordTypeA, AAAA, CNAME, MX, TXT, NS, etc.
expectedResultExpected 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.

SettingDescription
mysqlHostDatabase hostname
mysqlPortPort (default: 3306)
mysqlUsernameDatabase username
mysqlPasswordDatabase password (encrypted)
mysqlDatabaseDatabase name
mysqlQueryOptional query to execute

PostgreSQL Monitor

Connects to PostgreSQL and optionally runs a query.

SettingDescription
postgresHostDatabase hostname
postgresPortPort (default: 5432)
postgresUsernameDatabase username
postgresPasswordDatabase password (encrypted)
postgresDatabaseDatabase name
postgresQueryOptional query to execute

MongoDB Monitor

Connects to MongoDB and checks database health.

SettingDescription
mongoUriMongoDB connection string
mongoCommandOptional command to run (e.g., ping)

Redis Monitor

Connects to Redis and checks availability.

SettingDescription
redisHostRedis hostname
redisPortPort (default: 6379)
redisPasswordOptional password
redisDatabaseDatabase index (default: 0)

Certificate & Security Monitors

SSL/TLS Certificate Monitor

Checks SSL certificate validity and expiration.

SettingDescription
sslHostHostname to check certificate
sslPortPort (default: 443)
sslDaysWarningDays before expiry to warn (default: 30)
sslDaysCriticalDays before expiry for critical (default: 7)
// Check certificate expiration
{
  "type": "ssl",
  "sslHost": "example.com",
  "sslDaysWarning": 30,
  "sslDaysCritical": 7
}
Proactive Alerting

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.

SettingDescription
dockerHostDocker daemon socket or API URL
dockerContainerContainer name or ID

Steam Game Server Monitor

Queries Steam game servers using the A2S protocol.

SettingDescription
steamHostGame server hostname/IP
steamPortQuery port (usually game port + 1)

Minecraft Server Monitor

Queries Minecraft servers using the server list ping protocol.

SettingDescription
minecraftHostServer hostname/IP
minecraftPortServer port (default: 25565)

GameDig Monitor

Monitor 100+ game server types using the GameDig library.

SettingDescription
gamedigTypeGame type identifier (e.g., arkse, rust)
gamedigHostServer hostname/IP
gamedigPortQuery port

Messaging & Queue Monitors

RabbitMQ Monitor

Checks RabbitMQ server health via the management API.

SettingDescription
rabbitmqHostManagement API URL
rabbitmqUsernameUsername
rabbitmqPasswordPassword

Kafka Monitor

Connects to Kafka brokers and checks cluster health.

SettingDescription
kafkaBrokersComma-separated broker list
kafkaTopicTopic to check (optional)
kafkaSaslSASL 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.

SettingDescription
pushTokenUnique push token (auto-generated)
pushIntervalExpected interval between pushes
pushGraceGrace 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.

SettingDescription
groupMonitorsList of child monitor IDs
groupLogicany (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.

SettingDescription
browserUrlURL to load in browser
browserSelectorCSS selector to wait for
browserScriptOptional JavaScript to execute
Resource Usage

Real browser monitors use more resources than HTTP monitors. Use sparingly and only when JavaScript rendering is required.

Choosing the Right Monitor

Website / API
Use HTTP for basic availability, Keyword for content verification,JSON Query for API response validation.
Database
Use the specific database monitor (MySQL, PostgreSQL, MongoDB, Redis) for connection testing and optional query execution.
Game Server
Use Minecraft, Steam, or GameDig monitors for proper protocol support and player count information.
Internal Service
Use TCP for simple port checks, Push for services behind firewalls, or Docker for container monitoring.
SSL Certificate
Use SSL/TLS Certificate monitor to track certificate expiration and get notified before they expire.