Commit 8907d8fa authored by Mark Andrews's avatar Mark Andrews
Browse files

2355. [func] Extend the number statistics counters available.

                        [RT #17590]
parent d904beeb
2355. [func] Extend the number statistics counters available.
[RT #17590]
2354. [bug] Failed to initialise sone rdatasetheader_t elements.
[RT #17927]
......
......@@ -15,7 +15,7 @@
- PERFORMANCE OF THIS SOFTWARE.
-->
<!-- $Id: bind9.xsl,v 1.15 2008/04/01 23:47:10 tbox Exp $ -->
<!-- $Id: bind9.xsl,v 1.16 2008/04/03 05:55:51 marka Exp $ -->
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
......@@ -55,6 +55,11 @@ tr.lrow {
color: #ffffff;
}
td, th {
padding-right: 5px;
padding-left: 5px;
}
.header {
background-color: teal;
color: #ffffff;
......@@ -99,21 +104,293 @@ tr.lrow {
<br/>
<table>
<tr class="rowh"><th colspan="2">Server statistics</th></tr>
<xsl:for-each select="server/counters/*">
<tr class="rowh"><th colspan="2">Incoming Requests</th></tr>
<xsl:for-each select="server/requests/opcode">
<tr class="lrow">
<td><xsl:value-of select="name()"/></td>
<td><xsl:value-of select="."/></td>
<td><xsl:value-of select="name"/></td>
<td><xsl:value-of select="counter"/></td>
</tr>
</xsl:for-each>
</table>
<br/>
<table>
<tr class="rowh"><th colspan="2">Incoming Queries</th></tr>
<xsl:for-each select="server/queries-in/rdtype">
<tr class="lrow">
<td><xsl:value-of select="name"/></td>
<td><xsl:value-of select="counter"/></td>
</tr>
</xsl:for-each>
</table>
<br/>
<br/>
<xsl:for-each select="views/view">
<table>
<tr class="rowh">
<th colspan="2">Outgoing Queries from View <xsl:value-of select="name"/></th>
</tr>
<xsl:for-each select="rdtype">
<tr class="lrow">
<td><xsl:value-of select="name"/></td>
<td><xsl:value-of select="counter"/></td>
</tr>
</xsl:for-each>
</table>
<br/>
</xsl:for-each>
<br/>
<table>
<tr class="rowh"><th colspan="10">Server Statistics</th></tr>
<tr class="rowh">
<!-- The ordering of the following items must be consisten
with dns_nsstatscounter_xxx -->
<th>Requestv4</th>
<th>Requestv6</th>
<th>ReqEdns0</th>
<th>ReqBadEDNSVer</th>
<th>ReqTSIG</th>
<th>ReqSIG0</th>
<th>ReqBadSIG</th>
<th>ReqTCP</th>
<th>AuthQryRej</th>
<th>RecQryRej</th>
</tr>
<tr class="lrow">
<td><xsl:value-of select="server/nsstats/Requestv4"/></td>
<td><xsl:value-of select="server/nsstats/Requestv6"/></td>
<td><xsl:value-of select="server/nsstats/ReqEdns0"/></td>
<td><xsl:value-of select="server/nsstats/ReqBadEDNSVer"/></td>
<td><xsl:value-of select="server/nsstats/ReqTSIG"/></td>
<td><xsl:value-of select="server/nsstats/ReqSIG0"/></td>
<td><xsl:value-of select="server/nsstats/ReqBadSIG"/></td>
<td><xsl:value-of select="server/nsstats/ReqTCP"/></td>
<td><xsl:value-of select="server/nsstats/AuthQryRej"/></td>
<td><xsl:value-of select="server/nsstats/RecQryRej"/></td>
</tr>
<tr class="rowh">
<th>XfrRej</th>
<th>UpdateRej</th>
<th>Response</th>
<th>RespTruncated</th>
<th>RespEDNS0</th>
<th>RespTSIG</th>
<th>RespSIG0</th>
<th>QrySuccess</th>
<th>QryAuthAns</th>
<th>QryNoauthAns</th>
</tr>
<tr class="lrow">
<td><xsl:value-of select="server/nsstats/XfrRej"/></td>
<td><xsl:value-of select="server/nsstats/UpdateRej"/></td>
<td><xsl:value-of select="server/nsstats/Response"/></td>
<td><xsl:value-of select="server/nsstats/TruncatedResp"/></td>
<td><xsl:value-of select="server/nsstats/RespEDNS0"/></td>
<td><xsl:value-of select="server/nsstats/RespTSIG"/></td>
<td><xsl:value-of select="server/nsstats/RespSIG0"/></td>
<td><xsl:value-of select="server/nsstats/QrySuccess"/></td>
<td><xsl:value-of select="server/nsstats/QryAuthAns"/></td>
<td><xsl:value-of select="server/nsstats/QryNoauthAns"/></td>
</tr>
<tr class="rowh">
<th>QryReferral</th>
<th>QryNxrrset</th>
<th>QrySERVFAIL</th>
<th>QryFORMERR</th>
<th>QryNXDOMAIN</th>
<th>QryRecursion</th>
<th>QryDuplicate</th>
<th>QryDropped</th>
<th>QryFailure</th>
<th>XfrReqDone</th>
</tr>
<tr class="lrow">
<td><xsl:value-of select="server/nsstats/QryReferral"/></td>
<td><xsl:value-of select="server/nsstats/QryNxrrset"/></td>
<td><xsl:value-of select="server/nsstats/QrySERVFAIL"/></td>
<td><xsl:value-of select="server/nsstats/QryFORMERR"/></td>
<td><xsl:value-of select="server/nsstats/QryNXDOMAIN"/></td>
<td><xsl:value-of select="server/nsstats/QryRecursion"/></td>
<td><xsl:value-of select="server/nsstats/QryDuplicate"/></td>
<td><xsl:value-of select="server/nsstats/QryDropped"/></td>
<td><xsl:value-of select="server/nsstats/QryFailure"/></td>
<td><xsl:value-of select="server/nsstats/XfrReqDone"/></td>
</tr>
<tr class="rowh">
<th>UpdateReqFwd</th>
<th>UpdateRespFwd</th>
<th>UpdateFwdFail</th>
<th>UpdateDone</th>
<th>UpdateFail</th>
<th>UpdateBadPrereq</th>
<th>RespMismatch</th>
<th />
<th />
<th />
</tr>
<tr class="lrow">
<td><xsl:value-of select="server/nsstats/UpdateReqFwd"/></td>
<td><xsl:value-of select="server/nsstats/UpdateRespFwd"/></td>
<td><xsl:value-of select="server/nsstats/UpdateFwdFail"/></td>
<td><xsl:value-of select="server/nsstats/UpdateDone"/></td>
<td><xsl:value-of select="server/nsstats/UpdateFail"/></td>
<td><xsl:value-of select="server/nsstats/UpdateBadPrereq"/></td>
<td><xsl:value-of select="server/resstats/Mismatch"/></td>
<td />
<td />
<td />
</tr>
</table>
<br/>
<table>
<tr class="rowh"><th colspan="10">Zone Maintenance Statistics</th></tr>
<tr class="rowh">
<!-- The ordering of the following items must be consisten
with dns_zonestatscounter_xxx -->
<th>NotifyOutv4</th>
<th>NotifyOutv6</th>
<th>NotifyInv4</th>
<th>NotifyInv6</th>
<th>NotifyRej</th>
<th>SOAOutv4</th>
<th>SOAOutv6</th>
<th>AXFRReqv4</th>
<th>AXFRReqv6</th>
<th>IXFRReqv4</th>
</tr>
<tr class="lrow">
<td><xsl:value-of select="server/zonestats/NotifyOutv4"/></td>
<td><xsl:value-of select="server/zonestats/NotifyOutv6"/></td>
<td><xsl:value-of select="server/zonestats/NotifyInv4"/></td>
<td><xsl:value-of select="server/zonestats/NotifyInv6"/></td>
<td><xsl:value-of select="server/zonestats/NotifyRej"/></td>
<td><xsl:value-of select="server/zonestats/SOAOutv4"/></td>
<td><xsl:value-of select="server/zonestats/SOAOutv6"/></td>
<td><xsl:value-of select="server/zonestats/AXFRReqv4"/></td>
<td><xsl:value-of select="server/zonestats/AXFRReqv6"/></td>
<td><xsl:value-of select="server/zonestats/IXFRReqv4"/></td>
</tr>
<tr class="rowh">
<th>IXFRReqv6</th>
<th>XfrSuccess</th>
<th>XfrFail</th>
<th/>
<th/>
<th/>
<th/>
<th/>
<th/>
<th/>
</tr>
<tr class="lrow">
<td><xsl:value-of select="server/zonestats/IXFRReqv6"/></td>
<td><xsl:value-of select="server/zonestats/XfrSuccess"/></td>
<td><xsl:value-of select="server/zonestats/XfrFail"/></td>
<td/>
<td/>
<td/>
<td/>
<td/>
<td/>
<td/>
</tr>
</table>
<br/>
<xsl:for-each select="views/view">
<table>
<tr class="rowh">
<th colspan="10">Resolver Statistics for View <xsl:value-of select="name"/></th>
</tr>
<tr class="rowh">
<!-- The ordering of the following items must be consisten
with dns_resstatscounter_xxx -->
<th>Queryv4</th>
<th>Queryv6</th>
<th>Responsev4</th>
<th>Responsev6</th>
<th>NXDOMAIN</th>
<th>SERVFAIL</th>
<th>FORMERR</th>
<th>OtherError</th>
<th>EDNS0Fail</th>
<!-- this counter is not applicable to per-view stat,
but keep it for generating the description table used in
the statschannel.c.
<th>Mismatch</th> -->
<th>Truncated</th>
</tr>
<tr class="lrow">
<td><xsl:value-of select="resstats/Queryv4"/></td>
<td><xsl:value-of select="resstats/Queryv6"/></td>
<td><xsl:value-of select="resstats/Responsev4"/></td>
<td><xsl:value-of select="resstats/Responsev6"/></td>
<td><xsl:value-of select="resstats/NXDOMAIN"/></td>
<td><xsl:value-of select="resstats/SERVFAIL"/></td>
<td><xsl:value-of select="resstats/FORMERR"/></td>
<td><xsl:value-of select="resstats/OtherError"/></td>
<td><xsl:value-of select="resstats/EDNS0Fail"/></td>
<!-- <td><xsl:value-of select="resstats/Mismatch"/></td> -->
<td><xsl:value-of select="resstats/Truncated"/></td>
</tr>
<tr class="rowh">
<th>Lame</th>
<th>Retry</th>
<th>GlueFetchv4</th>
<th>GlueFetchv6</th>
<th>GlueFetchv4Fail</th>
<th>GlueFetchv6Fail</th>
<th>ValAttempt</th>
<th>ValOk</th>
<th>ValNegOk</th>
<th>ValFail</th>
</tr>
<tr class="lrow">
<td><xsl:value-of select="resstats/Lame"/></td>
<td><xsl:value-of select="resstats/Retry"/></td>
<td><xsl:value-of select="resstats/GlueFetchv4"/></td>
<td><xsl:value-of select="resstats/GlueFetchv6"/></td>
<td><xsl:value-of select="resstats/GlueFetchv4Fail"/></td>
<td><xsl:value-of select="resstats/GlueFetchv6Fail"/></td>
<td><xsl:value-of select="resstats/ValAttempt"/></td>
<td><xsl:value-of select="resstats/ValOk"/></td>
<td><xsl:value-of select="resstats/ValNegOk"/></td>
<td><xsl:value-of select="resstats/ValFail"/></td>
</tr>
</table>
<br/>
</xsl:for-each>
<br/>
<xsl:for-each select="views/view">
<table>
<tr class="rowh">
<th colspan="2">Cache DB RRsets for View <xsl:value-of select="name"/></th>
</tr>
<xsl:for-each select="cache/rrset">
<tr class="lrow">
<td><xsl:value-of select="name"/></td>
<td><xsl:value-of select="counter"/></td>
</tr>
</xsl:for-each>
</table>
<br/>
</xsl:for-each>
<br/>
<xsl:for-each select="views/view">
<table>
<tr class="rowh">
<th colspan="11">Zones for View <xsl:value-of select="name"/></th>
<th colspan="10">Zones for View <xsl:value-of select="name"/></th>
</tr>
<tr class="rowh">
<th>Name</th>
......@@ -123,10 +400,9 @@ tr.lrow {
<th>Referral</th>
<th>NXRRSET</th>
<th>NXDOMAIN</th>
<th>Recursion</th>
<th>Failure</th>
<th>Duplicate</th>
<th>Dropped</th>
<th>XfrReqDone</th>
<th>XfrRej</th>
</tr>
<xsl:for-each select="zones/zone">
<tr class="lrow">
......@@ -140,28 +416,25 @@ tr.lrow {
<xsl:value-of select="serial"/>
</td>
<td>
<xsl:value-of select="counters/success"/>
</td>
<td>
<xsl:value-of select="counters/referral"/>
<xsl:value-of select="counters/QrySuccess"/>
</td>
<td>
<xsl:value-of select="counters/nxrrset"/>
<xsl:value-of select="counters/QryReferral"/>
</td>
<td>
<xsl:value-of select="counters/nxdomain"/>
<xsl:value-of select="counters/QryNxrrset"/>
</td>
<td>
<xsl:value-of select="counters/recursion"/>
<xsl:value-of select="counters/QryNXDOMAIN"/>
</td>
<td>
<xsl:value-of select="counters/failure"/>
<xsl:value-of select="counters/QryFailure"/>
</td>
<td>
<xsl:value-of select="counters/duplicate"/>
<xsl:value-of select="counters/XfrReqDone"/>
</td>
<td>
<xsl:value-of select="counters/dropped"/>
<xsl:value-of select="counters/XfrRej"/>
</td>
</tr>
</xsl:for-each>
......
......@@ -2,7 +2,7 @@
* Generated by convertxsl.pl 1.11 2008/04/02 23:46:57 tbox Exp
* From bind9.xsl 1.15 2008/04/01 23:47:10 tbox Exp
*/
static char msg[] =
static char xslmsg[] =
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
"<!--\n"
" - Copyright (C) 2006-2008 Internet Systems Consortium, Inc. (\"ISC\")\n"
......@@ -60,6 +60,11 @@ static char msg[] =
" color: #ffffff;\n"
"}\n"
"\n"
"td, th {\n"
" padding-right: 5px;\n"
" padding-left: 5px;\n"
"}\n"
"\n"
".header {\n"
" background-color: teal;\n"
" color: #ffffff;\n"
......@@ -104,21 +109,293 @@ static char msg[] =
" <br/>\n"
"\n"
" <table>\n"
" <tr class=\"rowh\"><th colspan=\"2\">Server statistics</th></tr>\n"
" <xsl:for-each select=\"server/counters/*\">\n"
" <tr class=\"rowh\"><th colspan=\"2\">Incoming Requests</th></tr>\n"
" <xsl:for-each select=\"server/requests/opcode\">\n"
" <tr class=\"lrow\">\n"
" <td><xsl:value-of select=\"name()\"/></td>\n"
" <td><xsl:value-of select=\".\"/></td>\n"
" <td><xsl:value-of select=\"name\"/></td>\n"
" <td><xsl:value-of select=\"counter\"/></td>\n"
" </tr>\n"
" </xsl:for-each>\n"
" </table>\n"
"\n"
" <br/>\n"
"\n"
" <table>\n"
" <tr class=\"rowh\"><th colspan=\"2\">Incoming Queries</th></tr>\n"
" <xsl:for-each select=\"server/queries-in/rdtype\">\n"
" <tr class=\"lrow\">\n"
" <td><xsl:value-of select=\"name\"/></td>\n"
" <td><xsl:value-of select=\"counter\"/></td>\n"
" </tr>\n"
" </xsl:for-each>\n"
" </table>\n"
"\n"
" <br/>\n"
"\n"
" <xsl:for-each select=\"views/view\">\n"
" <table>\n"
" <tr class=\"rowh\">\n"
" <th colspan=\"2\">Outgoing Queries from View <xsl:value-of select=\"name\"/></th>\n"
" </tr>\n"
" <xsl:for-each select=\"rdtype\">\n"
" <tr class=\"lrow\">\n"
" <td><xsl:value-of select=\"name\"/></td>\n"
" <td><xsl:value-of select=\"counter\"/></td>\n"
" </tr>\n"
" </xsl:for-each>\n"
" </table>\n"
" <br/>\n"
" </xsl:for-each>\n"
"\n"
" <br/>\n"
"\n"
" <table>\n"
" <tr class=\"rowh\"><th colspan=\"10\">Server Statistics</th></tr>\n"
" <tr class=\"rowh\">\n"
" <!-- The ordering of the following items must be consisten\n"
" with dns_nsstatscounter_xxx -->\n"
" <th>Requestv4</th>\n"
" <th>Requestv6</th>\n"
" <th>ReqEdns0</th>\n"
" <th>ReqBadEDNSVer</th>\n"
" <th>ReqTSIG</th>\n"
" <th>ReqSIG0</th>\n"
" <th>ReqBadSIG</th>\n"
" <th>ReqTCP</th>\n"
" <th>AuthQryRej</th>\n"
" <th>RecQryRej</th>\n"
" </tr>\n"
" <tr class=\"lrow\">\n"
" <td><xsl:value-of select=\"server/nsstats/Requestv4\"/></td>\n"
" <td><xsl:value-of select=\"server/nsstats/Requestv6\"/></td>\n"
" <td><xsl:value-of select=\"server/nsstats/ReqEdns0\"/></td>\n"
" <td><xsl:value-of select=\"server/nsstats/ReqBadEDNSVer\"/></td>\n"
" <td><xsl:value-of select=\"server/nsstats/ReqTSIG\"/></td>\n"
" <td><xsl:value-of select=\"server/nsstats/ReqSIG0\"/></td>\n"
" <td><xsl:value-of select=\"server/nsstats/ReqBadSIG\"/></td>\n"
" <td><xsl:value-of select=\"server/nsstats/ReqTCP\"/></td>\n"
" <td><xsl:value-of select=\"server/nsstats/AuthQryRej\"/></td>\n"
" <td><xsl:value-of select=\"server/nsstats/RecQryRej\"/></td>\n"
" </tr>\n"
" <tr class=\"rowh\">\n"
" <th>XfrRej</th>\n"
" <th>UpdateRej</th>\n"
" <th>Response</th>\n"
" <th>RespTruncated</th>\n"
" <th>RespEDNS0</th>\n"
" <th>RespTSIG</th>\n"
" <th>RespSIG0</th>\n"
" <th>QrySuccess</th>\n"
" <th>QryAuthAns</th>\n"
" <th>QryNoauthAns</th>\n"
" </tr>\n"
" <tr class=\"lrow\">\n"
" <td><xsl:value-of select=\"server/nsstats/XfrRej\"/></td>\n"
" <td><xsl:value-of select=\"server/nsstats/UpdateRej\"/></td>\n"
" <td><xsl:value-of select=\"server/nsstats/Response\"/></td>\n"
" <td><xsl:value-of select=\"server/nsstats/TruncatedResp\"/></td>\n"
" <td><xsl:value-of select=\"server/nsstats/RespEDNS0\"/></td>\n"
" <td><xsl:value-of select=\"server/nsstats/RespTSIG\"/></td>\n"
" <td><xsl:value-of select=\"server/nsstats/RespSIG0\"/></td>\n"
" <td><xsl:value-of select=\"server/nsstats/QrySuccess\"/></td>\n"
" <td><xsl:value-of select=\"server/nsstats/QryAuthAns\"/></td>\n"
" <td><xsl:value-of select=\"server/nsstats/QryNoauthAns\"/></td>\n"
" </tr>\n"
" <tr class=\"rowh\">\n"
" <th>QryReferral</th>\n"
" <th>QryNxrrset</th>\n"
" <th>QrySERVFAIL</th>\n"
" <th>QryFORMERR</th>\n"
" <th>QryNXDOMAIN</th>\n"
" <th>QryRecursion</th>\n"
" <th>QryDuplicate</th>\n"
" <th>QryDropped</th>\n"
" <th>QryFailure</th>\n"
" <th>XfrReqDone</th>\n"
" </tr>\n"
" <tr class=\"lrow\">\n"
" <td><xsl:value-of select=\"server/nsstats/QryReferral\"/></td>\n"
" <td><xsl:value-of select=\"server/nsstats/QryNxrrset\"/></td>\n"
" <td><xsl:value-of select=\"server/nsstats/QrySERVFAIL\"/></td>\n"
" <td><xsl:value-of select=\"server/nsstats/QryFORMERR\"/></td>\n"
" <td><xsl:value-of select=\"server/nsstats/QryNXDOMAIN\"/></td>\n"
" <td><xsl:value-of select=\"server/nsstats/QryRecursion\"/></td>\n"
" <td><xsl:value-of select=\"server/nsstats/QryDuplicate\"/></td>\n"
" <td><xsl:value-of select=\"server/nsstats/QryDropped\"/></td>\n"
" <td><xsl:value-of select=\"server/nsstats/QryFailure\"/></td>\n"
" <td><xsl:value-of select=\"server/nsstats/XfrReqDone\"/></td>\n"
" </tr>\n"
" <tr class=\"rowh\">\n"
" <th>UpdateReqFwd</th>\n"
" <th>UpdateRespFwd</th>\n"
" <th>UpdateFwdFail</th>\n"
" <th>UpdateDone</th>\n"
" <th>UpdateFail</th>\n"
" <th>UpdateBadPrereq</th>\n"
" <th>RespMismatch</th>\n"
" <th />\n"
" <th />\n"
" <th />\n"
" </tr>\n"
" <tr class=\"lrow\">\n"
" <td><xsl:value-of select=\"server/nsstats/UpdateReqFwd\"/></td>\n"
" <td><xsl:value-of select=\"server/nsstats/UpdateRespFwd\"/></td>\n"
" <td><xsl:value-of select=\"server/nsstats/UpdateFwdFail\"/></td>\n"
" <td><xsl:value-of select=\"server/nsstats/UpdateDone\"/></td>\n"
" <td><xsl:value-of select=\"server/nsstats/UpdateFail\"/></td>\n"
" <td><xsl:value-of select=\"server/nsstats/UpdateBadPrereq\"/></td>\n"
" <td><xsl:value-of select=\"server/resstats/Mismatch\"/></td>\n"
" <td />\n"
" <td />\n"
" <td />\n"
" </tr>\n"
" </table>\n"
"\n"
" <br/>\n"
"\n"
" <table>\n"
" <tr class=\"rowh\"><th colspan=\"10\">Zone Maintenance Statistics</th></tr>\n"
" <tr class=\"rowh\">\n"
" <!-- The ordering of the following items must be consisten\n"
" with dns_zonestatscounter_xxx -->\n"
" <th>NotifyOutv4</th>\n"
" <th>NotifyOutv6</th>\n"
" <th>NotifyInv4</th>\n"
" <th>NotifyInv6</th>\n"
" <th>NotifyRej</th>\n"
" <th>SOAOutv4</th>\n"
" <th>SOAOutv6</th>\n"
" <th>AXFRReqv4</th>\n"
" <th>AXFRReqv6</th>\n"
" <th>IXFRReqv4</th>\n"
" </tr>\n"
" <tr class=\"lrow\">\n"
" <td><xsl:value-of select=\"server/zonestats/NotifyOutv4\"/></td>\n"
" <td><xsl:value-of select=\"server/zonestats/NotifyOutv6\"/></td>\n"
" <td><xsl:value-of select=\"server/zonestats/NotifyInv4\"/></td>\n"
" <td><xsl:value-of select=\"server/zonestats/NotifyInv6\"/></td>\n"
" <td><xsl:value-of select=\"server/zonestats/NotifyRej\"/></td>\n"
" <td><xsl:value-of select=\"server/zonestats/SOAOutv4\"/></td>\n"
" <td><xsl:value-of select=\"server/zonestats/SOAOutv6\"/></td>\n"
" <td><xsl:value-of select=\"server/zonestats/AXFRReqv4\"/></td>\n"
" <td><xsl:value-of select=\"server/zonestats/AXFRReqv6\"/></td>\n"
" <td><xsl:value-of select=\"server/zonestats/IXFRReqv4\"/></td>\n"
" </tr>\n"
" <tr class=\"rowh\">\n"
" <th>IXFRReqv6</th>\n"
" <th>XfrSuccess</th>\n"
" <th>XfrFail</th>\n"
" <th/>\n"
" <th/>\n"
" <th/>\n"
" <th/>\n"
" <th/>\n"
" <th/>\n"
" <th/>\n"
" </tr>\n"
" <tr class=\"lrow\">\n"
" <td><xsl:value-of select=\"server/zonestats/IXFRReqv6\"/></td>\n"
" <td><xsl:value-of select=\"server/zonestats/XfrSuccess\"/></td>\n"
" <td><xsl:value-of select=\"server/zonestats/XfrFail\"/></td>\n"
" <td/>\n"
" <td/>\n"
" <td/>\n"
" <td/>\n"
" <td/>\n"
" <td/>\n"
" <td/>\n"
" </tr>\n"
" </table>\n"
"\n"
" <br/>\n"
"\n"
" <xsl:for-each select=\"views/view\">\n"
" <table>\n"
" <tr class=\"rowh\">\n"
" <th colspan=\"10\">Resolver Statistics for View <xsl:value-of select=\"name\"/></th>\n"
" </tr>\n"
" <tr class=\"rowh\">\n"
" <!-- The ordering of the following items must be consisten\n"
" with dns_resstatscounter_xxx -->\n"
" <th>Queryv4</th>\n"
" <th>Queryv6</th>\n"
" <th>Responsev4</th>\n"
" <th>Responsev6</th>\n"
" <th>NXDOMAIN</th>\n"
" <th>SERVFAIL</th>\n"