← All features

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.