Prerequisites
Prerequisites
Before creating DNS Monitors, ensure you have:
- An initialized Checkly CLI project
- A domain or hostname you want to monitor
- Basic understanding of DNS record types (A, AAAA, CNAME, MX, NS, TXT, SOA)
Configuration
A DNS Monitor has its own DNS-specific settings, plus the standard monitor options shared across all check types.- DNS Monitor Settings
- General Monitor Settings
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
request | object | ✅ | - | DNS request configuration object |
degradedResponseTime | number | ❌ | 500 | Response time threshold in milliseconds for degraded status |
maxResponseTime | number | ❌ | 1000 | Maximum response time in milliseconds before marking as failed |
DnsMonitor Options
DNS request configuration that defines the DNS query to perform and how to validate the response.Usage:Parameters:
Define assertions using the Learn more in Assertions.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
query | string | ✅ | - | The DNS query (domain name or IP address) |
recordType | DnsRecordType | ✅ | - | DNS record type: A, AAAA, CNAME, MX, NS, TXT, SOA |
nameServer | string | ❌ | - | Custom DNS server to query (e.g. “9.9.9.9”) |
port | number | ❌ | 53 | Port of the DNS server |
protocol | DnsProtocol | ❌ | UDP | Protocol to use: UDP or TCP |
assertions | DnsAssertion[] | ❌ | [] | Response assertions using DnsAssertionBuilder |
DnsAssertionBuilder to validate DNS responses:Response time threshold in milliseconds for marking the DNS Monitor as degraded (warning state).Usage:
Maximum response time in milliseconds before the DNS Monitor is marked as failed.Usage:
DnsMonitor Assertions
To define assertions for the request of an DnsMonitor you should use the DnsAssertionBuilder. The following sources are available for DNS monitor assertions:
responseTime(): Assert the total response time of the DNS request in milliseconds. Use this to set thresholds for failed lookupsresponseCode(): By default, DNS monitors pass when the return code is NOERROR and fail on error codes (FORMERR, SERVFAIL, NXDOMAIN, etc.). You can override this behavior by defining a custom return code assertiontextAnswer(): The raw DNS response as plain text. Use this to check for specific strings in the responsejsonAnswer(property?): The DNS response in JSON format. This allows you to target specific fields using JSON path assertions. The response structure varies by record type. Learn more about using JSON path.
- Assert the total response time of the DNS request
- Assert the DNS response code
- Assert against specific JSON fields in the response.
General Monitor Options
Friendly name for your DNS Monitor that will be displayed in the Checkly dashboard and used in notifications.Usage:
How often the DNS Monitor should run. Use the Available frequencies:
Frequency enum to set the check interval.Usage:EVERY_10S, EVERY_20S, EVERY_30S, EVERY_1M, EVERY_2M, EVERY_5M, EVERY_10M, EVERY_15M, EVERY_30M, EVERY_1H, EVERY_2H, EVERY_3H, EVERY_6H, EVERY_12H, EVERY_24HArray of public location codes where the DNS Monitor should run from. Multiple locations provide geographic coverage and help detect regional DNS issues.Usage:
Whether the DNS Monitor is enabled and will run according to its schedule.Usage: