src/go/plugin/go.d/modules/dnsquery/config_schema.json
{
"jsonSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "DNS query collector configuration.",
"type": "object",
"properties": {
"update_every": {
"title": "Update every",
"description": "Data collection interval, measured in seconds.",
"type": "integer",
"minimum": 1,
"default": 5
},
"timeout": {
"title": "Timeout",
"description": "Timeout for DNS queries, in seconds.",
"type": "number",
"default": 2
},
"network": {
"title": "Protocol",
"description": "Network protocol for DNS queries.",
"type": "string",
"enum": [
"udp",
"tcp",
"tcp-tls"
],
"default": "udp"
},
"port": {
"title": "Port",
"description": "Port number for DNS servers.",
"type": "integer",
"default": 53
},
"record_types": {
"title": "Record types",
"description": "Types of DNS records to query for each server.",
"type": [
"array",
"null"
],
"items": {
"type": "string",
"enum": [
"A",
"AAAA",
"ANY",
"CNAME",
"MX",
"NS",
"PTR",
"SOA",
"SPF",
"SRV",
"TXT"
],
"default": "A"
},
"default": [
"A"
],
"uniqueItems": true
},
"servers": {
"title": "Servers",
"description": "List of DNS servers to query.",
"type": [
"array",
"null"
],
"items": {
"title": "DNS server",
"description": "IP address or hostname of the DNS server.",
"type": "string"
},
"default": [
"8.8.8.8"
],
"uniqueItems": true,
"minItems": 1
},
"domains": {
"title": "Domains",
"description": "List of domains or subdomains to query. A random domain will be selected from this list at each iteration.",
"type": [
"array",
"null"
],
"items": {
"title": "Domain",
"type": "string"
},
"default": [
"google.com",
"github.com"
],
"uniqueItems": true,
"minItems": 1
}
},
"required": [
"domains",
"servers",
"network"
],
"additionalProperties": false,
"patternProperties": {
"^name$": {}
}
},
"uiSchema": {
"uiOptions": {
"fullPage": true
},
"timeout": {
"ui:help": "Accepts decimals for precise control (e.g., type 1.5 for 1.5 seconds)."
},
"network": {
"ui:widget": "radio",
"ui:options": {
"inline": true
}
},
"servers": {
"ui:listFlavour": "list"
},
"domains": {
"ui:listFlavour": "list"
}
}
}