Incident response
Monitors
Check websites and APIs with HTTP requests, response-time tracking, keyword verification, failure thresholds, SSL expiry, and recovery alerts.
Monitors
Monitors check your websites, APIs, and services by periodically sending HTTP/HTTPS requests and checking if they respond correctly. Get instant alerts when your services go down and recovery notifications when they come back up.
How It Works MonoDuty sends HTTP requests to your endpoint at configurable intervals. We check the status code, response time, keyword presence, and SSL certificate validity. If consecutive failures exceed your threshold, we alert your team and create an incident.
Key Features
- HTTP/HTTPS Monitoring β Support for GET, POST, and custom HTTP methods
- Response Time Tracking β Monitor latency and track performance trends
- Uptime Percentage β 30-day rolling uptime calculation
- SSL Certificate Monitoring β Track SSL expiry and get early warnings
- Keyword Verification β Verify specific content exists (or doesn't) in responses
- Custom Headers & Body β Send authentication headers or POST bodies
- Failure Thresholds β Configure consecutive failures before alerting (default: 3)
- Auto Incidents β Automatically create incidents when services go down
- Recovery Alerts β Get notified when services come back up
- Daily Statistics β View daily uptime percentages, response times, and check counts
Creating a Monitor
Via Dashboard
- Navigate to Dashboard β Monitors
- Click "New Monitor"
- Enter a name (e.g., "Production API")
- Enter the URL to monitor (e.g.,
https://api.example.com/health) - Configure check settings:
- Method β GET (default), POST, etc.
- Expected Status β 200 (default)
- Check Interval β How often to check (min 60 seconds)
- Timeout β Request timeout (1β30 seconds)
- Failure Threshold β Consecutive failures before alerting (default: 3)
- Optionally add keyword verification, custom headers, or request body
- Configure notification channels
- Click "Create"
Via API
curl -X POST https://api.monoduty.com/api/uptime-monitors \
-H "Content-Type: application/json" \
-d '{
"name": "Production API",
"url": "https://api.example.com/health",
"method": "GET",
"expected_status": 200,
"interval_seconds": 300,
"timeout_ms": 10000,
"failure_threshold": 3,
"channels": [
{"type": "EMAIL", "target": "[email protected]"},
{"type": "SLACK", "target": "https://hooks.slack.com/..."}
]
}'Health Check Configuration
Monitor Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
url | string | β | URL to monitor (http:// or https://) |
method | string | GET | HTTP method (GET, POST, HEAD, etc.) |
expected_status | number | 200 | Expected HTTP response status code |
timeout_ms | number | 10000 | Request timeout in milliseconds (1000β30000) |
interval_seconds | number | 300 | Check frequency in seconds (min 60) |
failure_threshold | number | 3 | Consecutive failures before alerting |
keyword | string | null | Keyword to check in response body |
keyword_must_contain | boolean | true | true = keyword must exist, false = keyword must not exist |
headers | object | null | Custom request headers (e.g., Authorization) |
Monitor States
A monitor can be in one of the following states:
| State | Description | Alert? |
|---|---|---|
pending | Just created, waiting for first check | No |
up | Service is responding correctly | Recovery alert (if was down) |
degraded | Failures detected but below threshold | No |
down | Consecutive failures exceeded threshold | Yes β creates incident |
β
Automatic Incident Creation When a monitor transitions to "down" state, MonoDuty automatically creates a CRITICAL incident and notifies all configured channels. When the service recovers, a recovery notification is sent.
SSL Certificate Monitoring
For HTTPS endpoints, Monitors automatically check your SSL certificate validity:
- Automatic Detection β SSL certificate details are captured on every health check
- Days Remaining β Track how many days until your certificate expires
- Expiry Dashboard β View SSL expiry dates for all monitors at a glance
- Error Detection β Detect expired, self-signed, or misconfigured certificates
SSL Expiry Warning Keep an eye on the SSL days remaining in your dashboard. We recommend renewing certificates at least 30 days before expiry to avoid service disruptions.
Daily Statistics
Monitors automatically generate daily statistics for each monitor:
- Total Checks β Number of health checks performed
- Successful / Failed β Breakdown of check results
- Average Response Time β Mean response latency in milliseconds
- Min / Max Response Time β Response time range
- Uptime Percentage β Daily uptime (successful / total Γ 100)