diff options
| author | Fuwn <[email protected]> | 2026-01-19 19:41:22 -0800 |
|---|---|---|
| committer | Fuwn <[email protected]> | 2026-01-19 19:41:22 -0800 |
| commit | 5cb6f53da0f5927edad01e854432eb0b70371b89 (patch) | |
| tree | 133824d444dc38134996eadb30a34ed63b44cfd1 /config.example.yaml | |
| parent | feat: Add disable_ping_tooltips option to hide ping hover details (diff) | |
| download | kaze-5cb6f53da0f5927edad01e854432eb0b70371b89.tar.xz kaze-5cb6f53da0f5927edad01e854432eb0b70371b89.zip | |
feat: Add ICMP, DNS, and GraphQL monitor types
Add three new monitor types with full support:
- ICMP: Ping monitoring with configurable packet count, tracks packet
loss and average RTT. Marks degraded on partial packet loss.
- DNS: DNS resolution monitoring supporting A, AAAA, CNAME, MX, and TXT
records. Optional custom DNS server and validation of expected IPs/CNAME.
- GraphQL: GraphQL endpoint monitoring with query execution, variable
support, error detection, and content validation.
All new monitors include retry support, response time tracking, and
integrate with existing display options (round_response_time, etc).
GraphQL monitors also support SSL certificate tracking.
Diffstat (limited to 'config.example.yaml')
| -rw-r--r-- | config.example.yaml | 63 |
1 files changed, 61 insertions, 2 deletions
diff --git a/config.example.yaml b/config.example.yaml index 18e9dbc..383c0b4 100644 --- a/config.example.yaml +++ b/config.example.yaml @@ -115,6 +115,44 @@ groups: verify_ssl: false # Often false for self-signed certs in Geminispace # hide_ssl_days: false # Gemini also tracks TLS certificate expiration + - name: "Advanced Monitoring" + monitors: + - name: "Server Ping" + type: icmp + target: "8.8.8.8" # IP address or hostname + interval: 30s + timeout: 5s + # ping_count: 4 # Number of ICMP packets to send (default: 4) + + - name: "DNS Resolution" + type: dns + target: "example.com" # Domain to resolve + interval: 60s + timeout: 5s + # record_type: "A" # DNS record type: A, AAAA, CNAME, MX, TXT (default: A) + # dns_server: "8.8.8.8:53" # Custom DNS server (default: system resolver) + # expected_ips: # Expected IP addresses (optional) + # - "93.184.216.34" + # expected_cname: "example.com." # Expected CNAME record (for CNAME queries) + + - name: "GraphQL API" + type: graphql + target: "https://api.example.com/graphql" + interval: 30s + timeout: 10s + graphql_query: | + query HealthCheck { + health { + status + } + } + # graphql_variables: # Query variables (optional) + # limit: "10" + expected_status: 200 + # expected_content: '"status":"ok"' # Check response contains text + # headers: + # Authorization: "Bearer token" + # Incidents and maintenance (optional) incidents: # Scheduled maintenance example @@ -157,8 +195,8 @@ incidents: # # Common fields for all monitor types: # name: string (required) - Display name for the monitor -# type: string (required) - Monitor type: http, https, tcp, or gemini -# target: string (required) - URL or host:port to monitor +# type: string (required) - Monitor type: http, https, tcp, gemini, icmp, dns, or graphql +# target: string (required) - URL, host:port, IP address, or domain to monitor # interval: duration - Check interval (default: 30s, or group default) # timeout: duration - Request timeout (default: 10s, or group default) # retries: int - Number of retry attempts before marking as down (default: 0, or group default) @@ -189,6 +227,27 @@ incidents: # TCP specific fields: # (none - just needs host:port target) # +# ICMP specific fields: +# target: string - IP address or hostname to ping +# ping_count: int - Number of ICMP packets to send (default: 4) +# Note: May require elevated privileges on some systems +# +# DNS specific fields: +# target: string - Domain name to resolve +# record_type: string - DNS record type: A, AAAA, CNAME, MX, TXT (default: A) +# dns_server: string - Custom DNS server host:port (default: system resolver) +# expected_ips: []string - Expected IP addresses to validate (optional) +# expected_cname: string - Expected CNAME record to validate (optional) +# +# GraphQL specific fields: +# target: string (required) - GraphQL endpoint URL +# graphql_query: string (required) - GraphQL query to execute +# graphql_variables: map - Query variables (optional) +# expected_status: int - Expected HTTP status code (default: 200) +# expected_content: string - Text that must be present in response (optional) +# headers: map[string]string - Custom headers (e.g., Authorization) +# verify_ssl: bool - Verify SSL certificate (default: true) +# # Duration format: # Use Go duration strings: 30s, 1m, 5m, 1h, etc. # |