8. Statistics

The Loop nameserver maintains many statistics counters and provides an interface for administrators to access them in an XML format.

Warning

The counter symbol names may change in future major releases. Please check the release notes before upgrading.

The statistics information is categorized into the following sections.

Incoming Requests

The number of incoming DNS requests for each OPCODE.

Incoming Queries

The number of incoming queries for each RR type.

Outgoing Queries

The number of outgoing queries for each RR type sent from the internal resolver. Maintained per view.

Name Server Statistics

Statistics counters about incoming request processing.

Zone Maintenance Statistics

Statistics counters regarding zone maintenance operations such as zone transfers.

Resolver Statistics

Statistics counters about name resolution performed in the internal resolver. Maintained per view.

Cache DB RRsets

The number of RRsets per RR type and nonexistent names stored in the cache database. If the exclamation mark (!) is printed for a RR type, it means that particular type of RRset is known to be nonexistent (this is also known as "NXRRSET"). If a hash mark (#) is present then the RRset is marked for garbage collection. Maintained per view.

Socket I/O Statistics

Statistics counters about network related events.

A subset of statistics is collected and shown per-zone for which the server has the authority when zone-statistics is set to full (or yes for backward compatibility. See the description of zone-statistics in section_title for further details.

These statistics counters are shown with their zone and view names. The view name is omitted when the server is not configured with explicit views.

Statistics counters are dumped in an XML format to the file specified by the statistics-file configuration option.

8.1. XML Format

Error

TODO: Add examples of parsing the XML statistics.

8.2. Counters

The following tables summarize statistics counters that Loop provides. For each row of the tables, the leftmost column is the abbreviated symbol name of that counter. These symbols are shown in the statistics information accessed via an HTTP statistics channel. The rightmost column gives the description of the counter, which is also shown in the statistics file (but, in this document, possibly with slight modification for better readability). Additional notes may also be provided in this column.

8.3. Nameserver Counters

Symbol

Description

Requestv4

IPv4 requests received. Note: this also counts non query requests.

Requestv6

IPv6 requests received. Note: this also counts non query requests.

ReqEdns0

Requests with EDNS(0) received.

ReqBadEDNSVer

Requests with unsupported EDNS version received.

ReqTSIG

Requests with TSIG received.

ReqSIG0

Requests with SIG(0) received.

ReqBadSIG

Requests with invalid (TSIG or SIG(0)) signature.

ReqTCP

TCP requests received.

AuthQryRej

Authoritative (non recursive) queries rejected.

RecQryRej

Recursive queries rejected.

XfrRej

Zone transfer requests rejected.

UpdateRej

Dynamic update requests rejected.

Response

Responses sent.

RespTruncated

Truncated responses sent.

RespEDNS0

Responses with EDNS(0) sent.

RespTSIG

Responses with TSIG sent.

RespSIG0

Responses with SIG(0) sent.

QrySuccess

Queries resulted in a successful answer. This means the query which returns a NOERROR response with at least one answer RR.

QryAuthAns

Queries resulted in authoritative answer.

QryNoauthAns

Queries resulted in non authoritative answer.

QryReferral

Queries resulted in referral answer.

QryNxrrset

Queries resulted in NOERROR responses with no data.

QrySERVFAIL

Queries resulted in SERVFAIL.

QryFORMERR

Queries resulted in FORMERR.

QryNXDOMAIN

Queries resulted in NXDOMAIN.

QryRecursion

Queries which caused the server to perform recursion in order to find the final answer.

QryDuplicate

Queries which the server attempted to recurse but discovered an existing query with the same IP address, port, query ID, name, type and class already being processed.

QryDropped

Recursive queries for which the server discovered an excessive number of existing recursive queries for the same name, type and class and were subsequently dropped. This is the number of dropped queries due to the reason explained with the clients-per-query and max-clients-per-query options (see the description about ` <#clients-per-query>`__.)

QryFailure

Other query failures. This corresponds

Note: this counter is provided mainly for backward compatibility with the previous versions. Normally a more fine-grained counters such as AuthQryRej and RecQryRej that would also fall into this counter are provided, and so this counter would not be of much interest in practice.

XfrReqDone

Requested zone transfers completed.

UpdateReqFwd

Update requests forwarded.

UpdateRespFwd

Update responses forwarded.

UpdateFwdFail

Dynamic update forward failed.

UpdateDone

Dynamic updates completed.

UpdateFail

Dynamic updates failed.

UpdateBadPrereq

Dynamic updates rejected due to prerequisite failure.

RateDropped

Responses dropped by rate limits.

RateSlipped

Responses truncated by rate limits.

RPZRewrites

Response policy zone rewrites.

8.4. Zone Maintenance Counters

The following are statistics counters related to zone maintenance operations such as zone transfers.

Symbol

Description

NotifyOutv4

IPv4 notifies sent.

NotifyOutv6

IPv6 notifies sent.

NotifyInv4

IPv4 notifies received.

NotifyInv6

IPv6 notifies received.

NotifyRej

Incoming notifies rejected.

SOAOutv4

IPv4 SOA queries sent.

SOAOutv6

IPv6 SOA queries sent.

AXFRReqv4

IPv4 AXFR requested.

AXFRReqv6

IPv6 AXFR requested.

IXFRReqv4

IPv4 IXFR requested.

IXFRReqv6

IPv6 IXFR requested.

XfrSuccess

Zone transfer requests succeeded.

XfrFail

Zone transfer requests failed.

8.5. Resolver Counters

The following are statistics counters related to query resolution performed in the internal resolver. They are maintained per-view.

Symbol

Description

Queryv4

IPv4 queries sent.

Queryv6

IPv6 queries sent.

Responsev4

IPv4 responses received.

Responsev6

IPv6 responses received.

NXDOMAIN

NXDOMAIN received.

SERVFAIL

SERVFAIL received.

FORMERR

FORMERR received.

OtherError

Other errors received.

EDNS0Fail

EDNS(0) query failures.

Mismatch

Mismatch responses received. The DNS ID, response's source address, and/or the response's source port does not match what was expected. (The port must be 53 or as defined by the port option.) This may be an indication of a cache poisoning attempt.

Truncated

Truncated responses received.

Lame

Lame delegations received.

Retry

Query retries performed.

QueryAbort

Queries aborted due to quota control.

QuerySockFail

Failures in opening query sockets. One common reason for such failures is a failure of opening a new socket due to a limitation on file descriptors.

QueryTimeout

Query timeouts.

GlueFetchv4

IPv4 NS address fetches invoked.

GlueFetchv6

IPv6 NS address fetches invoked.

GlueFetchv4Fail

IPv4 NS address fetch failed.

GlueFetchv6Fail

IPv6 NS address fetch failed.

ValAttempt

DNSSEC validation attempted.

ValOk

DNSSEC validation succeeded.

ValNegOk

DNSSEC validation on negative information succeeded.

ValFail

DNSSEC validation failed.

QryRTTnn

Frequency table on round trip times (RTTs) of queries. Each nn specifies the corresponding frequency. In the sequence of nn_1, nn_2, ..., nn_m, the value of nn_i is the number of queries whose RTTs are between nn_(i-1) (inclusive) and nn_i (exclusive) milliseconds. For the sake of convenience we define nn_0 to be 0. The last entry should be represented as nn_m+, which means the number of queries whose RTTs are equal to or over nn_m milliseconds.

8.6. Socket I/O Counters

The following are statistics counters related to network events.

Symbol

Description

UDP4Open

IPv4 UDP sockets opened successfully

UDP6Open

IPv6 UDP sockets opened successfully

TCP4Open

IPv4 TCP sockets opened successfully

TCP6Open

IPv6 TCP sockets opened successfully

RawOpen

Raw sockets opened successfully

UDP4OpenFail

Failures in opening IPv4 UDP sockets

UDP6OpenFail

Failures in opening IPv6 UDP sockets

TCP4OpenFail

Failures in opening IPv4 TCP sockets

TCP6OpenFail

Failures in opening IPv6 TCP sockets

RawOpenFail

Failures in opening raw sockets

UDP4Close

IPv4 UDP sockets closed

UDP6Close

IPv6 UDP sockets closed

TCP4Close

IPv4 TCP sockets closed

TCP6Close

IPv6 TCP sockets closed

RawClose

Raw sockets closed

UDP4BindFail

Failures in binding IPv4 UDP sockets

UDP6BindFail

Failures in binding IPv6 UDP sockets

TCP4BindFail

Failures in binding IPv4 TCP sockets

TCP6BindFail

Failures in binding IPv6 TCP sockets

UDP4ConnFail

Failures in connecting IPv4 UDP sockets

UDP6ConnFail

Failures in connecting IPv6 UDP sockets

TCP4ConnFail

Failures in connecting IPv4 TCP sockets

TCP6ConnFail

Failures in connecting IPv6 TCP sockets

UDP4Conn

IPv4 UDP connections established successfully

UDP6Conn

IPv6 UDP connections established successfully

TCP4Conn

IPv4 TCP connections established successfully

TCP6Conn

IPv6 TCP connections established successfully

TCP4AcceptFail

Failures in accepting incoming IPv4 TCP connection requests

TCP6AcceptFail

Failures in accepting incoming IPv6 TCP connection requests

TCP4Accept

Incoming IPv4 TCP connections successfully accepted

TCP6Accept

Incoming IPv6 TCP connections successfully accepted

UDP4SendErr

Errors in IPv4 UDP socket send operations

UDP6SendErr

Errors in IPv6 UDP socket send operations

TCP4SendErr

Errors in IPv4 TCP socket send operations

TCP6SendErr

Errors in IPv6 TCP socket send operations

UDP4RecvErr

Errors in IPv4 UDP socket receive operations. It includes errors of send operations on a connected UDP socket notified by an ICMP error message.

UDP6RecvErr

Errors in IPv6 UDP socket receive operations. It includes errors of send operations on a connected UDP socket notified by an ICMP error message.

TCP4RecvErr

Errors in IPv4 TCP socket receive operations

TCP6RecvErr

Errors in IPv6 TCP socket receive operations

RawRecvErr

Errors in raw socket receive operations

UDP4Active

IPv4 UDP sockets currently active

UDP6Active

IPv6 UDP sockets currently active

TCP4Active

IPv4 TCP sockets currently active

TCP6Active

IPv6 TCP sockets currently active

RawActive

Raw sockets currently active