aboutsummaryrefslogtreecommitdiff
path: root/config.example.yaml
diff options
context:
space:
mode:
authorFuwn <[email protected]>2026-01-19 19:41:22 -0800
committerFuwn <[email protected]>2026-01-19 19:41:22 -0800
commit5cb6f53da0f5927edad01e854432eb0b70371b89 (patch)
tree133824d444dc38134996eadb30a34ed63b44cfd1 /config.example.yaml
parentfeat: Add disable_ping_tooltips option to hide ping hover details (diff)
downloadkaze-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.yaml63
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.
#