Skip to main content

DNS Monitoring

DNS monitoring checks that your domain resolves correctly and alerts you to failures or unexpected changes — before your users experience them.

What gets checked

CheckDescription
Resolution successCan the hostname be resolved at all?
Record valueDoes the resolved IP match an expected value?
Response timeHow fast does DNS resolve?
Record typeA, AAAA, CNAME, MX, TXT, NS, PTR

Creating a DNS monitor

  1. New Monitor → DNS
  2. Configure:
type: dns
hostname: mail.yourapp.com
record_type: MX
expected_value: "10 mail.yourapp.com" # Optional: assert the returned value
resolver: "8.8.8.8" # Optional: use specific DNS resolver
timeout: 5000
interval: 300 # seconds

Record types

TypeUse caseExample expected value
AIPv4 address93.184.216.34
AAAAIPv6 address2606:2800:220:1:248:1893:25c8:1946
CNAMEAliasyourdomain.cloudfront.net
MXMail server10 mail.yourapp.com
TXTText records (SPF, DKIM)v=spf1 include:sendgrid.net ~all
NSName serversns1.yourapp.com

Change detection

Even if DNS resolves successfully, you can alert if the value changes unexpectedly:

assert_value_unchanged: true  # Alert if the resolved value differs from last check
notify_on_change: true # Always notify when value changes

This is useful for detecting unauthorized DNS changes — a common attack vector.

Alert on high TTL / low TTL

assert:
ttl:
gte: 300 # Alert if TTL < 300 (too low = high DNS load)
lte: 86400 # Alert if TTL > 86400 (too high = slow propagation)

Use cases

  • Email deliverability — Monitor MX and SPF records
  • CDN routing — Ensure CNAME points to the right CDN endpoint
  • DDoS protection — Verify Cloudflare or Akamai records are active
  • Change detection — Alert on any unauthorized DNS modification
  • Propagation monitoring — Check DNS from multiple regions after a change