DNS monitor
The DNS monitor sends a DNS query and asserts on the answer. Use it for failover testing, propagation checks after a record change, or “does my MX still point at the right mail provider?” questions.
Configuration
| Field | Type | Default | Notes |
|---|---|---|---|
| Domain | hostname | — | Record to query (e.g. app.example.com). Protocol/port/path are auto-stripped before validation. |
| Record type | enum | A | One of A, AAAA, CNAME, MX, NS, TXT, SRV, SOA, CAA, PTR. |
| Expected value | string | — | Optional. The monitor returns up only if the response contains this value. Substring match against any returned record. Leave blank to assert only that the query succeeded. |
| Name servers | string array | — | Optional. List of resolver IPs to query against. Leave empty to use the runner’s system resolver. Useful for testing propagation against a specific authoritative server or against public resolvers (1.1.1.1, 8.8.8.8). |
| Timeout | seconds | 10 | 5–30. |
| Degraded threshold | ms | — | Optional. Slow responses return degraded instead of up. |
Result data
- Resolved record values (one row per record returned).
- Query duration (ms).
- TTL of each returned record.
- Which resolver answered (when multiple are configured).
Status mapping
| Outcome | Status |
|---|---|
Query succeeds, contains expected_value (or expected_value is empty) | up |
Query succeeds but slower than degraded_threshold_ms | degraded |
Query succeeds but doesn’t contain expected_value | down |
| NXDOMAIN, SERVFAIL, timeout | down |
Interval floors
DNS state varies but typically slowly. Floors apply on top of the plan-wide minimum interval — see Limits & quotas. Fast intervals (30 s on Business) are intended for failover testing.