You see the change, not just that one happened
A bare "your DNS changed" is half an alert. Hoppla hands you the record type and the value it moved from and to, so you know in one glance whether that A record swap was your deploy or somebody else's.
Hoppla resolves your DNS records on a schedule and diffs each run against the last. When an A record repoints, an MX drops, or a TXT gets rewritten, you see the old value sitting next to the new one. A failed lookup or an empty answer is the only thing that marks the check down. A record change is an advisory you'll want to read, not a 3am page for a migration you planned yourself.
resolve acme.io A 203.0.113.10 → 198.51.100.7 MX ok 41ms CHANGED
Fictional values. Not a live measurement.
Hoppla resolves your domain's records on a schedule (A, AAAA, MX, CNAME, NS, TXT and CAA by default, plus SOA and SRV if you want them) and keeps every answer. On the next run it diffs the new values against the last. TTL is deliberately left out, so a routine TTL tick never reads as a change. A different value raises an advisory (routine edge-IP rotation within the same CDN is filtered out by default). A lookup that errors or comes back empty is what marks the check down.
On each run Hoppla queries your configured record types (A, AAAA, MX, CNAME, NS, TXT and CAA out of the box) and records every answer it gets back. The outbound resolution is SSRF-guarded: nameservers taken from your zone are only queried on public addresses, so a record pointing somewhere it shouldn't can't be used to probe Hoppla's internal network.
Hoppla compares this run's values to the previous run's, type by type. TTL is excluded on purpose: a counter ticking down between resolutions is normal and never registers as a change. Only the actual record values get matched.
When a value changes, Hoppla raises an advisory with the record type and the before-and-after values. A record change is informational. It never marks the monitor down, because a planned migration is a change you want to see, not an outage to be woken for.
The check goes down for one of two reasons: the lookup errored, or it returned no records at all. If Hoppla's probe loses its own connectivity (its canary hosts don't answer), it records the target as up rather than inventing a failure, so a network outage on our side doesn't turn into a false alarm on yours. Every run also stores the query response time in milliseconds.
A bare "your DNS changed" is half an alert. Hoppla hands you the record type and the value it moved from and to, so you know in one glance whether that A record swap was your deploy or somebody else's.
TTL counts down between every resolution. Diff it and you'd get an alert on nearly every run. Hoppla leaves TTL out of the comparison, so a notification means a value worth looking at actually moved, not the clock.
Record changes never mark the monitor down. And if Hoppla's probe loses its own connectivity, the check records the target as up instead of failing it. What fails is a lookup that errored or came back empty.
You own the domain and the registrar login, and nobody else does. So the day an A record or your MX changes and it wasn't you, you want to know on the next check, not weeks later, whether it was a fat-fingered edit or a hijacked registrar account quietly repointing your domain. Hoppla resolves on a schedule (every 12 hours by default; you can shorten it) and shows you the old value beside the new one. If you didn't make that change, you see exactly what moved and can act before more of your users land somewhere you don't control.
A client moves their domain to a new registrar and the export drops their MX records on the floor. Nothing errors. The site still loads, the A record came across fine, but mail is silently dead until invoices stop arriving. Hoppla watches MX on every client domain and flags the run where it goes from a real mail host to nothing, so you have a real chance to catch the broken migration before the client does.
Hundreds of zones across hundreds of clients, and DNS changes constantly: deploys, CDN swaps, vendor migrations. You can't eyeball that. Run DNS on every monitor and you get a change feed across the whole fleet: every A, MX, NS and TXT edit, timestamped with its before-and-after, on each monitor's timeline. An account manager can answer "did anything change on this domain last week?" from the run history, instead of pulling a developer onto a dig session.
You resell monitoring under your own brand, and zone integrity is something customers will pay you to watch. Put a DNS check on every customer zone, and any record change, authorized or not (an A repointed off your infrastructure, an NS delegation moved, a TXT rewritten), raises an advisory wearing your brand, on your domain. You can spot a tampered zone early, and the alert that lands is yours, not Hoppla's.
Import your Oh Dear monitors into Hoppla. Then run both side by side for 24 hours or 7 days before you switch.
The importer opens in your workspace once you have access.
Get early accessThe core idea is the same: resolve on a schedule, diff the records, alert on change. What's different is that Hoppla's DNS check lives on the same monitor as your uptime, SSL and domain-expiry checks, on one bill and one alert stream, instead of being a separate product or add-on. And the line between advisory and failure is built in: a record change notifies you but never marks the monitor down, so a planned migration doesn't read as an outage.
No. TTL is deliberately excluded from the comparison. It counts down between resolutions anyway, so diffing it would fire on nearly every run. Hoppla matches only the actual record values, which means a notification tells you a value you care about (an address, a mail host, a nameserver) actually moved.
No. A record change is an advisory, not a downtime incident. It tells you something changed and shows you what, but the monitor stays up. The check only fails on a real DNS problem: the lookup errored, or it returned no records at all. So a change won't page you the way an outage does.
If Hoppla's probe network itself is unreachable, the check assumes the target is up rather than reporting a failure. That keeps a network problem on our end from becoming a false "your DNS is broken" on yours. A failure means the lookup genuinely errored or came back empty.
Checks, alerts and status pages in one workspace. Now in early access: join the list for an invite.