9. Statistics

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


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.

9.1. XML Format


TODOMUKS: Add examples of parsing the XML statistics.

9.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.

9.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.
ReqBadEDN SVer 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.
AuthQryRe j Authoritative (non recursive) queries rejected.
``RecQryRej `` Recursive queries rejected.
XfrRej Zone transfer requests rejected.
``UpdateRej `` Dynamic update requests rejected.
``Response` ` Responses sent.
RespTrunc ated Truncated responses sent.
``RespEDNS0 `` Responses with EDNS(0) sent.
``RespTSIG` ` Responses with TSIG sent.
``RespSIG0` ` Responses with SIG(0) sent.
QrySucces s Queries resulted in a successful answer. This means the query which returns a NOERROR response with at least one answer RR.
QryAuthAn s Queries resulted in authoritative answer.
QryNoauth Ans Queries resulted in non authoritative answer.
QryReferr al Queries resulted in referral answer.
QryNxrrse t Queries resulted in NOERROR responses with no data.
QrySERVFA IL Queries resulted in SERVFAIL.
QryFORMER R Queries resulted in FORMERR.
QryNXDOMA IN Queries resulted in NXDOMAIN.
QryRecurs ion Queries which caused the server to perform recursion in order to find the final answer.
QryDuplic ate 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.
QryDroppe d 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>`__.)
QryFailur e

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.

XfrReqDon e Requested zone transfers completed.
UpdateReq Fwd Update requests forwarded.
UpdateRes pFwd Update responses forwarded.
UpdateFwd Fail Dynamic update forward failed.
UpdateDon e Dynamic updates completed.
UpdateFai l Dynamic updates failed.
UpdateBad Prereq Dynamic updates rejected due to prerequisite failure.
RateDropp ed Responses dropped by rate limits.
RateSlipp ed Responses truncated by rate limits.
RPZRewrit es Response policy zone rewrites.

9.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.

9.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.
Responsev 4 IPv4 responses received.
Responsev 6 IPv6 responses received.
``NXDOMAIN` ` NXDOMAIN received.
``SERVFAIL` ` SERVFAIL received.
OtherErro r 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.
QueryAbor t Queries aborted due to quota control.
QuerySock Fail 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.
QueryTime out Query timeouts.
GlueFetch v4 IPv4 NS address fetches invoked.
GlueFetch v6 IPv6 NS address fetches invoked.
GlueFetch v4Fail IPv4 NS address fetch failed.
GlueFetch v6Fail IPv6 NS address fetch failed.
ValAttemp t 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.

9.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