Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions constructs/dns-monitor.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ Before creating DNS Monitors, ensure you have:

- An initialized Checkly CLI project
- A domain or hostname you want to monitor
- Basic understanding of DNS record types (A, AAAA, CNAME, MX, NS, TXT, SOA)
- Basic understanding of DNS record types (A, AAAA, CNAME, MX, NS, TXT, SOA, HTTPS)

For additional setup information, see [CLI overview](/cli/overview).
</Accordion>
Expand Down Expand Up @@ -121,7 +121,7 @@ new DnsMonitor("dns-monitor", {
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| `query` | `string` | ✅ | - | The DNS query (domain name or IP address) |
| `recordType` | `DnsRecordType` | ✅ | - | DNS record type: A, AAAA, CNAME, MX, NS, TXT, SOA |
| `recordType` | `DnsRecordType` | ✅ | - | DNS record type: A, AAAA, CNAME, MX, NS, TXT, SOA, HTTPS |
| `nameServer` | `string` | ❌ | - | Custom DNS server to query (e.g. "9.9.9.9") |
| `port` | `number` | ❌ | `53` | Port of the DNS server |
| `protocol` | `DnsProtocol` | ❌ | `UDP` | Protocol to use: UDP or TCP |
Expand Down
54 changes: 53 additions & 1 deletion detect/uptime-monitoring/dns-monitors/configuration.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -288,8 +288,48 @@ Common assertions:
- Text response contains expected serial number
</Accordion>

<Accordion title="HTTPS Record (RFC 9460)">
HTTPS records carry [SvcParams](https://www.rfc-editor.org/rfc/rfc9460) — the
parameters a browser uses to connect over HTTP/3 on its first request (`alpn`,
`ipv4hint`/`ipv6hint`, `ech`, …). The whole record is rendered into the `data`
field in DNS presentation format.

```json
{
"Answer": [
{
"name": "is.checkly.online.",
"type": "HTTPS",
"TTL": 300,
"data": "1 . alpn=\"h3,h2\" ipv4hint=\"188.114.96.0,188.114.97.0\" ipv6hint=\"2a06:98c1:3120::,2a06:98c1:3121::\""
}
],
"Question": [
{
"name": "is.checkly.online.",
"type": "HTTPS"
}
],
"Status": "NOERROR"
}
```

Common assertions:
- Text answer with the regex `alpn="([^"]*)"` contains `h3` - verify HTTP/3 is advertised (the capture group scopes the match to the `alpn` value)
- Text answer with the regex `alpn="([^"]*)"` contains `h2` - verify HTTP/2 is advertised
- `$.Answer[0].data` contains `ipv4hint` - verify IPv4 address hints are published
- `$.Answer[0].data` contains `ipv6hint` - verify IPv6 address hints are published

<Tip>
Use a text-answer **capture group** (`alpn="([^"]*)"`) rather than a bare
`contains('h3')` over the whole record. A bare substring check can false-match
unrelated bytes such as an `ipv4hint` octet or the `ech` blob; the capture group
scopes the match to the advertised protocols.
</Tip>
</Accordion>

<Note>
**Record type support**: DNS monitors currently support A, AAAA, CNAME, MX, NS, SOA, and TXT record types. Additional record types (SRV, CAA, PTR, etc.) may be added in future updates.
**Record type support**: DNS monitors currently support A, AAAA, CNAME, MX, NS, SOA, TXT, and HTTPS record types. Additional record types (SRV, CAA, PTR, etc.) may be added in future updates.
</Note>

### Response Time Limits
Expand Down Expand Up @@ -383,3 +423,15 @@ For DMARC:
- **Assertions**:
- `$.Answer[0].data` equals `ns1.example.com.` or `ns2.example.com.`
</Accordion>

<Accordion title="Verify a domain advertises HTTP/3 (HTTPS record)">
**Scenario**: Publishing an HTTPS DNS record lets browsers connect over HTTP/3 (QUIC) on the first request, saving a round trip. Monitor that the record stays published and keeps advertising `h3`.

**Configuration**:
- **Domain**: `example.com`
- **Record type**: HTTPS
- **Assertions**:
- Response code equals `NOERROR` (the record resolves)
- Text answer with regex `alpn="([^"]*)"` contains `h3` (HTTP/3 advertised)
- `$.Answer[0].data` contains `ipv4hint` (IPv4 address hints published)
</Accordion>
1 change: 1 addition & 0 deletions detect/uptime-monitoring/dns-monitors/overview.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,7 @@ DNS monitors support the following DNS record types:
- **NS**: Nameserver records
- **SOA**: Start of authority records
- **TXT**: Text records (SPF, DKIM, DMARC, etc.)
- **HTTPS**: HTTPS service binding records ([RFC 9460](https://www.rfc-editor.org/rfc/rfc9460)) — advertise HTTP/3 (`alpn`), address hints (`ipv4hint`/`ipv6hint`), and Encrypted Client Hello (`ech`)

## DNS Monitor Results

Expand Down
Loading