Check Types
SolidPing supports 32 check types across multiple categories for monitoring your services. Each check type has specific configuration options and validation capabilities.
Network Checks
HTTP/HTTPS
Monitor web services, APIs, and websites.
URL Format:
http://example.com/path
https://api.example.com/health
| Option | Description | Example |
|---|---|---|
| URL | The endpoint to check | https://api.example.com/health |
| Method | HTTP method | GET, POST, PUT, DELETE |
| Timeout | Request timeout | 30s |
| Expected Status | Status code to expect | 200, 2XX (wildcard) |
| Headers | Custom request headers | Authorization: Bearer token |
| Body | Request body (for POST/PUT) | {"key": "value"} |
| Body Match | Pattern to match in response | "status": "ok" |
| Basic Auth | Username and password | user:password |
| Custom User-Agent | Override the default user-agent | SolidPing/1.0 |
Status Code Matching:
- Exact match:
200,201,404 - Wildcard:
2XX(any 2xx status),5XX(any 5xx status)
Examples:
# Basic health check
url: https://api.example.com/health
method: GET
expected_status: 200
timeout: 10s
# API with authentication
url: https://api.example.com/v1/users
method: GET
headers:
Authorization: Bearer your-token
Accept: application/json
expected_status: 200
body_match: '"users":'
# POST request
url: https://api.example.com/webhook
method: POST
headers:
Content-Type: application/json
body: '{"test": true}'
expected_status: 200
TCP
Monitor TCP services like databases, message queues, and custom services.
URL Format:
tcp://hostname:port
tcps://hostname:port # With TLS
| Option | Description | Example |
|---|---|---|
| Host | Target hostname | db.example.com |
| Port | Target port | 5432 |
| TLS | Enable TLS/SSL | true / false |
| Timeout | Connection timeout | 10s |
UDP
Check UDP port reachability.
URL Format:
udp://hostname:port
| Option | Description | Example |
|---|---|---|
| Host | Target hostname | dns.example.com |
| Port | Target port | 53 |
| Timeout | Connection timeout | 10s |
ICMP (Ping)
Check host availability using ICMP echo requests.
URL Format:
ping://hostname
icmp://hostname
| Option | Description | Default |
|---|---|---|
| Host | Target hostname or IP | - |
| Count | Number of packets | 3 |
| Interval | Time between packets | 1s |
| Timeout | Total timeout | 10s |
ICMP checks may require elevated permissions on some systems. Docker containers typically need NET_RAW capability.
DNS
Verify DNS resolution and record values.
URL Format:
dns://resolver/domain?type=A
dns://8.8.8.8/example.com?type=MX
| Option | Description | Example |
|---|---|---|
| Resolver | DNS server to query | 8.8.8.8, 1.1.1.1 |
| Domain | Domain to resolve | example.com |
| Type | Record type | A, AAAA, MX, TXT, CNAME, NS, SOA |
| Expected | Expected values | 93.184.216.34 |
WebSocket
Monitor WebSocket endpoint availability.
URL Format:
ws://hostname/path
wss://hostname/path # With TLS
| Option | Description | Example |
|---|---|---|
| URL | WebSocket endpoint | wss://api.example.com/ws |
| Timeout | Connection timeout | 10s |
Security & Certificates
SSL/TLS Certificate
Monitor SSL/TLS certificate expiration and validity.
| Option | Description | Example |
|---|---|---|
| Host | Target hostname | example.com |
| Port | HTTPS port | 443 |
| Warning Days | Days before expiry to warn | 30 |
| Critical Days | Days before expiry to alert | 7 |
What gets checked:
- Certificate validity
- Expiration date
- Chain validation
- Hostname verification
Domain Expiration
Monitor domain name registration expiration via WHOIS lookup.
| Option | Description | Example |
|---|---|---|
| Domain | Domain name to check | example.com |
| Warning Days | Days before expiry to warn | 30 |
| Critical Days | Days before expiry to alert | 7 |
Database Checks
PostgreSQL
Monitor PostgreSQL database connectivity and query execution.
URL Format:
postgres://user:password@hostname:5432/database
| Option | Description | Example |
|---|---|---|
| URL | Connection string | postgres://user:pass@db:5432/mydb |
| Query | Optional test query | SELECT 1 |
| Timeout | Connection timeout | 10s |
MySQL / MariaDB
Monitor MySQL or MariaDB database connectivity and query execution.
URL Format:
mysql://user:password@hostname:3306/database
| Option | Description | Example |
|---|---|---|
| URL | Connection string | mysql://user:pass@db:3306/mydb |
| Query | Optional test query | SELECT 1 |
| Timeout | Connection timeout | 10s |
MongoDB
Monitor MongoDB connectivity using the ping command.
URL Format:
mongodb://user:password@hostname:27017/database
| Option | Description | Example |
|---|---|---|
| URL | Connection string | mongodb://user:pass@db:27017/mydb |
| Timeout | Connection timeout | 10s |
Redis
Monitor Redis server availability using the PING command.
URL Format:
redis://hostname:6379
redis://:password@hostname:6379
| Option | Description | Example |
|---|---|---|
| URL | Connection string | redis://redis:6379 |
| Timeout | Connection timeout | 10s |
Microsoft SQL Server
Monitor MSSQL database connectivity and query execution.
URL Format:
sqlserver://user:password@hostname:1433?database=mydb
| Option | Description | Example |
|---|---|---|
| URL | Connection string | sqlserver://sa:pass@db:1433?database=mydb |
| Query | Optional test query | SELECT 1 |
| Timeout | Connection timeout | 10s |
Oracle Database
Monitor Oracle database connectivity and query execution.
URL Format:
oracle://user:password@hostname:1521/service
| Option | Description | Example |
|---|---|---|
| URL | Connection string | oracle://user:pass@db:1521/orcl |
| Query | Optional test query | SELECT 1 FROM DUAL |
| Timeout | Connection timeout | 10s |
Email Services
SMTP
Monitor SMTP server availability with optional authentication.
URL Format:
smtp://hostname:25
smtp://hostname:587
smtps://hostname:465 # With SSL
| Option | Description | Example |
|---|---|---|
| Host | SMTP server | smtp.example.com |
| Port | SMTP port | 25, 587, 465 |
| STARTTLS | Enable STARTTLS | true / false |
| Auth | Test authentication | user:password |
| Timeout | Connection timeout | 10s |
IMAP
Monitor IMAP server availability and authentication.
URL Format:
imap://hostname:143
imaps://hostname:993 # With SSL
| Option | Description | Example |
|---|---|---|
| Host | IMAP server | imap.example.com |
| Port | IMAP port | 143, 993 |
| Timeout | Connection timeout | 10s |
POP3
Monitor POP3 server availability and authentication.
URL Format:
pop3://hostname:110
pop3s://hostname:995 # With SSL
| Option | Description | Example |
|---|---|---|
| Host | POP3 server | pop3.example.com |
| Port | POP3 port | 110, 995 |
| Timeout | Connection timeout | 10s |
Remote Access
SSH
Monitor SSH server availability.
URL Format:
ssh://hostname:22
| Option | Description | Example |
|---|---|---|
| Host | SSH server | server.example.com |
| Port | SSH port | 22 |
| Timeout | Connection timeout | 10s |
FTP
Monitor FTP server availability.
URL Format:
ftp://hostname:21
| Option | Description | Example |
|---|---|---|
| Host | FTP server | ftp.example.com |
| Port | FTP port | 21 |
| Timeout | Connection timeout | 10s |
SFTP
Monitor SFTP server availability.
URL Format:
sftp://hostname:22
| Option | Description | Example |
|---|---|---|
| Host | SFTP server | sftp.example.com |
| Port | SFTP port | 22 |
| Timeout | Connection timeout | 10s |
Messaging & Streaming
gRPC
Monitor gRPC services using the standard health check protocol (grpc.health.v1).
URL Format:
grpc://hostname:50051
| Option | Description | Example |
|---|---|---|
| Host | gRPC server | api.example.com |
| Port | gRPC port | 50051 |
| Service | Service name to check | my.service.v1 |
| TLS | Enable TLS | true / false |
| Timeout | Connection timeout | 10s |
Kafka
Monitor Apache Kafka broker connectivity.
URL Format:
kafka://hostname:9092
| Option | Description | Example |
|---|---|---|
| Broker | Kafka broker address | kafka:9092 |
| Timeout | Connection timeout | 10s |
RabbitMQ
Monitor RabbitMQ message queue connectivity.
URL Format:
amqp://user:password@hostname:5672
| Option | Description | Example |
|---|---|---|
| URL | AMQP connection string | amqp://guest:guest@rabbitmq:5672 |
| Timeout | Connection timeout | 10s |
MQTT
Monitor MQTT broker connectivity via subscription.
URL Format:
mqtt://hostname:1883
mqtts://hostname:8883 # With TLS
| Option | Description | Example |
|---|---|---|
| Host | MQTT broker | mqtt.example.com |
| Port | MQTT port | 1883 |
| Timeout | Connection timeout | 10s |
Infrastructure
SNMP
Monitor devices via SNMP protocol.
| Option | Description | Example |
|---|---|---|
| Host | Target device | switch.example.com |
| Community | SNMP community string | public |
| OID | Object identifier | 1.3.6.1.2.1.1.1.0 |
| Version | SNMP version | 2c |
| Timeout | Connection timeout | 10s |
Docker
Monitor remote Docker daemon connectivity.
URL Format:
docker://hostname:2375
| Option | Description | Example |
|---|---|---|
| Host | Docker daemon | docker.example.com |
| Port | Docker API port | 2375, 2376 (TLS) |
| TLS | Enable TLS | true / false |
| Timeout | Connection timeout | 10s |
Game Server
Query game server status using the Steam protocol.
| Option | Description | Example |
|---|---|---|
| Host | Game server address | game.example.com |
| Port | Query port | 27015 |
| Timeout | Connection timeout | 10s |
Special Check Types
Heartbeat
Passive monitoring that expects incoming pings at regular intervals. Instead of SolidPing checking a service, the service pings SolidPing to report it's alive.
| Option | Description | Default |
|---|---|---|
| Period | Expected ping interval | 60s |
| Grace | Grace period before incident | 30s |
Use cases:
- Cron job monitoring
- Backup completion verification
- Batch process health checks
- IoT device connectivity
JavaScript
Custom monitoring scripts with arbitrary logic. Write JavaScript code that runs on each check cycle.
Use cases:
- Complex multi-step API workflows
- Custom business logic validation
- Conditional checks based on time or state
- Aggregating multiple checks into one
Browser
Headless browser-based monitoring using a real browser engine.
Use cases:
- Single-page application monitoring
- Login flow verification
- Visual regression detection
- JavaScript-rendered content checks
Common Options
All check types support these common options:
| Option | Description | Default |
|---|---|---|
name | Display name | - |
description | Description | - |
enabled | Enable/disable check | true |
period | Check interval | 60s |
timeout | Request timeout | 30s |
regions | Worker regions to run from | all |
incident_threshold | Failures before incident | 1 |
escalation_threshold | Failures before escalation | 3 |
recovery_threshold | Successes before recovery | 1 |
Check Intervals
Supported interval formats:
- Seconds:
5s,30s,60s - Minutes:
1m,5m,15m - Hours:
1h,6h,24h
Minimum interval: 5s
Recommended minimum: 30s for production
Best Practices
- Use appropriate timeouts - Set timeouts based on expected response times
- Avoid excessive frequency - Sub-minute checks increase load on both SolidPing and targets
- Use meaningful names - Make check names descriptive for quick identification
- Set appropriate thresholds - Balance between noise and missing real issues
- Monitor from multiple regions - Use distributed workers for global services
- Use database checks for actual connectivity - Prefer native database checks (PostgreSQL, MySQL, Redis) over generic TCP checks for database monitoring
- Leverage heartbeat checks - Use heartbeat mode for monitoring cron jobs and batch processes