Probe type · Starter+
DNS record probe
Resolves a specific DNS record and asserts its value matches — the only probe that catches "someone changed our MX record" before the next HTTP check.
Why you need it
A DNS probe asserts the value at a specific record, not just that something answers. On every interval it sends a single DNS query (DnsClient.NET), joins the answer-section records into a canonical string, and compares them against your expected value.
Record types supported: A,
AAAA, CNAME, MX,
TXT, NS, CAA. Each is
formatted into the canonical form
(e.g. "10 mail.example.com" for MX).
Assertion modes:
- Exact match — the joined string of all returned records must equal the expected value verbatim. Best for single-value records.
- Contains — the expected substring must
appear somewhere in the joined response. Lenient — useful
for TXT records with incidental quoting or when you only
care about a fragment (e.g.
include:_spf.google.com). - Any-match — at least one returned record must equal the expected value. Perfect for round-robin A records.
An optional resolver-server override lets you
point the query at a specific IP (8.8.8.8,
1.1.1.1, your authoritative server) instead of
the system resolver — invaluable for propagation testing.
Where it pays off
Use a DNS probe when you care about what a record resolves to, not just whether the end-application works:
- MX record sanity — assert the priority + host on the apex MX so a rogue change to mail flow gets caught immediately.
- SPF / DKIM / DMARC TXT records — email deliverability collapses the day someone removes the SPF TXT. Probe it with Contains mode.
- Apex A records after a migration — confirm the new IP is being served. Any-match handles round-robin.
- CAA records — make sure only trusted CAs can issue certs for your domain. Cheap tripwire for account takeover.
- Propagation testing — two probes with different resolver overrides, compare results.
Not the right choice when: you just want to know "does my website work" — use HTTP (it implicitly resolves DNS). For TLS-cert validation use SSL. For domain registration expiry (WHOIS / RDAP, not DNS) use Domain — records can keep resolving after registration lapses. PTR records and split-horizon zones aren't supported.
Configuration parameters
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
Name |
string |
Required | — | Human-readable label shown in the dashboard, on the status page, and in alert subject lines. |
Target |
string (hostname) |
Required | — | The name to query, e.g. example.com or _dmarc.example.com. For DKIM selectors include the selector prefix. |
Record type |
A | AAAA | CNAME | MX | TXT | NS | CAA |
Required | A | Which record class to query. |
Expected value |
string |
Optional | — | The value the lookup must satisfy under the assertion mode. Null = "the lookup just has to succeed". |
Assertion mode |
ExactMatch | Contains | AnyMatch |
Optional | ExactMatch | How to compare the resolved value against the expected value. Ignored when expected value is null. |
Resolver server |
string (IP) |
Optional | — | Override the system resolver — query this IP directly (8.8.8.8, 1.1.1.1, or your own authoritative server). Internal IPs blocked by SSRF guard. |
Interval (seconds) |
integer |
Optional | 60 | Time between checks. Floor: 30 s on Starter+. |
Timeout (seconds) |
integer (1-120) |
Optional | 30 | Hard ceiling on the DNS query. |
Show on status page |
boolean |
Optional | false on create | Master visibility gate for the public page. |
Paused |
boolean |
Optional | false | Master kill-switch. |
Auto-email alerts |
boolean |
Optional | true | Per-probe switch on top of per-watcher toggles. |
SLA target |
decimal (99.0-99.999) |
Optional | — | Optional uptime SLO. |
Available on Starter+. Already on StatusPulse? See the full config in Help →
Related
Try DNS record probe in StatusPulse
5 probes, 1 status page, forever. No credit card. US or EU host — you choose.