DNS Monitoring
DNS Monitoring tracks configured hostnames and DNS records from Bitaic-managed resolver regions so operations teams can detect lookup failures, unexpected answers, slow resolution, propagation drift, TTL drift, and DNSSEC validation problems before they affect services.
DNS Monitoring releases publicly on Monday, November 16, 2026.
What DNS Monitoring Checks
- Lookup success, response code, and current DNS state.
- Observed recursive resolver results from configured regions.
- Authoritative nameserver answers when authoritative checks are enabled.
- Expected record value mismatches when expected values are configured.
- DNS latency, TTL values, DNSSEC state, and propagation state.
- Last check time, recent state changes, and alert state.
Product Boundaries
- Use DNS Monitoring to understand whether DNS records resolve correctly and reliably.
- Use Domain Monitoring to understand whether a domain itself is healthy and operationally safe.
- Use Endpoint Monitoring to confirm that a specific URL, application, or service responds successfully after DNS resolution.
Launch Record Types
| Record type | Compared value | Use |
|---|---|---|
A | IPv4 address | Use for IPv4 service endpoints. |
AAAA | IPv6 address | Use for IPv6 service endpoints. |
CNAME | Canonical hostname | Compare normalized hostnames case-insensitively. |
MX | Priority and mail exchanger | Use when mail routing is part of the service path. |
TXT | Text value | Use for verification records and policy records. |
NS | Nameserver hostname | Use for record-level delegation expectations. |
CAA | Flag, tag, and value | Use for certificate-authority authorization checks. |
SRV, PTR, SOA, DNSKEY, DS, HTTPS, SVCB, and provider-specific synthetic checks are outside the launch DNS Monitoring scope.
Resolver Behavior
| Area | Launch behavior |
|---|---|
| Resolver regions | Checks run from Bitaic-managed recursive resolvers in us-east, us-west, and eu-west by default. A check can use a configured subset. |
| Authoritative checks | When authoritative_check is enabled, Bitaic queries the authoritative nameservers and compares authoritative answers with recursive resolver results. |
| TTL monitoring | Bitaic records TTL values for positive answers. TTL drift alerts open only when expected_ttl_seconds.min and expected_ttl_seconds.max are configured. |
| DNSSEC | dnssec_validation defaults to "observe". Use "require" to alert on bogus or indeterminate DNSSEC validation; states are validated, unsigned, bogus, and indeterminate. |
| Propagation | Bitaic compares regional recursive answers with authoritative answers and applies a 30-minute propagation grace window by default. |
| Cadence | Scheduled checks run every 60 seconds by default. Supported configured intervals are 60 through 3600 seconds. |
| Timeouts and retries | Each resolver query has a 2-second timeout. Transient timeouts, SERVFAIL, connection errors, and resolver errors retry once with jitter. |
Configuration Example
Configure each DNS check with a record name, record type, resolver regions, expected values, latency threshold, and optional authoritative, TTL, DNSSEC, and propagation controls.
dns_checks:
- name: www.example.com
record_type: A
resolver_regions:
- us-east
- us-west
- eu-west
expected_values:
- 203.0.113.10
alert_on_mismatch: true
max_latency_ms: 500
check_interval_seconds: 60
timeout_ms: 2000
authoritative_check: true
expected_ttl_seconds:
min: 60
max: 3600
dnssec_validation: observe
propagation_grace_period_minutes: 30Data And Alerts
DNS Monitoring records resolver evidence and alert context on each check.
record_namerecord_typeresolver_regionsresolver_resultsauthoritative_resultresponse_codeexpected_valuesmatch_statettl_secondsttl_statednssec_statepropagation_statelatency_msdns_statealert_statechecked_at
Bitaic uses warning severity for single-region degradation, latency threshold crossings, TTL drift, and propagation mismatches still inside the grace window. Bitaic uses critical severity when all selected resolver regions fail, a positive record check returns NXDOMAIN, NODATA, or REFUSED, required DNSSEC validation fails, or an expected-value mismatch remains after the propagation grace window.
Status Labels
| dns_state | Meaning |
|---|---|
healthy | Selected resolver regions return expected answers within the latency threshold. |
propagating | Recursive resolver answers or authoritative answers are still converging inside the propagation grace window. |
degraded | At least one selected resolver region is slow, mismatched, or failing while another selected region still resolves successfully. |
unavailable | All selected resolver regions fail, or a positive record check returns NXDOMAIN, NODATA, or REFUSED. |
unknown | Bitaic cannot trust the latest DNS result, such as before the first successful check or after collection uncertainty. |
DNS alert states use clear, warning, critical, and unknown.
Example Workflow: Watch a Critical DNS Record
Goal: monitor the record that sends users to a critical service, alert on unexpected answers, and keep resolver latency visible during normal operations.
- Choose the hostname and record type that determine how users reach the service.
- Select the resolver regions that should represent user-facing DNS behavior.
- Add expected values, mismatch alert behavior, latency threshold, and any TTL, DNSSEC, or authoritative checks your team wants enforced.
- Connect lookup failure, record mismatch, slow-resolution, propagation, DNSSEC, and TTL alerts to the operational alert route for the service.
- Run or wait for the first check, then confirm the dashboard shows resolver results, authoritative results when enabled, TTL, DNSSEC state, latency, last check time, and alert state.
- After an intentional DNS change, keep the propagation grace window active until recursive and authoritative answers converge.
CLI And API
Bitaic CLI and API workflows cover running DNS checks and managing configured DNS checks.
bitaic dns add <record_name> --type <record_type> --expected-value <value> --max-latency-ms <ms> --alert-on-mismatch
bitaic dns list
bitaic dns status <record_name> --type <record_type>
bitaic dns check <record_name> --type <record_type> --expected-value <value>
bitaic dns remove <record_name> --type <record_type> --yesDNS CLI output includes record_name, record_type, resolver_regions, resolver_results, authoritative_result, response_code, expected_values, match_state, ttl_seconds, ttl_state, dnssec_state, propagation_state, latency_ms, dns_state, alert_state, and checked_at when those checks are configured or observed.
- Create or list monitored DNS records with
/v1/workspaces/{workspace_id}/targetsandtype: "dns_record". - Attach resolver checks with
/v1/workspaces/{workspace_id}/targets/{target_id}/checksandtype: "dns_resolution". - Update DNS check behavior with
/v1/workspaces/{workspace_id}/checks/{check_id}. - Retrieve DNS latency data with
/v1/workspaces/{workspace_id}/metricsandmetric=dns.latency_ms.
Troubleshooting
| Issue | Check first |
|---|---|
| Unexpected answer | Compare expected_values, recursive resolver results, authoritative results, and the propagation grace window. |
| Slow resolution | Compare each selected resolver region against max_latency_ms and recent check history. |
| TTL drift | Confirm expected_ttl_seconds.min and expected_ttl_seconds.max match the provider's intended TTL. |
| DNSSEC alert | Confirm whether dnssec_validation is set to require and compare the latest dnssec_state. |