- Home
- Monitoring
- DNS monitoring
DNS monitoring: know when a record changes or stops resolving
Resolve A, AAAA, CNAME, MX, NS or TXT records through public resolvers and compare the answer with the values you expect.
- From $7 a month on Starter
- Free plan: 30 monitors for HTTP(S), keyword, ping and port
- No credit card for Free
- Amsterdam10msA
- London14msA
- RecordA
- TTL300 s
- Lookup10 ms
Illustrative example
Check it now, in your browser
No account. DNS monitoring: type a target and see roughly what it looks at. Nothing you type is stored.
Asks Cloudflare 1.1.1.1 over DNS-over-HTTPS from your browser. A monitor asks Google and Cloudflare from our regions.
What a dns monitor looks at
Expected values
List one or more values. The check fails when any of them is missing from the answer, for example the IP a site must resolve to.
Resolution failure
No such record, SERVFAIL and timeouts all fail the check with the specific error.
Six record types
A, AAAA, CNAME, MX, NS and TXT. MX values can be given as the priority and host, or just the host.
Public resolvers
Queries go through Google (8.8.8.8) and Cloudflare (1.1.1.1), so you see what the public internet sees, cache included.
DNS monitoring: what an alert looks like
The same event arrives as an e-mail, a Telegram message or a Slack card. This is the wording the channels send; the host, times and numbers are made up.
clienta.com
clienta.com · DNS A record for clienta.com is 198.51.100.7, expected 203.0.113.10 · confirmed from Amsterdam (AMS), London (LON)
| Error | DNS A record for clienta.com is 198.51.100.7, expected 203.0.113.10 |
|---|---|
| Confirmed by | Amsterdam (AMS), London (LON) |
| Since | 14:02:11 UTC |
| Target | clienta.com |
| Next step | Check the server / hosting panel. Acknowledge so the team knows you are on it. |
AcknowledgeOpen incident
Tenium · checked from Amsterdam · 14:02 UTC
Tenium alerts
🔴 DOWN · clienta.com · DNS A record for clienta.com is 198.51.100.7, expected 203.0.113.10 · confirmed from Amsterdam (AMS), London (LON)
reply /ack or acknowledge · open incident
TTenium APP 2:02 PM
DOWN · clienta.com
clienta.com · DNS A record for clienta.com is 198.51.100.7, expected 203.0.113.10 · confirmed from Amsterdam (AMS), London (LON)
- Error: DNS A record for clienta.com is 198.51.100.7, expected 203.0.113.10
- Confirmed by: Amsterdam (AMS), London (LON)
- Target: clienta.com
AcknowledgeOpen incident
Check the server / hosting panel. Acknowledge so the team knows you are on it. · checked from Amsterdam
DNS monitoring: e-mail, Discord and Google Chat work on every plan; Slack, Telegram, Teams and Mattermost start on Starter. There are no SMS or voice-call alerts.
Response time with a threshold
Every check stores how long the response took. DNS monitoring: drag the threshold and see when a slow-response alert would have fired.
How fast you find out
Pick a plan to see its check interval and how long a failure takes to reach you, including the confirmation round.
DNS monitoring: a failure lands at a random moment between two checks, so on average you wait half an interval, and the worst case is a whole interval plus the confirmation window. A single failing region is not enough: all two regions must agree before an incident opens. The other regions are asked straight away, and we allow up to 60 seconds for the answers.
How to set up dns monitoring in 30 seconds
Enter the target
Add the domain, choose the DNS type and the record type, and Tenium fills in a sensible timeout and default confirmation settings.
Pick an interval
Fastest check interval: 30 s on Pro and Agency, 1 min on Starter, 5 min on Free. Slower intervals are available on every plan.
Set the expected value
Choose who is told. Email, Discord and Google Chat work on every plan, Slack, Telegram, Teams and Mattermost start on Starter, webhooks on Pro.
Save
The first check runs within seconds. If a check ever fails, other regions re-check it before an incident opens, so one bad route does not page you.
What each error means
This is the text an incident shows in its Error line, the usual cause, and the first thing to look at.
NOT_FOUNDNo A record found for clienta.com
The record is gone (NXDOMAIN or an empty answer). Someone deleted it, or the zone moved without it.
Shown as: No A record found for clienta.com
MISMATCHDNS A record for clienta.com is 198.51.100.7, expected 203.0.113.10
The name resolves but to something else: a hijack, a stale cutover, or a zone edited by mistake. This catches it within one interval.
Shown as: DNS A record for clienta.com is 198.51.100.7, expected 203.0.113.10
SERVFAILDNS error: SERVFAIL
The resolver could not get an answer from your nameservers: a dead nameserver, broken DNSSEC, or a provider outage.
Shown as: DNS error: SERVFAIL
TIMEOUTDNS error: query timeout
The authoritative servers did not answer in time. If all of them are slow, your DNS provider has a problem.
Shown as: DNS error: query timeout
DNS monitoring by plan
| Free $0/mo | Starter $7/mo | Pro $29/mo | Agency $59/mo | |
|---|---|---|---|---|
| Available | — | ✓ | ✓ | ✓ |
| Monitors | 30 | 100 | 300 | 1000 |
| Fastest interval | 5 min | 1 min | 30 s | 30 s |
| Regions | 1 | 2 | 2 | 2 |
| Custom headers | — | — | ✓ | ✓ |
| Response-time alerts | — | — | ✓ | ✓ |
| Escalation to a second contact | — | — | ✓ | ✓ |
| Status pages | 1 | 3 | 10 | Unlimited |
This check starts on the Starter plan. HTTP(S), keyword, ping and port checks are on every plan.
Other monitor types
What the check queries
A DNS monitor asks public recursive resolvers, Google at 8.8.8.8 and Cloudflare at 1.1.1.1, for the record type you chose and compares the answer with what you told Tenium to expect. It tries twice with a timeout of up to 10 seconds, and the time the lookup took is stored as the response time. The record types are A, AAAA, CNAME, MX, NS and TXT.
Because the questions go through recursive resolvers, you see what the public internet sees, including cached answers. You cannot query one specific authoritative nameserver, and you will not see a propagation map. The upside is that a check passing here means real visitors resolve the name; the downside is that changes show up only after the record's TTL expires.
Expected values: subset, not exact
Put one or more values in the expected field, separated by commas or new lines. Each must appear in the answer; additional records in the answer are fine. Comparison ignores case and trailing dots. So an A monitor expecting 203.0.113.10 passes when the answer is 203.0.113.10 and 203.0.113.11, and fails the moment 203.0.113.10 disappears. The failure message prints what was found, which makes a hijack or a mistaken edit easy to read.
Some formats deserve a note. MX answers are matched on the host name alone or on priority plus host ("10 mx1.clienta.com"). TXT chunks are joined into one string before comparing, so long DKIM keys compare as written; a TXT monitor needs the whole value. If you leave the expected field empty, the check only requires that the record exists, which catches deletion but not substitution. Set the expected value when you want protection against change.
Records worth watching
A short list gives most of the safety:
- A or AAAA of the apex and www: the classic "someone pointed the site elsewhere" detector.
- NS of the domain: set both nameservers as expected; this is also the best available alarm for a nameserver hijack, since the registration data itself is not watched.
- MX: mail that silently stops arriving is worse than a site that is visibly down.
- TXT at _dmarc.clienta.com and for SPF: verifies that policy records survive a DNS provider migration.
- CNAME of a status or shop subdomain pointing to a SaaS: catches dangling records that could be taken over.
Cloudflare, CDNs and flattened records
If a hostname is proxied, its A record shows the provider's addresses, which are shared and can change without notice. Expecting those is brittle. Watch the NS record to see that the zone is still delegated to the provider, and use website monitoring to see that traffic reaches your origin. CNAME flattening, used by some providers at the apex, makes a CNAME answer look like an A record, so choose the record type that the public sees.
Planned changes without noise
When you migrate a site you will change records deliberately, and the monitor will fail in the minutes between your edit and the new value being served everywhere, because different resolvers hold different cached answers. Two habits help. Lower the TTL a day ahead so caches turn over quickly, and put the monitor into a maintenance window during the switch, then update the expected value and end the window. If you forget to update the expected value, the monitor keeps pointing to the old address and will keep reporting an incident, which is the correct behaviour.
Failures are specific: no record found, SERVFAIL (the zone's servers are failing or DNSSEC is broken), a query timeout, or "record is X, expected Y". DNS monitoring starts on the Starter plan, and check intervals follow your plan, from 1 min on Starter to 30 s on Pro. The 2 regions that run checks all use the same two public resolvers.
DNS monitoring questions
Can I monitor a record on a subdomain?
Yes, enter the full name, for example _dmarc.clienta.com or shop.clienta.com, and pick the record type that name has.
Will it tell me when any record changes?
It tells you when the answer stops containing your expected values, or when the record disappears. It does not store a before-and-after history of arbitrary changes, so list the values you care about.
Is DNSSEC validated?
Validation is done by the public resolvers. A zone with broken DNSSEC typically comes back as SERVFAIL, and that is reported as a failure.
Can I query my own nameserver?
Not at present; queries go to the two public resolvers. A UDP monitor on port 53 tells you whether your authoritative server answers at all.
Try dns monitoring on Starter
This check starts on the Starter plan at $7 a month. The Free plan, no card needed, covers 30 monitors with HTTP(S), keyword, ping and port checks.