DNS resolver service diagnostics API - BlueCat DNS Edge

DNS Edge User Guide (Fleet Service Point)

Locale
English (United States)
Product name
BlueCat DNS Edge

Use this API for troubleshooting the DNS resolver service deployed to a Fleet Service Point. This API returns overall health status of DNS resolver service, each service's status and service version, configured forwarder IPs, the current local time and time zone, and policy details.

Current

Request: GET http://<fleet-sp-ip-address>:2021/v2/diagnostics

Replace the IP address with the IP address of the Fleet Service Point.

Successful response

200 OK
{
  "status": "GOOD",
  "id": "2ca93bdb-866c-4795-afc5-2bf9680bb9d8",
  "clusterId": "g9oqvmuir4ymjupgbdvz8w",
  "applicationId": "eaef72af-eb7f-434a-8eb4-a14dc9797cab",
  "currentVersion": "3.5.2",
  "statusTimestamp": 1650638350009,
  "services": [
    {
      "id": "sp-controller-service",
      "status": "GOOD",
      "statusTimestamp": 1650638349870,
      "serviceVersion": "1.0.0-build1001",
      "resourceDetails": {
        "customer-instance-connection": "GOOD"
      },
      "additionalDetails": {
        "dns-resolving-responses": {
          "rootNSQuery": "NOERROR",
          "edgeCloudEndpoint": "NOERROR"
        }
      },
      "resources": [
        {
          "id": "customerInstanceConnection",
          "type": "customerInstanceConnection",
          "status": "GOOD",
          "info": [],
          "errors": []
        },
        {
          "id": "dnsResolvingResponses",
          "type": "dnsResolvingResponses",
          "status": "GOOD",
          "info": [
            {
              "name": "rootNSQuery",
              "value": "NOERROR"
            },
            {
              "name": "edgeCloudEndpoint",
              "value": "NOERROR"
            }
          ],
          "errors": []
        },
        {
          "id": "certificates",
          "type": "certificates",
          "status": "GOOD",
          "info": [
            {
              "name": "clientCertificateExpiration",
              "value": 1739652531000
            },
            {
              "name": "caCertificateExpiration",
              "value": 1739652531000
            }
          ],
          "errors": []
        }
      ]
    },
    {
      "id": "parclo-logging",
      "status": "GOOD",
      "statusTimestamp": 1650638349984,
      "serviceVersion": "1.0.0-build1625",
      "resourceDetails": {
        "kinesis-stream-status": "GOOD"
      },
      "additionalDetails": {
        "custom-logging-endpoint": {
          "url": "",
          "header-names": [],
          "sha256-fingerprint": ""
        },
        "stored-offline-queries-bytes": 0,
        "kinesis-put_success": 0,
        "logging-endpoint-dropped-count": 0,
        "logging-endpoint-put-success-count": 0,
        "incoming-dns-events-dropped-count": 0,
        "logging-to-edge-cloud-console": true,
        "kinesis-put_fail": 0,
        "logging-to-custom-logging-endpoint": false,
        "logging-endpoint-put-failed-count": 0
      },
      "resources": [
        {
          "id": "unlogged-queries",
          "type": "unlogged-queries",
          "status": "N/A",
          "info": [
            {
              "name": "stored-offline-queries-bytes",
              "value": 0
            },
            {
              "name": "incoming-dns-events-dropped-count",
              "value": 0
            }
          ],
          "errors": []
        },
        {
          "id": "logging-endpoint",
          "type": "logging-endpoint",
          "status": "N/A",
          "info": [
            {
              "name": "logging-endpoint-dropped-count",
              "value": 0
            },
            {
              "name": "logging-endpoint-put-success-count",
              "value": 0
            },
            {
              "name": "logging-endpoint-put-failed-count",
              "value": 0
            }
          ],
          "errors": []
        },
        {
          "id": "kinesis-stream",
          "type": "kinesis-stream",
          "status": "GOOD",
          "info": [
            {
              "name": "kinesis-put_success",
              "value": 0
            },
            {
              "name": "kinesis-put_fail",
              "value": 0
            }
          ],
          "errors": []
        },
        {
          "id": "firehose-credentials",
          "type": "firehose-credentials",
          "status": "GOOD",
          "info": [
            {
              "name": "firehose-credential-expiration",
              "value": 1650639234000
            }
          ],
          "errors": []
        }
      ]
    },
    {
      "id": "dns-gateway-service",
      "status": "GOOD",
      "statusTimestamp": 1650638349999,
      "serviceVersion": "2.0.0-build3200",
      "additionalDetails": {
        "settingsDiagnostics": {
          "id": "123456789cc5af94e23430fee36c723fbf97b7a6",
          "lastSettingsPollingTimestamp": 1650638349997,
          "lastSuccessfulSettingsUpdateTimestamp": 1650638349998,
          "lastSettingsPollingStatus": "UNCHANGED",
          "namespaceDetails": [
            {
              "id": "8bb8b767-83bf-11ec-a47d-021fdb12a1eb",
              "name": "Default",
              "forwarders": [
                "8.8.8.8"
              ],
              "matchListsDomainCount": 0,
              "exceptionListsDomainCount": 0,
              "matchesAllDomains": true,
              "matchCidrCount": 0,
              "exceptionCidrCount": 0,
              "ttl": -1,
              "staleCacheEntriesTTL": 3600,
              "umbrellaConfiguration": null,
              "ecsConfiguration": null,
              "dohEnabled": false,
              "retryRCodes": [
                3
              ]
            }
          ]
        },
        "policyDiagnostics": {
          "id": "33",
          "policyEventTimestamp": 1650638349998,
          "lastUpdateTimestamp": 1650638349998,
          "lastPolicyEventResult": "UNCHANGED"
        },
        "timeZone": "America/Toronto"
      },
      "resources": [
        {
          "id": "namespace-8bb8b767-83bf-11ec-a47d-021fdb12a1eb",
          "type": "namespace",
          "status": "GOOD",
          "info": [
            {
              "name": "responses",
              "value": 0
            },
            {
              "name": "servfail-responses",
              "value": 0
            },
            {
              "name": "queries",
              "value": 0
            },
            {
              "name": "frontend-nxdomain",
              "value": 0
            },
            {
              "name": "frontend-servfail",
              "value": 0
            },
            {
              "name": "frontend-noerror",
              "value": 0
            },
            {
              "name": "acl-drops",
              "value": 0
            },
            {
              "name": "rule-drop",
              "value": 0
            },
            {
              "name": "rule-nxdomain",
              "value": 0
            },
            {
              "name": "rule-refused",
              "value": 0
            },
            {
              "name": "rule-servfail",
              "value": 0
            },
            {
              "name": "rule-truncated",
              "value": 0
            },
            {
              "name": "self-answered",
              "value": 0
            },
            {
              "name": "downstream-timeouts",
              "value": 0
            },
            {
              "name": "downstream-send-errors",
              "value": 0
            },
            {
              "name": "trunc-failures",
              "value": 0
            },
            {
              "name": "no-policy",
              "value": 0
            },
            {
              "name": "latency0-1",
              "value": 0
            },
            {
              "name": "latency1-10",
              "value": 0
            },
            {
              "name": "latency10-50",
              "value": 0
            },
            {
              "name": "latency50-100",
              "value": 0
            },
            {
              "name": "latency100-1000",
              "value": 0
            },
            {
              "name": "latency-slow",
              "value": 0
            },
            {
              "name": "latency-avg100",
              "value": 0
            },
            {
              "name": "latency-avg1000",
              "value": 0
            },
            {
              "name": "latency-avg10000",
              "value": 0
            },
            {
              "name": "latency-avg1000000",
              "value": 0
            },
            {
              "name": "uptime",
              "value": 859876
            },
            {
              "name": "real-memory-usage",
              "value": 40812544
            },
            {
              "name": "udp-in-errors",
              "value": 0
            },
            {
              "name": "udp-noport-errors",
              "value": 0
            },
            {
              "name": "udp-recvbuf-errors",
              "value": 0
            },
            {
              "name": "udp-sndbuf-errors",
              "value": 0
            },
            {
              "name": "tcp-listen-overflows",
              "value": 0
            },
            {
              "name": "noncompliant-queries",
              "value": 0
            },
            {
              "name": "noncompliant-responses",
              "value": 0
            },
            {
              "name": "proxy-protocol-invalid",
              "value": 0
            },
            {
              "name": "rdqueries",
              "value": 0
            },
            {
              "name": "empty-queries",
              "value": 0
            },
            {
              "name": "cache-hits",
              "value": 0
            },
            {
              "name": "cache-misses",
              "value": 0
            },
            {
              "name": "cpu-iowait",
              "value": 1346982
            },
            {
              "name": "cpu-steal",
              "value": 0
            },
            {
              "name": "cpu-sys-msec",
              "value": 340645
            },
            {
              "name": "cpu-user-msec",
              "value": 878899
            },
            {
              "name": "fd-usage",
              "value": 44
            },
            {
              "name": "dyn-blocked",
              "value": 0
            },
            {
              "name": "dyn-block-nmg-size",
              "value": 0
            },
            {
              "name": "security-status",
              "value": 0
            },
            {
              "name": "doh-query-pipe-full",
              "value": 0
            },
            {
              "name": "doh-response-pipe-full",
              "value": 0
            },
            {
              "name": "latency-sum",
              "value": 0
            },
            {
              "name": "latency-count",
              "value": 0
            }
          ],
          "errors": []
        },
        {
          "id": "namespace-8bb8b767-83bf-11ec-a47d-021fdb12a1eb-forwarder-0",
          "type": "forwarder",
          "status": "GOOD",
          "info": [
            {
              "name": "sendErrors",
              "value": 0
            },
            {
              "name": "address",
              "value": "8.8.8.8:53"
            },
            {
              "name": "order",
              "value": 1
            },
            {
              "name": "dropRate",
              "value": 0
            },
            {
              "name": "latency",
              "value": 0
            },
            {
              "name": "outstanding",
              "value": 0
            },
            {
              "name": "tcpAvgQueriesPerConnection",
              "value": 0
            },
            {
              "name": "tcpDiedReadingResponse",
              "value": 0
            },
            {
              "name": "tcpDiedSendingQuery",
              "value": 0
            },
            {
              "name": "pools",
              "value": []
            },
            {
              "name": "tcpConnectTimeouts",
              "value": 0
            },
            {
              "name": "tcpGaveUp",
              "value": 0
            },
            {
              "name": "reuseds",
              "value": 0
            },
            {
              "name": "tcpCurrentConnections",
              "value": 0
            },
            {
              "name": "tcpMaxConcurrentConnections",
              "value": 0
            },
            {
              "name": "tcpReusedConnections",
              "value": 0
            },
            {
              "name": "tcpWriteTimeouts",
              "value": 0
            },
            {
              "name": "id",
              "value": 0
            },
            {
              "name": "weight",
              "value": 1
            },
            {
              "name": "state",
              "value": "up"
            },
            {
              "name": "tcpNewConnections",
              "value": 0
            },
            {
              "name": "qpsLimit",
              "value": 0
            },
            {
              "name": "qps",
              "value": 0
            },
            {
              "name": "tcpAvgConnectionDuration",
              "value": 0
            },
            {
              "name": "tcpReadTimeouts",
              "value": 0
            },
            {
              "name": "name",
              "value": "8.8.8.8:53"
            },
            {
              "name": "queries",
              "value": 0
            },
            {
              "name": "responses",
              "value": 0
            }
          ],
          "errors": []
        }
      ]
    },
    {
      "id": "status-service",
      "status": "GOOD",
      "statusTimestamp": 1650638350009,
      "serviceVersion": "2.0.0-build577"
    }
  ],
  "additionalDetails": {
    "hostManager": "SDP",
    "currentLocalTime": "2022-04-22 14:39:10",
    "proxyConfiguration": {
      "configured": false,
      "protocol": null,
      "port": null,
      "host": null,
      "authenticationEnabled": null
    }
  },
  "registration": {
    "registered": true,
    "timestamp": 1649126839185,
    "siteId": "12345678-9870-98ef-85dc-34faaca80643",
    "customerId": "12345678-abcd-12ab-7890-acb9a5a1eg2"
  }
}

