Uptime Monitoring

DNS Monitors

Validate DNS records, check propagation, and monitor domain health.

DNS Monitors

DNS monitors query DNS records and validate they return expected values. Use them to verify domain configuration, check propagation, and detect DNS issues.

Creating a DNS Monitor

Basic Configuration

Name: Website DNS Check
Domain: example.com
Record Type: A
Expected Value: 93.184.216.34

Full Configuration

Name: Production DNS
Domain: example.com
Record Type: A
Expected Values:
  - 93.184.216.34
  - 93.184.216.35
DNS Server: 8.8.8.8  # Optional: specific resolver
Interval: 5 minutes
Timeout: 10 seconds

Record Types

A Records

IPv4 addresses:

Domain: example.com
Record Type: A
Expected: 93.184.216.34

AAAA Records

IPv6 addresses:

Domain: example.com
Record Type: AAAA
Expected: 2606:2800:220:1:248:1893:25c8:1946

CNAME Records

Canonical names (aliases):

Domain: www.example.com
Record Type: CNAME
Expected: example.com

MX Records

Mail exchange:

Domain: example.com
Record Type: MX
Expected: mail.example.com
Priority: 10  # Optional

TXT Records

Text records (SPF, DKIM, verification):

Domain: example.com
Record Type: TXT
Expected Contains: v=spf1

NS Records

Name servers:

Domain: example.com
Record Type: NS
Expected Contains: ns1.example.com

SOA Records

Start of Authority:

Domain: example.com
Record Type: SOA

Assertions

Exact Match

Assertions:
  - type: record_value
    equals: 93.184.216.34

Contains

For records that may have multiple values:

Assertions:
  - type: record_value
    contains: ns1.example.com

Multiple Values

Verify all expected IPs are present:

Assertions:
  - type: record_values
    contains_all:
      - 93.184.216.34
      - 93.184.216.35

Record Count

Assertions:
  - type: record_count
    equals: 2

Response Time

Assertions:
  - type: response_time
    less_than: 500  # milliseconds

No Record (NXDOMAIN)

Verify a record doesn't exist:

Assertions:
  - type: record_exists
    equals: false

Use Cases

Domain Configuration

Verify production domain points to correct IPs:

Name: Production Domain
Domain: app.example.com
Record Type: A
Assertions:
  - type: record_values
    contains_all:
      - 10.0.1.100
      - 10.0.1.101

CDN Verification

Check CDN CNAME is configured:

Name: CDN Configuration
Domain: static.example.com
Record Type: CNAME
Assertions:
  - type: record_value
    contains: cloudfront.net

Email Configuration

SPF Record

Name: SPF Record
Domain: example.com
Record Type: TXT
Assertions:
  - type: record_value
    contains: v=spf1

MX Records

Name: Mail Servers
Domain: example.com
Record Type: MX
Assertions:
  - type: record_values
    contains_all:
      - aspmx.l.google.com
      - alt1.aspmx.l.google.com

DMARC Record

Name: DMARC Policy
Domain: _dmarc.example.com
Record Type: TXT
Assertions:
  - type: record_value
    contains: v=DMARC1

Failover Verification

Check failover DNS is ready:

Name: Failover DNS
Domain: failover.example.com
Record Type: A
Expected: 10.0.2.100  # Backup IP

DNS Propagation Monitoring

Monitor DNS changes across multiple resolvers:

Multiple DNS Servers

Name: DNS Propagation Check
Domain: example.com
Record Type: A
DNS Servers:
  - 8.8.8.8        # Google
  - 1.1.1.1        # Cloudflare
  - 208.67.222.222 # OpenDNS
Expected: 93.184.216.34
All Must Match: true

After DNS Change

After updating DNS records:

  1. Create a monitor with expected new value
  2. Monitor from multiple locations
  3. Alert when propagation is complete

Response Metrics

Each run captures:

MetricDescription
Response TimeQuery duration
DNS ServerResolver used
Record ValuesReturned values
TTLTime to live
Response CodeNOERROR, NXDOMAIN, etc.

Advanced Configuration

Specific DNS Server

Query a specific resolver instead of system default:

DNS Server: 8.8.8.8

Query Options

Query Options:
  TCP: false        # Use UDP (default)
  Recursion: true   # Enable recursion
  EDNS: true        # Extended DNS

Timeout and Retries

Timeout: 10 seconds
Retries: 2
Retry Delay: 1 second

Common Issues

NXDOMAIN (Non-Existent Domain)

Problem: DNS query returns NXDOMAIN

Causes:

  • Domain doesn't exist
  • Record type doesn't exist for domain
  • DNS not propagated yet

Solutions:

  • Verify domain is registered
  • Check record type is correct
  • Wait for propagation (up to 48 hours)

Timeout

Problem: DNS query times out

Causes:

  • DNS server unreachable
  • Network issues
  • Firewall blocking DNS

Solutions:

  • Try different DNS server
  • Check network connectivity
  • Verify port 53 is open

Wrong Values

Problem: DNS returns unexpected values

Causes:

  • Recent DNS change not propagated
  • DNS hijacking
  • Incorrect configuration

Solutions:

  • Check authoritative nameserver
  • Verify DNS configuration
  • Check for DNS poisoning

DNS propagation can take up to 48 hours. After making DNS changes, expect inconsistent results until propagation completes.

Best Practices

  1. Monitor critical records - A, CNAME, MX for important domains
  2. Use multiple DNS servers - Detect propagation issues
  3. Check email records - SPF, DKIM, DMARC for deliverability
  4. Monitor TTL appropriately - Don't check more often than TTL
  5. Alert on changes - Unexpected DNS changes may indicate issues
  6. Document expected values - Keep record of correct DNS configuration