From: Tatuya JINMEI 神明達哉 Date: Wed, 9 Apr 2008 22:48:17 +0000 (+0000) Subject: bind8-compat statistics updates X-Git-Tag: v9.3.6b1~176^2~5 X-Git-Url: http://git.ipfire.org/gitweb/?a=commitdiff_plain;h=2fff8b8280779a25fbdb891b2d3d9b435d2084f0;p=thirdparty%2Fbind9.git bind8-compat statistics updates --- diff --git a/README b/README index 7b242762f56..6d915f81f5d 100644 --- a/README +++ b/README @@ -54,6 +54,8 @@ BIND 9.5.0 Experimental http server and statistics support for named via xml. + More detailed statistics counters including those supported in BIND 8. + Faster ACL processing. Use Doxygen to generate internal documentation. diff --git a/bin/named/bind9.xsl b/bin/named/bind9.xsl index c385289541d..f592e9d98df 100644 --- a/bin/named/bind9.xsl +++ b/bin/named/bind9.xsl @@ -15,7 +15,7 @@ - PERFORMANCE OF THIS SOFTWARE. --> - + Server Statistics - Requestv4 Requestv6 @@ -251,7 +251,7 @@ td, th { - @@ -310,7 +310,7 @@ td, th { - diff --git a/bin/named/statschannel.c b/bin/named/statschannel.c index 9b326d4cbae..e69b3f7b34d 100644 --- a/bin/named/statschannel.c +++ b/bin/named/statschannel.c @@ -14,7 +14,7 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: statschannel.c,v 1.8 2008/04/03 06:09:04 tbox Exp $ */ +/* $Id: statschannel.c,v 1.9 2008/04/09 22:48:17 jinmei Exp $ */ /*! \file */ @@ -23,6 +23,7 @@ #include #include #include +#include #include #include #include @@ -68,6 +69,8 @@ stats_dumparg { int ncounters; /* used for general statistics */ } stats_dumparg_t; +static isc_once_t once = ISC_ONCE_INIT; + static void generalstat_dump(dns_statscounter_t counter, isc_uint64_t val, void *arg) { stats_dumparg_t *dumparg = arg; @@ -539,7 +542,7 @@ destroy_listener(void *arg) { REQUIRE(listener != NULL); REQUIRE(!ISC_LINK_LINKED(listener, link)); - /* We don't to have acquire the lock here since it's already unlinked */ + /* We don't have to acquire the lock here since it's already unlinked */ dns_acl_detach(&listener->acl); DESTROYLOCK(&listener->lock); @@ -824,96 +827,190 @@ ns_statschannels_shutdown(ns_server_t *server) { } } -/* name server statistics */ -static const char *nsstats_desc[] = { - "IPv4 requests received", /* dns_nsstatscounter_requestv4 */ - "IPv6 requests received", /* dns_nsstatscounter_requestv6 */ - "requests with EDNS(0) received", /* dns_nsstatscounter_edns0in */ - "requests with unsupported EDNS " - "version received", /* dns_nsstatscounter_badednsver */ - "requests with TSIG received", /* dns_nsstatscounter_tsigin */ - "requests with SIG(0) received", /* dns_nsstatscounter_sig0in */ - "requests with invalid signature",/* dns_nsstatscounter_invalidsig */ - "TCP requests received", /* dns_nsstatscounter_tcp */ - - "auth queries rejected", /* dns_nsstatscounter_authrej */ - "recursive queries rejected", /* dns_nsstatscounter_recurserej */ - "transfer requests rejected", /* dns_nsstatscounter_xfrrej */ - "update requests rejected", /* dns_nsstatscounter_updaterej */ - - "responses sent", /* dns_nsstatscounter_response */ - "truncated responses sent", /* dns_nsstatscounter_truncatedresp */ - "responses with EDNS(0) sent", /* dns_nsstatscounter_edns0out */ - "responses with TSIG sent", /* dns_nsstatscounter_tsigout */ - "responses with SIG(0) sent", /* dns_nsstatscounter_sig0out */ - - "queries resulted in successful answer",/* dns_nsstatscounter_success */ - "queries resulted in " - "authoritative answer", /* dns_nsstatscounter_authans */ - "queries resulted in non " - "authoritative answer", /* dns_nsstatscounter_nonauthans */ - "queries resulted in referral answer", /* dns_nsstatscounter_referral */ - "queries resulted in nxrrset", /* dns_nsstatscounter_nxrrset */ - "queries resulted in SERVFAIL", /* dns_nsstatscounter_servfail */ - "queries resulted in FORMERR", /* dns_nsstatscounter_formerr */ - "queries resulted in NXDOMAIN", /* dns_nsstatscounter_nxdomain */ - "queries caused recursion", /* dns_nsstatscounter_recursion */ - "duplicate queries received", /* dns_nsstatscounter_duplicate */ - "queries dropped", /* dns_nsstatscounter_dropped */ - "other query failures", /* dns_nsstatscounter_failure */ - - "requested transfers completed", /* dns_nsstatscounter_xfrdone */ - - "update requests forwarded", /* dns_nsstatscounter_updatereqfwd */ - "update responses forwarded", /* dns_nsstatscounter_updaterespfwd */ - "update forward failed", /* dns_nsstatscounter_updatefwdfail */ - "updates completed", /* dns_nsstatscounter_updatedone */ - "updates failed", /* dns_nsstatscounter_updatefail */ - "updates rejected due to " - "prerequisite failure" /* dns_nsstatscounter_updatebadprereq */ -}; +/*% + * Statistics descriptions. These could be statistically initialized at + * compile time, but we configure them run time in the init_desc() function + * below so that they'll be less susceptible to counter name changes. + * Note that bind9.xsl must still be updated consistently with the counter + * numbering. + */ +static const char *nsstats_desc[dns_nsstatscounter_max]; +static const char *resstats_desc[dns_resstatscounter_max]; +static const char *zonestats_desc[dns_zonestatscounter_max]; -/* resolver statistics */ -static const char *resstats_desc[] = { - "IPv4 queries sent", /* dns_resstatscounter_queryv4 */ - "IPv6 queries sent", /* dns_resstatscounter_queryv6 */ - "IPv4 responses received", /* dns_resstatscounter_responsev4 */ - "IPv6 responses received", /* dns_resstatscounter_responsev6 */ - "NXDOMAIN received", /* dns_resstatscounter_nxdomain */ - "SERVFAIL received", /* dns_resstatscounter_servfail */ - "FORMERR received", /* dns_resstatscounter_formerr */ - "other errors received", /* dns_resstatscounter_othererror */ - "EDNS(0) query failures", /* dns_resstatscounter_edns0fail */ - "mismatch responses received", /* dns_resstatscounter_mismatch */ - "truncated responses received", /* dns_resstatscounter_truncated */ - "lame delegations received", /* dns_resstatscounter_lame */ - "query retries", /* dns_resstatscounter_retry */ - "IPv4 NS address fetches", /* dns_resstatscounter_gluefetchv4 */ - "IPv6 NS address fetches", /* dns_resstatscounter_gluefetchv6 */ - "IPv4 NS address fetch failed", /* dns_resstatscounter_gluefetchv4fail */ - "IPv6 NS address fetch failed", /* dns_resstatscounter_gluefetchv6fail */ - "DNSSEC validation attempted", /* dns_resstatscounter_val */ - "DNSSEC validation failed", /* dns_resstatscounter_valfail */ - "DNSSEC validation succeeded", /* dns_resstatscounter_valsuccess */ - "DNSSEC NX validation succeeded"/* dns_resstatscounter_valnegsuccess */ -}; +static inline void +set_desc(int counter, int maxcounter, const char *desc, const char **descs) { + REQUIRE(counter < maxcounter); + REQUIRE(descs[counter] == NULL); -/* zone statistics */ -static const char *zonestats_desc[] = { - "IPv4 notifies sent", /* dns_zonestatscounter_notifyoutv4 */ - "IPv6 notifies sent", /* dns_zonestatscounter_notifyoutv6 */ - "IPv4 notifies received", /* dns_zonestatscounter_notifyinv4 */ - "IPv6 notifies received", /* dns_zonestatscounter_notifyinv6 */ - "notifies rejected", /* dns_zonestatscounter_notifyrej */ - "IPv4 SOA queries sent", /* dns_zonestatscounter_soaoutv4 */ - "IPv6 SOA queries sent", /* dns_zonestatscounter_soaoutv6 */ - "IPv4 AXFR requested", /* dns_zonestatscounter_axfrreqv4 */ - "IPv6 AXFR requested", /* dns_zonestatscounter_axfrreqv6 */ - "IPv4 IXFR requested", /* dns_zonestatscounter_ixfrreqv4 */ - "IPv6 IXFR requested", /* dns_zonestatscounter_ixfrreqv6 */ - "transfer requests succeeded", /* dns_zonestatscounter_xfrsuccess */ - "transfer requests failed" /* dns_zonestatscounter_xfrfail */ -}; + descs[counter] = desc; +} + +static void +init_desc() { + int i; + + /* Initialize name server statistics */ + memset(nsstats_desc, 0, + dns_nsstatscounter_max * sizeof(nsstats_desc[0])); + set_desc(dns_nsstatscounter_requestv4, dns_nsstatscounter_max, + "IPv4 requests received", nsstats_desc); + set_desc(dns_nsstatscounter_requestv6, dns_nsstatscounter_max, + "IPv6 requests received", nsstats_desc); + set_desc(dns_nsstatscounter_edns0in, dns_nsstatscounter_max, + "requests with EDNS(0) received", nsstats_desc); + set_desc(dns_nsstatscounter_badednsver, dns_nsstatscounter_max, + "requests with unsupported EDNS version received", + nsstats_desc); + set_desc(dns_nsstatscounter_tsigin, dns_nsstatscounter_max, + "requests with TSIG received", nsstats_desc); + set_desc(dns_nsstatscounter_sig0in, dns_nsstatscounter_max, + "requests with SIG(0) received", nsstats_desc); + set_desc(dns_nsstatscounter_invalidsig, dns_nsstatscounter_max, + "requests with invalid signature", nsstats_desc); + set_desc(dns_nsstatscounter_tcp, dns_nsstatscounter_max, + "TCP requests received", nsstats_desc); + set_desc(dns_nsstatscounter_authrej, dns_nsstatscounter_max, + "auth queries rejected", nsstats_desc); + set_desc(dns_nsstatscounter_recurserej, dns_nsstatscounter_max, + "recursive queries rejected", nsstats_desc); + set_desc(dns_nsstatscounter_xfrrej, dns_nsstatscounter_max, + "transfer requests rejected", nsstats_desc); + set_desc(dns_nsstatscounter_updaterej, dns_nsstatscounter_max, + "update requests rejected", nsstats_desc); + set_desc(dns_nsstatscounter_response, dns_nsstatscounter_max, + "responses sent", nsstats_desc); + set_desc(dns_nsstatscounter_truncatedresp, dns_nsstatscounter_max, + "truncated responses sent", nsstats_desc); + set_desc(dns_nsstatscounter_edns0out, dns_nsstatscounter_max, + "responses with EDNS(0) sent", nsstats_desc); + set_desc(dns_nsstatscounter_tsigout, dns_nsstatscounter_max, + "responses with TSIG sent", nsstats_desc); + set_desc(dns_nsstatscounter_sig0out, dns_nsstatscounter_max, + "responses with SIG(0) sent", nsstats_desc); + set_desc(dns_nsstatscounter_success, dns_nsstatscounter_max, + "queries resulted in successful answer", nsstats_desc); + set_desc(dns_nsstatscounter_authans, dns_nsstatscounter_max, + "queries resulted in authoritative answer", nsstats_desc); + set_desc(dns_nsstatscounter_nonauthans, dns_nsstatscounter_max, + "queries resulted in non authoritative answer", nsstats_desc); + set_desc(dns_nsstatscounter_referral, dns_nsstatscounter_max, + "queries resulted in referral answer", nsstats_desc); + set_desc(dns_nsstatscounter_nxrrset, dns_nsstatscounter_max, + "queries resulted in nxrrset", nsstats_desc); + set_desc(dns_nsstatscounter_servfail, dns_nsstatscounter_max, + "queries resulted in SERVFAIL", nsstats_desc); + set_desc(dns_nsstatscounter_formerr, dns_nsstatscounter_max, + "queries resulted in FORMERR", nsstats_desc); + set_desc(dns_nsstatscounter_nxdomain, dns_nsstatscounter_max, + "queries resulted in NXDOMAIN", nsstats_desc); + set_desc(dns_nsstatscounter_recursion, dns_nsstatscounter_max, + "queries caused recursion", nsstats_desc); + set_desc(dns_nsstatscounter_duplicate, dns_nsstatscounter_max, + "duplicate queries received", nsstats_desc); + set_desc(dns_nsstatscounter_dropped, dns_nsstatscounter_max, + "queries dropped", nsstats_desc); + set_desc(dns_nsstatscounter_failure, dns_nsstatscounter_max, + "other query failures", nsstats_desc); + set_desc(dns_nsstatscounter_xfrdone, dns_nsstatscounter_max, + "requested transfers completed", nsstats_desc); + set_desc(dns_nsstatscounter_updatereqfwd, dns_nsstatscounter_max, + "update requests forwarded", nsstats_desc); + set_desc(dns_nsstatscounter_updaterespfwd, dns_nsstatscounter_max, + "update responses forwarded", nsstats_desc); + set_desc(dns_nsstatscounter_updatefwdfail, dns_nsstatscounter_max, + "update forward failed", nsstats_desc); + set_desc(dns_nsstatscounter_updatedone, dns_nsstatscounter_max, + "updates completed", nsstats_desc); + set_desc(dns_nsstatscounter_updatefail, dns_nsstatscounter_max, + "updates failed", nsstats_desc); + set_desc(dns_nsstatscounter_updatebadprereq, dns_nsstatscounter_max, + "updates rejected due to prerequisite failure", nsstats_desc); + + /* Initialize resolver statistics */ + memset(resstats_desc, 0, + dns_resstatscounter_max * sizeof(resstats_desc[0])); + set_desc(dns_resstatscounter_queryv4, dns_resstatscounter_max, + "IPv4 queries sent", resstats_desc); + set_desc(dns_resstatscounter_queryv6, dns_resstatscounter_max, + "IPv6 queries sent", resstats_desc); + set_desc(dns_resstatscounter_responsev4, dns_resstatscounter_max, + "IPv4 responses received", resstats_desc); + set_desc(dns_resstatscounter_responsev6, dns_resstatscounter_max, + "IPv6 responses received", resstats_desc); + set_desc(dns_resstatscounter_nxdomain, dns_resstatscounter_max, + "NXDOMAIN received", resstats_desc); + set_desc(dns_resstatscounter_servfail, dns_resstatscounter_max, + "SERVFAIL received", resstats_desc); + set_desc(dns_resstatscounter_formerr, dns_resstatscounter_max, + "FORMERR received", resstats_desc); + set_desc(dns_resstatscounter_othererror, dns_resstatscounter_max, + "other errors received", resstats_desc); + set_desc(dns_resstatscounter_edns0fail, dns_resstatscounter_max, + "EDNS(0) query failures", resstats_desc); + set_desc(dns_resstatscounter_mismatch, dns_resstatscounter_max, + "mismatch responses received", resstats_desc); + set_desc(dns_resstatscounter_truncated, dns_resstatscounter_max, + "truncated responses received", resstats_desc); + set_desc(dns_resstatscounter_lame, dns_resstatscounter_max, + "lame delegations received", resstats_desc); + set_desc(dns_resstatscounter_retry, dns_resstatscounter_max, + "query retries", resstats_desc); + set_desc(dns_resstatscounter_gluefetchv4, dns_resstatscounter_max, + "IPv4 NS address fetches", resstats_desc); + set_desc(dns_resstatscounter_gluefetchv6, dns_resstatscounter_max, + "IPv6 NS address fetches", resstats_desc); + set_desc(dns_resstatscounter_gluefetchv4fail, dns_resstatscounter_max, + "IPv4 NS address fetch failed", resstats_desc); + set_desc(dns_resstatscounter_gluefetchv6fail, dns_resstatscounter_max, + "IPv6 NS address fetch failed", resstats_desc); + set_desc(dns_resstatscounter_val, dns_resstatscounter_max, + "DNSSEC validation attempted", resstats_desc); + set_desc(dns_resstatscounter_valsuccess, dns_resstatscounter_max, + "DNSSEC validation succeeded", resstats_desc); + set_desc(dns_resstatscounter_valnegsuccess, dns_resstatscounter_max, + "DNSSEC NX validation succeeded", resstats_desc); + set_desc(dns_resstatscounter_valfail, dns_resstatscounter_max, + "DNSSEC validation failed", resstats_desc); + + /* Initialize zone statistics */ + memset(zonestats_desc, 0, + dns_zonestatscounter_max * sizeof(zonestats_desc[0])); + set_desc(dns_zonestatscounter_notifyoutv4, dns_zonestatscounter_max, + "IPv4 notifies sent", zonestats_desc); + set_desc(dns_zonestatscounter_notifyoutv6, dns_zonestatscounter_max, + "IPv6 notifies sent", zonestats_desc); + set_desc(dns_zonestatscounter_notifyinv4, dns_zonestatscounter_max, + "IPv4 notifies received", zonestats_desc); + set_desc(dns_zonestatscounter_notifyinv6, dns_zonestatscounter_max, + "IPv6 notifies received", zonestats_desc); + set_desc(dns_zonestatscounter_notifyrej, dns_zonestatscounter_max, + "notifies rejected", zonestats_desc); + set_desc(dns_zonestatscounter_soaoutv4, dns_zonestatscounter_max, + "IPv4 SOA queries sent", zonestats_desc); + set_desc(dns_zonestatscounter_soaoutv6, dns_zonestatscounter_max, + "IPv6 SOA queries sent", zonestats_desc); + set_desc(dns_zonestatscounter_axfrreqv4, dns_zonestatscounter_max, + "IPv4 AXFR requested", zonestats_desc); + set_desc(dns_zonestatscounter_axfrreqv6, dns_zonestatscounter_max, + "IPv6 AXFR requested", zonestats_desc); + set_desc(dns_zonestatscounter_ixfrreqv4, dns_zonestatscounter_max, + "IPv4 IXFR requested", zonestats_desc); + set_desc(dns_zonestatscounter_ixfrreqv6, dns_zonestatscounter_max, + "IPv6 IXFR requested", zonestats_desc); + set_desc(dns_zonestatscounter_xfrsuccess, dns_zonestatscounter_max, + "transfer requests succeeded", zonestats_desc); + set_desc(dns_zonestatscounter_xfrfail, dns_zonestatscounter_max, + "transfer requests failed", zonestats_desc); + + /* Sanity check */ + for (i = 0; i < dns_nsstatscounter_max; i++) + INSIST(nsstats_desc[i] != NULL); + for (i = 0; i < dns_resstatscounter_max; i++) + INSIST(resstats_desc[i] != NULL); + for (i = 0; i < dns_zonestatscounter_max; i++) + INSIST(zonestats_desc[i] != NULL); +} isc_result_t ns_stats_dump(ns_server_t *server, FILE *fp) { @@ -923,6 +1020,8 @@ ns_stats_dump(ns_server_t *server, FILE *fp) { dns_zone_t *zone, *next; stats_dumparg_t dumparg; + RUNTIME_CHECK(isc_once_do(&once, init_desc) == ISC_R_SUCCESS); + /* Set common fields */ dumparg.type = statsformat_file; dumparg.arg = fp; @@ -931,8 +1030,7 @@ ns_stats_dump(ns_server_t *server, FILE *fp) { fprintf(fp, "+++ Statistics Dump +++ (%lu)\n", (unsigned long)now); fprintf(fp, "++ Incoming Requests ++\n"); - dns_opcodestats_dump(server->opcodestats, opcodestat_dump, &dumparg, - 0); + dns_opcodestats_dump(server->opcodestats, opcodestat_dump, &dumparg, 0); fprintf(fp, "++ Incoming Queries ++\n"); dns_rdatatypestats_dump(server->rcvquerystats, rdtypestat_dump, diff --git a/doc/arm/Bv9ARM-book.xml b/doc/arm/Bv9ARM-book.xml index 8c4afc1a236..21d95a8eb86 100644 --- a/doc/arm/Bv9ARM-book.xml +++ b/doc/arm/Bv9ARM-book.xml @@ -18,7 +18,7 @@ - PERFORMANCE OF THIS SOFTWARE. --> - + BIND 9 Administrator Reference Manual @@ -7672,162 +7672,6 @@ query-source-v6 address * port *; - - - The Statistics File - - - The statistics file generated by BIND 9 - is similar, but not identical, to that - generated by BIND 8. - - - The statistics dump begins with a line, like: - - - +++ Statistics Dump +++ (973798949) - - - The number in parentheses is a standard - Unix-style timestamp, measured as seconds since January 1, 1970. - Following - that line are a series of lines containing a counter type, the - value of the - counter, optionally a zone name, and optionally a view name. - The lines without view and zone listed are global statistics for - the entire server. - Lines with a zone and view name for the given view and zone (the - view name is - omitted for the default view). - - - The statistics dump ends with the line where the - number is identical to the number in the beginning line; for example: - - - --- Statistics Dump --- (973798949) - - - The following statistics counters are maintained: - - - - - - - - - success - - - - The number of - successful queries made to the server or zone. A - successful query - is defined as query which returns a NOERROR response - with at least - one answer RR. - - - - - - referral - - - - The number of queries which resulted - in referral responses. - - - - - - nxrrset - - - - The number of queries which resulted in - NOERROR responses with no data. - - - - - - nxdomain - - - - The number - of queries which resulted in NXDOMAIN responses. - - - - - - failure - - - - The number of queries which resulted in a - failure response other than those above. - - - - - - recursion - - - - The number of queries which caused the server - to perform recursion in order to find the final answer. - - - - - - duplicate - - - - The number of queries which the server attempted to - recurse but discover a existing query with the same - IP address, port, query id, name, type and class - already being processed. - - - - - - dropped - - - - The number of queries for which the server - discovered a excessive number of existing - recursive queries for the same name, type and - class and were subsequently dropped. - - - - - - - - - Each query received by the server will cause exactly one of - success, - referral, - nxrrset, - nxdomain, or - failure - to be incremented, and may additionally cause the - recursion counter to be - incremented. - - - Additional Section Caching @@ -7946,7 +7790,7 @@ query-source-v6 address * port *; - + <command>statistics-channels</command> Statement Grammar statistics-channels { @@ -11095,6 +10939,1275 @@ $GENERATE 1-127 $ CNAME $.0 + + + BIND9 Statistics + + BIND 9 maintains lots of statistics + information and provides several interfaces for users to + get access to the statistics. + The available statistics include all statistics counters + that were available in BIND 8 and + are meaningful in BIND 9, + and other information that is considered useful. + + + + 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 (positive + or negative) and nonexistent names stored in the + cache database. + Maintained per view. + + + + + + + + + + A subset of Name Server Statistics is collected and shown + per zone for which the server has the authority when + zone-statistics is set to + yes. + These statistics counters are shown with their zone and view + names. + In some cases the view names are omitted for the default view. + + + + There are currently two user interfaces to get access to the + statistics. + One is in the plain text format dumped to the file specified + by the statistics-file configuration option. + The other is remotely accessible via a statistics channel + when the statistics-channels statement + is specified in the configuration file + (see .) + + + + The Statistics File + + The text format statistics dump begins with a line, like: + + + +++ Statistics Dump +++ (973798949) + + + The number in parentheses is a standard + Unix-style timestamp, measured as seconds since January 1, 1970. + + Following + that line is a set of statistics information, which is categorized + as described above. + Each section begins with a line, like: + + + + ++ Name Server Statistics ++ + + + + Each section consists of lines, each containing the statistics + counter value followed by its textual description. + See below for available counters. + For brevity, counters that have a value of 0 are not shown + in the statistics file. + + + + The statistics dump ends with the line where the + number is identical to the number in the beginning line; for example: + + + --- Statistics Dump --- (973798949) + + + + + Statistics Counters + + The following tables summarize statistics counters that + BIND 9 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. + When a middle column exists between these two columns, + it gives the corresponding counter name of the + BIND 8 statistics, if applicable. + + + + Name Server Statistics Counters + + + + + + + + + + + Symbol + + + + + BIND8 Symbol + + + + + Description + + + + + + + Requestv4 + + + RQ + + + + IPv4 requests received. + Note: this also counts non query requests. + + + + + + Requestv6 + + + RQ + + + + 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 + + + RTCP + + + + TCP requests received. + + + + + + AuthQryRej + + + RUQ + + + + Authoritative (non recursive) queries rejected. + + + + + + RecQryRej + + + RURQ + + + + Recursive queries rejected. + + + + + + XfrRej + + + RUXFR + + + + Zone transfer requests rejected. + + + + + + UpdateRej + + + RUUpd + + + + Dynamic update requests rejected. + + + + + + Response + + + SAns + + + + 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. + This corresponds to the + success counter + of previous versions of + BIND 9. + + + + + + QryAuthAns + + + + + + + Queries resulted in authoritative answer. + + + + + + QryNoauthAns + + + SNaAns + + + + Queries resulted in non authoritative answer. + + + + + + QryReferral + + + + + + + Queries resulted in referral answer. + This corresponds to the + referral counter + of previous versions of + BIND 9. + + + + + + QryNxrrset + + + + + + + Queries resulted in NOERROR responses with no data. + This corresponds to the + nxrrset counter + of previous versions of + BIND 9. + + + + + + QrySERVFAIL + + + SFail + + + + Queries resulted in SERVFAIL. + + + + + + QryFORMERR + + + SFErr + + + + Queries resulted in FORMERR. + + + + + + QryNXDOMAIN + + + SNXD + + + + Queries resulted in NXDOMAIN. + This corresponds to the + nxdomain counter + of previous versions of + BIND 9. + + + + + + QryRecursion + + + RFwdQ + + + + Queries which caused the server + to perform recursion in order to find the final answer. + This corresponds to the + recursion counter + of previous versions of + BIND 9. + + + + + + QryDuplicate + + + RDupQ + + + + 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. + This corresponds to the + duplicate counter + of previous versions of + BIND 9. + + + + + + QryDropped + + + + + + + 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 corresponds to the + dropped counter + of previous versions of + BIND 9. + + + + + + QryFailure + + + + + + + Other query failures. + This corresponds to the + failure counter + of previous versions of + BIND 9. + + + + + + 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. + + + + + + + + + + Zone Maintenance Statistics Counters + + + + + + + + + + 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. + + + + + + + + + + Resolver Statistics Counters + + + + + + + + + + + Symbol + + + + + BIND8 Symbol + + + + + Description + + + + + + + + Queryv4 + + + SFwdQ + + + + IPv4 queries sent. + + + + + + Queryv6 + + + SFwdQ + + + + IPv6 queries sent. + + + + + + Responsev4 + + + RR + + + + IPv4 responses received. + + + + + + Responsev6 + + + RR + + + + IPv6 responses received. + + + + + + NXDOMAIN + + + RNXD + + + + NXDOMAIN received. + + + + + + SERVFAIL + + + RFail + + + + SERVFAIL received. + + + + + + FORMERR + + + RFErr + + + + FORMERR received. + + + + + + OtherError + + + RErr + + + + Other errors received. + + + + + + EDNS0Fail + + + + + + + EDNS(0) query failures. + + + + + + Mismatch + + + RDupR + + + + Mismatch responses received. + When shown via an HTTP statistics channel, + this counter is shown in the + Name Server Statistics section for brevity. + + + + + + Truncated + + + + + + + Truncated responses received. + + + + + + Lame + + + RLame + + + + Lame delegations received. + + + + + + Retry + + + SDupQ + + + + Query retries performed. + + + + + + GlueFetchv4 + + + SSysQ + + + + IPv4 NS address fetches invoked. + + + + + + GlueFetchv6 + + + SSysQ + + + + 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. + + + + + + + + + + + + Compatibility with <emphasis>BIND</emphasis> 8 Counters + + Most statistics counters that were available + in BIND 8 are also supported in + BIND 9 as shown in the above tables. + Here are notes about other counters that do not appear + in these tables. + + + + + RFwdR,SFwdR + + + These counters are not supported + because BIND 9 does not adopt + the notion of forwarding + as BIND 8 did. + + + + + + RAXFR + + + This counter is accessible in the Incoming Queries section. + + + + + + RIQ + + + This counter is accessible in the Incoming Requests section. + + + + + + ROpts + + + This counter is not supported + because BIND 9 does not care + about IP options in the first place. + + + + + + SErr + + + This counter could be implemented, but is not yet + supported. + + + + + + + + + <acronym>BIND</acronym> 9 Security Considerations
Zone Maintenance Statistics
NotifyOutv4 NotifyOutv6Resolver Statistics for View
Queryv4 Queryv6