Namespace details

Under settingsDiagnostics, nameSpaceDetails, the parameter matchListDomainCount returns the total count of domains in the match lists attached to the namespace. However, "." represents all domains, but is counted as a single domain in the context of the domain list count. As a result, the parameter matchesAllDomains returns true or false in the following situations:
  • When one domain list is provided and contains "." as a domain, then matchesAllDomains will be true, but matchListDomainCount is 1.
  • If more than 1 domain list is provided, but any list contains "." as a domain, then the flag will be true and the "matchListDomainCount" reflects the count of domains across all domain lists (counting "." as one domain).
  • If no domain list is provided, then matchesAllDomains is true, but matchListDomainCount is 0.
  • If a domain list is provided with domains other than "." then matchesAllDomains is false, and matchListDomainCount reflects the count of domains in that list.

The exceptionsListDomainCount parameter is the total count of domains in the exception domain lists attached to the namespace.

Daemons Status

In the routing-controller-service section, the status for the zebra, OSPF, and BGP can be reported as:
  • running: The daemon is running with no issues.
  • not running: The daemon is enabled but isn't running.
  • suspended: The daemon failed the health check, and the Fleet Service Point was removed from the Anycast pool.
  • off: The daemon isn't enabled.

Update information

In the updates section, the task field will display UPGRADING regardless of whether the Fleet Service Point is upgrading to a newer DNS resolver service version or downgrading to an older software version.

Registration information

The field registrationFailureReason is only returned when the registration status is FAILED. If the registration state can't be determined, the status returned is N/A.