netdata/netdata

View on GitHub
src/go/collectors/go.d.plugin/modules/dnsquery/config_schema.json

Summary

Maintainability
Test Coverage
{
  "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"
    }
  }
}