Skip to main content
A DNS monitor resolves a domain and compares the answer with the values you expect. It catches DNS misconfiguration, failed propagation and unexpected record changes (including hijacking). It does not check whether the resolved addresses are reachable; pair it with an HTTP or Port monitor for that.

When to use it

  • Confirm a domain resolves to the right IP addresses
  • Verify a DNS change has propagated
  • Watch MX, TXT or NS records for unexpected changes
  • Detect DNS server outages

Create a DNS monitor

1

Enter the domain

Use a public hostname such as example.com. Private and internal names, IP addresses in private ranges, and UptimeIO’s own domains are rejected with a VALIDATION_ERROR.
2

Add record checks

Add one or more record checks: a record type, the expected values and how to compare them.
3

Optionally choose a DNS server

Leave it empty to use the default resolvers, or enter a resolver IP address such as 8.8.8.8.
4

Set interval and locations

The interval minimum depends on your plan (Free 300 seconds, Pro and Scale 60 seconds). DNS answers change slowly, so every 5 minutes is usually enough. Pro and Scale can choose probe locations; Free uses automatic selection.

Settings

Each entry of record_entries:

Validation modes

The monitor succeeds only when all record entries pass. An entry also fails when no records of that type exist.
For MX records the comparison uses the mail server hostname only (for example mail.example.com), not the priority.

Example

Record types

DNS server choice

Incidents

When a record check fails, UptimeIO records a DNS failure (for example no records found, or a value mismatch). An incident opens only after several probe locations confirm the failure (see Understanding incidents). Connect an email, Slack or webhook channel so unexpected record changes reach you quickly.

Best practices

  • Monitor the records that matter: the apex A/AAAA, www, MX and any critical subdomains.
  • If you use GeoDNS, answers differ by location; use contains or regex rather than one fixed address.
  • Before a planned change, lower the record’s TTL a day ahead so the change propagates faster.

Troubleshooting

The domain or record type does not exist. Check registration and nameserver configuration with dig example.com.
The records changed, a CDN or load balancer returns different addresses, or (if unauthorized) the domain may have been tampered with. Query your authoritative nameserver directly: dig @ns1.example.com example.com.
dns_server must be an IP address, not a hostname.
Raise resolution_timeout_ms, or try a different resolver in dns_server.
Propagation may be in progress, or the domain uses GeoDNS.

Next steps

HTTP Monitoring

Monitor web services and APIs

Notifications

Configure alerts for DNS monitors