mirror of
https://github.com/TwiN/gatus.git
synced 2024-12-23 23:29:07 +01:00
Update DNS documentation
This commit is contained in:
parent
3a13dce3f0
commit
10dfdd47a7
29
README.md
29
README.md
@ -39,6 +39,7 @@ core applications: https://status.twinnation.org/
|
|||||||
- [Recommended interval](#recommended-interval)
|
- [Recommended interval](#recommended-interval)
|
||||||
- [Default timeouts](#default-timeouts)
|
- [Default timeouts](#default-timeouts)
|
||||||
- [Monitoring a TCP service](#monitoring-a-tcp-service)
|
- [Monitoring a TCP service](#monitoring-a-tcp-service)
|
||||||
|
- [Monitoring using DNS queries](#monitoring-using-dns-queries)
|
||||||
- [Basic authentication](#basic-authentication)
|
- [Basic authentication](#basic-authentication)
|
||||||
- [disable-monitoring-lock](#disable-monitoring-lock)
|
- [disable-monitoring-lock](#disable-monitoring-lock)
|
||||||
|
|
||||||
@ -103,8 +104,9 @@ Note that you can also add environment variables in the configuration file (i.e.
|
|||||||
| `services[].graphql` | Whether to wrap the body in a query param (`{"query":"$body"}`) | `false` |
|
| `services[].graphql` | Whether to wrap the body in a query param (`{"query":"$body"}`) | `false` |
|
||||||
| `services[].body` | Request body | `""` |
|
| `services[].body` | Request body | `""` |
|
||||||
| `services[].headers` | Request headers | `{}` |
|
| `services[].headers` | Request headers | `{}` |
|
||||||
| `services[].dns.query-type` | Query type for DNS | `""` |
|
| `services[].dns` | Configuration for a service of type DNS. See [Monitoring using DNS queries](#monitoring-using-dns-queries) | `""` |
|
||||||
| `services[].dns.query-name` | Query name for DNS | `""` |
|
| `services[].dns.query-type` | Query type for DNS service | `""` |
|
||||||
|
| `services[].dns.query-name` | Query name for DNS service | `""` |
|
||||||
| `services[].alerts[].type` | Type of alert. Valid types: `slack`, `pagerduty`, `twilio`, `mattermost`, `custom` | Required `""` |
|
| `services[].alerts[].type` | Type of alert. Valid types: `slack`, `pagerduty`, `twilio`, `mattermost`, `custom` | Required `""` |
|
||||||
| `services[].alerts[].enabled` | Whether to enable the alert | `false` |
|
| `services[].alerts[].enabled` | Whether to enable the alert | `false` |
|
||||||
| `services[].alerts[].failure-threshold` | Number of failures in a row needed before triggering the alert | `3` |
|
| `services[].alerts[].failure-threshold` | Number of failures in a row needed before triggering the alert | `3` |
|
||||||
@ -167,12 +169,12 @@ Here are some examples of conditions you can use:
|
|||||||
| Placeholder | Description | Example of resolved value |
|
| Placeholder | Description | Example of resolved value |
|
||||||
|:-------------------------- |:--------------------------------------------------------------- |:------------------------- |
|
|:-------------------------- |:--------------------------------------------------------------- |:------------------------- |
|
||||||
| `[STATUS]` | Resolves into the HTTP status of the request | 404
|
| `[STATUS]` | Resolves into the HTTP status of the request | 404
|
||||||
| `[DNS_RCODE]` | Resolves into the DNS status of the response | NOERROR
|
|
||||||
| `[RESPONSE_TIME]` | Resolves into the response time the request took, in ms | 10
|
| `[RESPONSE_TIME]` | Resolves into the response time the request took, in ms | 10
|
||||||
| `[IP]` | Resolves into the IP of the target host | 192.168.0.232
|
| `[IP]` | Resolves into the IP of the target host | 192.168.0.232
|
||||||
| `[BODY]` | Resolves into the response body. Supports JSONPath. | `{"name":"john.doe"}`
|
| `[BODY]` | Resolves into the response body. Supports JSONPath. | `{"name":"john.doe"}`
|
||||||
| `[CONNECTED]` | Resolves into whether a connection could be established | `true`
|
| `[CONNECTED]` | Resolves into whether a connection could be established | `true`
|
||||||
| `[CERTIFICATE_EXPIRATION]` | Resolves into the duration before certificate expiration | `24h`, `48h`, 0 (if not using HTTPS)
|
| `[CERTIFICATE_EXPIRATION]` | Resolves into the duration before certificate expiration | `24h`, `48h`, 0 (if not using HTTPS)
|
||||||
|
| `[DNS_RCODE]` | Resolves into the DNS status of the response | NOERROR
|
||||||
|
|
||||||
|
|
||||||
#### Functions
|
#### Functions
|
||||||
@ -530,6 +532,27 @@ something at the given address listening to the given port, and that a connectio
|
|||||||
established.
|
established.
|
||||||
|
|
||||||
|
|
||||||
|
### Monitoring using DNS queries
|
||||||
|
|
||||||
|
Defining a `dns` configuration in a service will automatically mark that service as a service of type DNS:
|
||||||
|
```yaml
|
||||||
|
- name: example dns query
|
||||||
|
url: "8.8.8.8" # Address of the DNS server to use
|
||||||
|
interval: 30s
|
||||||
|
dns:
|
||||||
|
query-name: "example.com"
|
||||||
|
query-type: "A"
|
||||||
|
conditions:
|
||||||
|
- "[BODY] == 93.184.216.34"
|
||||||
|
- "[DNS_RCODE] == NOERROR"
|
||||||
|
```
|
||||||
|
|
||||||
|
There are two placeholders that can be used in the conditions for services of type DNS:
|
||||||
|
- The placeholder `[BODY]` resolves to the output of the query. For instance, a query of type `A` would return an IPv4.
|
||||||
|
- The placeholder `[DNS_RCODE]` resolves to the name associated to the response code returned by the query, such as
|
||||||
|
`NOERROR`, `FORMERR`, `SERVFAIL`, `NXDOMAIN`, etc.
|
||||||
|
|
||||||
|
|
||||||
### Basic authentication
|
### Basic authentication
|
||||||
|
|
||||||
You can require Basic authentication by leveraging the `security.basic` configuration:
|
You can require Basic authentication by leveraging the `security.basic` configuration:
|
||||||
|
Loading…
Reference in New Issue
Block a user