mirror of
https://gitlab.isc.org/isc-projects/bind9
synced 2025-08-22 10:10:06 +00:00
[master] fix cache/ADB stats in new stats schema
new stats that were added for 9.10 (changes 3319-3326) were not all updated when the new statistics schema was merged (change 3418). 3484. [bug] Some statistics were incorrectly rendered in XML. [RT #32587]
This commit is contained in:
parent
8d21efc150
commit
b748b5e2c2
3
CHANGES
3
CHANGES
@ -1,3 +1,6 @@
|
|||||||
|
3484. [bug] Some statistics were incorrectly rendered in XML.
|
||||||
|
[RT #32587]
|
||||||
|
|
||||||
3483. [placeholder]
|
3483. [placeholder]
|
||||||
|
|
||||||
3482. [func] dig +nssearch now prints name servers that don't
|
3482. [func] dig +nssearch now prints name servers that don't
|
||||||
|
@ -366,7 +366,7 @@
|
|||||||
</table>
|
</table>
|
||||||
<h2>Resolver Statistics (Common)</h2>
|
<h2>Resolver Statistics (Common)</h2>
|
||||||
<table class="counters">
|
<table class="counters">
|
||||||
<xsl:for-each select="server/counters[@type="restat"]/counter">
|
<xsl:for-each select="server/counters[@type="resstat"]/counter">
|
||||||
<xsl:sort select="." data-type="number" order="descending"/>
|
<xsl:sort select="." data-type="number" order="descending"/>
|
||||||
<xsl:variable name="css-class4">
|
<xsl:variable name="css-class4">
|
||||||
<xsl:choose>
|
<xsl:choose>
|
||||||
@ -406,6 +406,55 @@
|
|||||||
</xsl:for-each>
|
</xsl:for-each>
|
||||||
</table>
|
</table>
|
||||||
</xsl:for-each>
|
</xsl:for-each>
|
||||||
|
|
||||||
|
|
||||||
|
<xsl:for-each select="views/view">
|
||||||
|
<h3>ADB Statistics for View <xsl:value-of select="@name"/></h3>
|
||||||
|
<table class="counters">
|
||||||
|
<xsl:for-each select="counters[@type="adbstat"]/counter[.>0]">
|
||||||
|
<xsl:sort select="." data-type="number" order="descending"/>
|
||||||
|
<xsl:variable name="css-class5">
|
||||||
|
<xsl:choose>
|
||||||
|
<xsl:when test="position() mod 2 = 0">even</xsl:when>
|
||||||
|
<xsl:otherwise>odd</xsl:otherwise>
|
||||||
|
</xsl:choose>
|
||||||
|
</xsl:variable>
|
||||||
|
<tr class="{$css-class5}">
|
||||||
|
<th>
|
||||||
|
<xsl:value-of select="@name"/>
|
||||||
|
</th>
|
||||||
|
<td>
|
||||||
|
<xsl:value-of select="."/>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</xsl:for-each>
|
||||||
|
</table>
|
||||||
|
</xsl:for-each>
|
||||||
|
|
||||||
|
<xsl:for-each select="views/view">
|
||||||
|
<h3>Cache Statistics for View <xsl:value-of select="@name"/></h3>
|
||||||
|
<table class="counters">
|
||||||
|
<xsl:for-each select="counters[@type="cachestats"]/counter[.>0]">
|
||||||
|
<xsl:sort select="." data-type="number" order="descending"/>
|
||||||
|
<xsl:variable name="css-class5">
|
||||||
|
<xsl:choose>
|
||||||
|
<xsl:when test="position() mod 2 = 0">even</xsl:when>
|
||||||
|
<xsl:otherwise>odd</xsl:otherwise>
|
||||||
|
</xsl:choose>
|
||||||
|
</xsl:variable>
|
||||||
|
<tr class="{$css-class5}">
|
||||||
|
<th>
|
||||||
|
<xsl:value-of select="@name"/>
|
||||||
|
</th>
|
||||||
|
<td>
|
||||||
|
<xsl:value-of select="."/>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</xsl:for-each>
|
||||||
|
</table>
|
||||||
|
</xsl:for-each>
|
||||||
|
|
||||||
|
|
||||||
<h3>Cache DB RRsets for View <xsl:value-of select="@name"/></h3>
|
<h3>Cache DB RRsets for View <xsl:value-of select="@name"/></h3>
|
||||||
<xsl:for-each select="views/view">
|
<xsl:for-each select="views/view">
|
||||||
<table class="counters">
|
<table class="counters">
|
||||||
@ -614,6 +663,12 @@
|
|||||||
<xsl:value-of select="taskmgr/thread-model/tasks-running"/>
|
<xsl:value-of select="taskmgr/thread-model/tasks-running"/>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
<tr class="odd">
|
||||||
|
<th>Tasks Ready</th>
|
||||||
|
<td>
|
||||||
|
<xsl:value-of select="taskmgr/thread-model/tasks-ready"/>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
<br/>
|
<br/>
|
||||||
<h2>Tasks</h2>
|
<h2>Tasks</h2>
|
||||||
@ -624,6 +679,7 @@
|
|||||||
<th>References</th>
|
<th>References</th>
|
||||||
<th>State</th>
|
<th>State</th>
|
||||||
<th>Quantum</th>
|
<th>Quantum</th>
|
||||||
|
<th>Events</th>
|
||||||
</tr>
|
</tr>
|
||||||
<xsl:for-each select="taskmgr/tasks/task">
|
<xsl:for-each select="taskmgr/tasks/task">
|
||||||
<xsl:sort select="name"/>
|
<xsl:sort select="name"/>
|
||||||
@ -649,6 +705,9 @@
|
|||||||
<td>
|
<td>
|
||||||
<xsl:value-of select="quantum"/>
|
<xsl:value-of select="quantum"/>
|
||||||
</td>
|
</td>
|
||||||
|
<td>
|
||||||
|
<xsl:value-of select="events"/>
|
||||||
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</xsl:for-each>
|
</xsl:for-each>
|
||||||
</table>
|
</table>
|
||||||
|
@ -371,7 +371,7 @@ static char xslmsg[] =
|
|||||||
" </table>\n"
|
" </table>\n"
|
||||||
" <h2>Resolver Statistics (Common)</h2>\n"
|
" <h2>Resolver Statistics (Common)</h2>\n"
|
||||||
" <table class=\"counters\">\n"
|
" <table class=\"counters\">\n"
|
||||||
" <xsl:for-each select=\"server/counters[@type="restat"]/counter\">\n"
|
" <xsl:for-each select=\"server/counters[@type="resstat"]/counter\">\n"
|
||||||
" <xsl:sort select=\".\" data-type=\"number\" order=\"descending\"/>\n"
|
" <xsl:sort select=\".\" data-type=\"number\" order=\"descending\"/>\n"
|
||||||
" <xsl:variable name=\"css-class4\">\n"
|
" <xsl:variable name=\"css-class4\">\n"
|
||||||
" <xsl:choose>\n"
|
" <xsl:choose>\n"
|
||||||
@ -411,6 +411,55 @@ static char xslmsg[] =
|
|||||||
" </xsl:for-each>\n"
|
" </xsl:for-each>\n"
|
||||||
" </table>\n"
|
" </table>\n"
|
||||||
" </xsl:for-each>\n"
|
" </xsl:for-each>\n"
|
||||||
|
"\n"
|
||||||
|
"\n"
|
||||||
|
" <xsl:for-each select=\"views/view\">\n"
|
||||||
|
" <h3>ADB Statistics for View <xsl:value-of select=\"@name\"/></h3>\n"
|
||||||
|
" <table class=\"counters\">\n"
|
||||||
|
" <xsl:for-each select=\"counters[@type="adbstat"]/counter[.>0]\">\n"
|
||||||
|
" <xsl:sort select=\".\" data-type=\"number\" order=\"descending\"/>\n"
|
||||||
|
" <xsl:variable name=\"css-class5\">\n"
|
||||||
|
" <xsl:choose>\n"
|
||||||
|
" <xsl:when test=\"position() mod 2 = 0\">even</xsl:when>\n"
|
||||||
|
" <xsl:otherwise>odd</xsl:otherwise>\n"
|
||||||
|
" </xsl:choose>\n"
|
||||||
|
" </xsl:variable>\n"
|
||||||
|
" <tr class=\"{$css-class5}\">\n"
|
||||||
|
" <th>\n"
|
||||||
|
" <xsl:value-of select=\"@name\"/>\n"
|
||||||
|
" </th>\n"
|
||||||
|
" <td>\n"
|
||||||
|
" <xsl:value-of select=\".\"/>\n"
|
||||||
|
" </td>\n"
|
||||||
|
" </tr>\n"
|
||||||
|
" </xsl:for-each>\n"
|
||||||
|
" </table>\n"
|
||||||
|
" </xsl:for-each>\n"
|
||||||
|
"\n"
|
||||||
|
" <xsl:for-each select=\"views/view\">\n"
|
||||||
|
" <h3>Cache Statistics for View <xsl:value-of select=\"@name\"/></h3>\n"
|
||||||
|
" <table class=\"counters\">\n"
|
||||||
|
" <xsl:for-each select=\"counters[@type="cachestats"]/counter[.>0]\">\n"
|
||||||
|
" <xsl:sort select=\".\" data-type=\"number\" order=\"descending\"/>\n"
|
||||||
|
" <xsl:variable name=\"css-class5\">\n"
|
||||||
|
" <xsl:choose>\n"
|
||||||
|
" <xsl:when test=\"position() mod 2 = 0\">even</xsl:when>\n"
|
||||||
|
" <xsl:otherwise>odd</xsl:otherwise>\n"
|
||||||
|
" </xsl:choose>\n"
|
||||||
|
" </xsl:variable>\n"
|
||||||
|
" <tr class=\"{$css-class5}\">\n"
|
||||||
|
" <th>\n"
|
||||||
|
" <xsl:value-of select=\"@name\"/>\n"
|
||||||
|
" </th>\n"
|
||||||
|
" <td>\n"
|
||||||
|
" <xsl:value-of select=\".\"/>\n"
|
||||||
|
" </td>\n"
|
||||||
|
" </tr>\n"
|
||||||
|
" </xsl:for-each>\n"
|
||||||
|
" </table>\n"
|
||||||
|
" </xsl:for-each>\n"
|
||||||
|
"\n"
|
||||||
|
"\n"
|
||||||
" <h3>Cache DB RRsets for View <xsl:value-of select=\"@name\"/></h3>\n"
|
" <h3>Cache DB RRsets for View <xsl:value-of select=\"@name\"/></h3>\n"
|
||||||
" <xsl:for-each select=\"views/view\">\n"
|
" <xsl:for-each select=\"views/view\">\n"
|
||||||
" <table class=\"counters\">\n"
|
" <table class=\"counters\">\n"
|
||||||
@ -619,6 +668,12 @@ static char xslmsg[] =
|
|||||||
" <xsl:value-of select=\"taskmgr/thread-model/tasks-running\"/>\n"
|
" <xsl:value-of select=\"taskmgr/thread-model/tasks-running\"/>\n"
|
||||||
" </td>\n"
|
" </td>\n"
|
||||||
" </tr>\n"
|
" </tr>\n"
|
||||||
|
" <tr class=\"odd\">\n"
|
||||||
|
" <th>Tasks Ready</th>\n"
|
||||||
|
" <td>\n"
|
||||||
|
" <xsl:value-of select=\"taskmgr/thread-model/tasks-ready\"/>\n"
|
||||||
|
" </td>\n"
|
||||||
|
" </tr>\n"
|
||||||
" </table>\n"
|
" </table>\n"
|
||||||
" <br/>\n"
|
" <br/>\n"
|
||||||
" <h2>Tasks</h2>\n"
|
" <h2>Tasks</h2>\n"
|
||||||
@ -629,6 +684,7 @@ static char xslmsg[] =
|
|||||||
" <th>References</th>\n"
|
" <th>References</th>\n"
|
||||||
" <th>State</th>\n"
|
" <th>State</th>\n"
|
||||||
" <th>Quantum</th>\n"
|
" <th>Quantum</th>\n"
|
||||||
|
" <th>Events</th>\n"
|
||||||
" </tr>\n"
|
" </tr>\n"
|
||||||
" <xsl:for-each select=\"taskmgr/tasks/task\">\n"
|
" <xsl:for-each select=\"taskmgr/tasks/task\">\n"
|
||||||
" <xsl:sort select=\"name\"/>\n"
|
" <xsl:sort select=\"name\"/>\n"
|
||||||
@ -654,6 +710,9 @@ static char xslmsg[] =
|
|||||||
" <td>\n"
|
" <td>\n"
|
||||||
" <xsl:value-of select=\"quantum\"/>\n"
|
" <xsl:value-of select=\"quantum\"/>\n"
|
||||||
" </td>\n"
|
" </td>\n"
|
||||||
|
" <td>\n"
|
||||||
|
" <xsl:value-of select=\"events\"/>\n"
|
||||||
|
" </td>\n"
|
||||||
" </tr>\n"
|
" </tr>\n"
|
||||||
" </xsl:for-each>\n"
|
" </xsl:for-each>\n"
|
||||||
" </table>\n"
|
" </table>\n"
|
||||||
|
@ -971,21 +971,28 @@ generatexml(ns_server_t *server, int *buflen, xmlChar **buf) {
|
|||||||
TRY0(xmlTextWriterEndElement(writer)); /* cache */
|
TRY0(xmlTextWriterEndElement(writer)); /* cache */
|
||||||
}
|
}
|
||||||
|
|
||||||
TRY0(xmlTextWriterStartElement(writer, ISC_XMLCHAR
|
/* <adbstats> */
|
||||||
"cachestats"));
|
TRY0(xmlTextWriterStartElement(writer, ISC_XMLCHAR "counters"));
|
||||||
TRY0(dns_cache_renderxml(view->cache, writer));
|
TRY0(xmlTextWriterWriteAttribute(writer, ISC_XMLCHAR "type",
|
||||||
TRY0(xmlTextWriterEndElement(writer)); /* cachestats */
|
ISC_XMLCHAR "adbstat"));
|
||||||
|
if (view->resstats != NULL) {
|
||||||
if (view->adbstats != NULL) {
|
|
||||||
result = dump_counters(view->adbstats,
|
result = dump_counters(view->adbstats,
|
||||||
isc_statsformat_xml, writer,
|
isc_statsformat_xml, writer,
|
||||||
"adbstat", adbstats_xmldesc,
|
NULL, adbstats_xmldesc,
|
||||||
dns_adbstats_max,
|
dns_adbstats_max,
|
||||||
adbstats_index, adbstat_values,
|
adbstats_index, adbstat_values,
|
||||||
ISC_STATSDUMP_VERBOSE);
|
ISC_STATSDUMP_VERBOSE);
|
||||||
if (result != ISC_R_SUCCESS)
|
if (result != ISC_R_SUCCESS)
|
||||||
goto error;
|
goto error;
|
||||||
}
|
}
|
||||||
|
TRY0(xmlTextWriterEndElement(writer)); /* </adbstats> */
|
||||||
|
|
||||||
|
/* <cachestats> */
|
||||||
|
TRY0(xmlTextWriterStartElement(writer, ISC_XMLCHAR "counters"));
|
||||||
|
TRY0(xmlTextWriterWriteAttribute(writer, ISC_XMLCHAR "type",
|
||||||
|
ISC_XMLCHAR "cachestats"));
|
||||||
|
TRY0(dns_cache_renderxml(view->cache, writer));
|
||||||
|
TRY0(xmlTextWriterEndElement(writer)); /* </cachestats> */
|
||||||
|
|
||||||
TRY0(xmlTextWriterEndElement(writer)); /* view */
|
TRY0(xmlTextWriterEndElement(writer)); /* view */
|
||||||
|
|
||||||
@ -1074,7 +1081,6 @@ generatexml(ns_server_t *server, int *buflen, xmlChar **buf) {
|
|||||||
resstat_values, 0);
|
resstat_values, 0);
|
||||||
if (result != ISC_R_SUCCESS)
|
if (result != ISC_R_SUCCESS)
|
||||||
goto error;
|
goto error;
|
||||||
|
|
||||||
TRY0(xmlTextWriterEndElement(writer)); /* counters type=resstat */
|
TRY0(xmlTextWriterEndElement(writer)); /* counters type=resstat */
|
||||||
|
|
||||||
TRY0(xmlTextWriterStartElement(writer, ISC_XMLCHAR "counters"));
|
TRY0(xmlTextWriterStartElement(writer, ISC_XMLCHAR "counters"));
|
||||||
|
@ -1400,15 +1400,14 @@ static int
|
|||||||
renderstat(const char *name, isc_uint64_t value, xmlTextWriterPtr writer) {
|
renderstat(const char *name, isc_uint64_t value, xmlTextWriterPtr writer) {
|
||||||
int xmlrc;
|
int xmlrc;
|
||||||
|
|
||||||
TRY0(xmlTextWriterStartElement(writer, ISC_XMLCHAR "cachestat"));
|
TRY0(xmlTextWriterStartElement(writer, ISC_XMLCHAR "counter"));
|
||||||
TRY0(xmlTextWriterStartElement(writer, ISC_XMLCHAR "name"));
|
TRY0(xmlTextWriterWriteAttribute(writer,
|
||||||
TRY0(xmlTextWriterWriteString(writer, ISC_XMLCHAR name));
|
ISC_XMLCHAR "name", ISC_XMLCHAR name));
|
||||||
TRY0(xmlTextWriterEndElement(writer)); /* name */
|
|
||||||
TRY0(xmlTextWriterStartElement(writer, ISC_XMLCHAR "value"));
|
|
||||||
TRY0(xmlTextWriterWriteFormatString(writer,
|
TRY0(xmlTextWriterWriteFormatString(writer,
|
||||||
"%" ISC_PRINT_QUADFORMAT "u", value));
|
"%" ISC_PRINT_QUADFORMAT "u",
|
||||||
TRY0(xmlTextWriterEndElement(writer)); /* value */
|
value));
|
||||||
TRY0(xmlTextWriterEndElement(writer)); /* cachestat */
|
TRY0(xmlTextWriterEndElement(writer)); /* counter */
|
||||||
|
|
||||||
error:
|
error:
|
||||||
return (xmlrc);
|
return (xmlrc);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user