- OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
- PERFORMANCE OF THIS SOFTWARE.
-->
-
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml" version="1.0">
<xsl:output method="html" indent="yes" version="4.0"/>
<xsl:template match="statistics[@version="3.6"]">
<script type="text/javascript" src="https://www.google.com/jsapi"/>
<script type="text/javascript">
- google.load("visualization", "1", {packages:["corechart"]});
- google.setOnLoadCallback(loadGraphs);
-
- var graphs=[];
-
- function drawChart(chart_title,target,style,data) {
- var data = google.visualization.arrayToDataTable(data);
-
- var options = {
- title: chart_title
- };
-
- var chart;
- if (style == "barchart") {
- chart = new google.visualization.BarChart(document.getElementById(target));
- chart.draw(data, options);
- } else if (style == "piechart") {
- chart = new google.visualization.PieChart(document.getElementById(target));
- chart.draw(data, options);
- }
- }
-
- function loadGraphs(){
- var g;
-
- while(g = graphs.shift()){
- // alert("going for: " + g.target);
- if(g.data.length > 1){
- drawChart(g.title,g.target,g.style,g.data);
- }
- }
- }
-
- <xsl:if test="server/counters[@type="qtype"]/counter">
- // Server Incoming Query Types
- graphs.push({
- 'title' : "Server Incoming Query Types",
- 'target': 'chart_incoming_qtypes',
- 'style': 'barchart',
- 'data': [['Type','Counter'],<xsl:for-each select="server/counters[@type="qtype"]/counter">['<xsl:value-of select="@name"/>',<xsl:value-of select="."/>],</xsl:for-each>]
- });
- </xsl:if>
-
- <xsl:if test="server/counters[@type="opcode"]/counter">
- // Server Incoming Requests by opcode
- graphs.push({
- 'title' : "Server Incoming Requests by DNS Opcode",
- 'target': 'chart_incoming_opcodes',
- 'style': 'barchart',
- 'data': [['Opcode','Counter'],<xsl:for-each select="server/counters[@type="opcode"]/counter[. > 0 or substring(@name,1,3) != 'RES']">['<xsl:value-of select="@name"/>',<xsl:value-of select="."/>],</xsl:for-each>]});
- </xsl:if>
- </script>
+ google.load("visualization", "1", {packages:["corechart"]});
+ google.setOnLoadCallback(loadGraphs);
+
+ var graphs=[];
+
+ function drawChart(chart_title,target,style,data) {
+ var data = google.visualization.arrayToDataTable(data);
+
+ var options = {
+ title: chart_title
+ };
+
+ var chart;
+ if (style == "barchart") {
+ chart = new google.visualization.BarChart(document.getElementById(target));
+ chart.draw(data, options);
+ } else if (style == "piechart") {
+ chart = new google.visualization.PieChart(document.getElementById(target));
+ chart.draw(data, options);
+ }
+ }
+
+ function loadGraphs(){
+ var g;
+
+ while(g = graphs.shift()){
+ // alert("going for: " + g.target);
+ if(g.data.length > 1){
+ drawChart(g.title,g.target,g.style,g.data);
+ }
+ }
+ }
+
+ <xsl:if test="server/counters[@type="qtype"]/counter">
+ // Server Incoming Query Types
+ graphs.push({
+ 'title' : "Server Incoming Query Types",
+ 'target': 'chart_incoming_qtypes',
+ 'style': 'barchart',
+ 'data': [['Type','Counter'],<xsl:for-each select="server/counters[@type="qtype"]/counter">['<xsl:value-of select="@name"/>',<xsl:value-of select="."/>],</xsl:for-each>]
+ });
+ </xsl:if>
+
+ <xsl:if test="server/counters[@type="opcode"]/counter">
+ // Server Incoming Requests by opcode
+ graphs.push({
+ 'title' : "Server Incoming Requests by DNS Opcode",
+ 'target': 'chart_incoming_opcodes',
+ 'style': 'barchart',
+ 'data': [['Opcode','Counter'],<xsl:for-each select="server/counters[@type="opcode"]/counter[. > 0 or substring(@name,1,3) != 'RES']">['<xsl:value-of select="@name"/>',<xsl:value-of select="."/>],</xsl:for-each>]});
+ </xsl:if>
+ </script>
</xsl:if>
<style type="text/css">
body {
text-align:center;
}
h4 {
- color: rgb(1,169,206);
- font-size: 10pt;
+ color: rgb(1,169,206);
+ font-size: 10pt;
width:500px;
text-align:center;
}
<div class="header">
<h1>ISC Bind 9 Configuration and Statistics</h1>
</div>
- <p>Alternate statistics views: <a href="/">All</a>,
+ <p>Alternate statistics views: <a href="/">All</a>,
<a href="/xml/v3/status">Status</a>,
<a href="/xml/v3/server">Server</a>,
<a href="/xml/v3/zones">Zones</a>,
<xsl:value-of select="server/current-time"/>
</td>
</tr>
+ <tr>
+ <th>Server version:</th>
+ <td>
+ <xsl:value-of select="server/version"/>
+ </td>
+ </tr>
</table>
<br/>
<xsl:if test="server/counters[@type="opcode"]/counter[. > 0]">
<h2>Incoming Requests by DNS Opcode</h2>
<!-- Non Mozilla specific markup -->
<div class="pie" id="chart_incoming_opcodes">
- [cannot display chart]
- </div>
+ [cannot display chart]
+ </div>
</xsl:if>
<table class="counters">
<xsl:for-each select="server/counters[@type="opcode"]/counter[. > 0 or substring(@name,1,3) != 'RES']">
<!-- Non Mozilla specific markup -->
<h3>Incoming Queries by Query Type</h3>
<div class="pie" id="chart_incoming_qtypes">
- [cannot display chart]
- </div>
+ [cannot display chart]
+ </div>
</xsl:if>
<table class="counters">
<xsl:for-each select="server/counters[@type="qtype"]/counter">
<h3>View <xsl:value-of select="@name"/></h3>
<xsl:if test="system-property('xsl:vendor')!='Transformiix'">
<!-- Non Mozilla specific markup -->
- <script type="text/javascript">
- graphs.push({
- 'title': "Outgoing Queries for view: <xsl:value-of select="@name"/>",
- 'target': 'chart_outgoing_queries_view_<xsl:value-of select="@name"/>',
- 'style': 'barchart',
- 'data': [['Type','Counter'],<xsl:for-each select="counters[@type="resqtype"]/counter">['<xsl:value-of select="@name"/>',<xsl:value-of select="."/>],</xsl:for-each>]
- });
- </script>
- <xsl:variable name="target">
- <xsl:value-of select="@name"/>
- </xsl:variable>
+ <script type="text/javascript">
+ graphs.push({
+ 'title': "Outgoing Queries for view: <xsl:value-of select="@name"/>",
+ 'target': 'chart_outgoing_queries_view_<xsl:value-of select="@name"/>',
+ 'style': 'barchart',
+ 'data': [['Type','Counter'],<xsl:for-each select="counters[@type="resqtype"]/counter">['<xsl:value-of select="@name"/>',<xsl:value-of select="."/>],</xsl:for-each>]
+ });
+ </script>
+ <xsl:variable name="target">
+ <xsl:value-of select="@name"/>
+ </xsl:variable>
<div class="pie" id="chart_outgoing_queries_view_{$target}">[no data to display]</div>
</xsl:if>
<table class="counters">
<h2>Server Statistics</h2>
<xsl:if test="system-property('xsl:vendor')!='Transformiix'">
<!-- Non Mozilla specific markup -->
- <script type="text/javascript">
- graphs.push({
- 'title' : "Server Counters",
- 'target': 'chart_server_nsstat_restype',
- 'style': 'barchart',
- 'data': [['Type','Counter'],<xsl:for-each select="server/counters[@type="nsstat"]/counter[.>0]">['<xsl:value-of select="@name"/>',<xsl:value-of select="."/>],</xsl:for-each>]
- });
- </script>
+ <script type="text/javascript">
+ graphs.push({
+ 'title' : "Server Counters",
+ 'target': 'chart_server_nsstat_restype',
+ 'style': 'barchart',
+ 'data': [['Type','Counter'],<xsl:for-each select="server/counters[@type="nsstat"]/counter[.>0]">['<xsl:value-of select="@name"/>',<xsl:value-of select="."/>],</xsl:for-each>]
+ });
+ </script>
<div class="pie" id="chart_server_nsstat_restype">[no data to display]</div>
</xsl:if>
<table class="counters">
<xsl:if test="system-property('xsl:vendor')!='Transformiix'">
<h2>Zone Maintenance Statistics</h2>
<script type="text/javascript">
- graphs.push({
- 'title' : "Zone Maintenance Stats",
- 'target': 'chart_server_zone_maint',
- 'style': 'barchart',
- 'data': [['Type','Counter'],<xsl:for-each select="server/counters[@type="zonestat"]/counter[.>0]">['<xsl:value-of select="@name"/>',<xsl:value-of select="."/>],</xsl:for-each>]
- });
- </script>
+ graphs.push({
+ 'title' : "Zone Maintenance Stats",
+ 'target': 'chart_server_zone_maint',
+ 'style': 'barchart',
+ 'data': [['Type','Counter'],<xsl:for-each select="server/counters[@type="zonestat"]/counter[.>0]">['<xsl:value-of select="@name"/>',<xsl:value-of select="."/>],</xsl:for-each>]
+ });
+ </script>
<!-- Non Mozilla specific markup -->
<div class="pie" id="chart_server_zone_maint">[no data to display]</div>
</xsl:if>
</table>
</xsl:if>
</xsl:for-each>
-
<xsl:for-each select="views/view">
<xsl:if test="counters[@type="cachestats"]/counter[.>0]">
<h3>Cache Statistics for View <xsl:value-of select="@name"/></h3>
</table>
</xsl:if>
</xsl:for-each>
-
<xsl:for-each select="views/view">
<xsl:if test="cache/rrset">
<h3>Cache DB RRsets for View <xsl:value-of select="@name"/></h3>
<br/>
</xsl:if>
</xsl:for-each>
-
<xsl:if test="traffic/udp/counters[@type="request-size"]/counter[.>0] or traffic/udp/counters[@type="response-size"]/counter[.>0] or traffic/tcp/counters[@type="request-size"]/counter[.>0] or traffic/tcp/counters[@type="response-size"]/counter[.>0]">
<h2>Traffic Size Statistics</h2>
</xsl:if>
- <xsl:if test="traffic/udp/counters[@type="request-size"]/counter[.>0]">
- <h4>UDP Requests Received</h4>
- <table class="counters">
- <xsl:for-each select="traffic/udp/counters[@type="request-size"]/counter[.>0]">
- <xsl:variable name="css-class7">
- <xsl:choose>
- <xsl:when test="position() mod 2 = 0">even</xsl:when>
- <xsl:otherwise>odd</xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
- <tr class="{$css-class7}">
- <th>
- <xsl:value-of select="@name"/>
- </th>
- <td>
- <xsl:value-of select="."/>
- </td>
- </tr>
- </xsl:for-each>
- </table>
- <br/>
- </xsl:if>
-
- <xsl:if test="traffic/udp/counters[@type="response-size"]/counter[.>0]">
- <h4>UDP Responses Sent</h4>
- <table class="counters">
- <xsl:for-each select="traffic/udp/counters[@type="response-size"]/counter[.>0]">
- <xsl:variable name="css-class7">
- <xsl:choose>
- <xsl:when test="position() mod 2 = 0">even</xsl:when>
- <xsl:otherwise>odd</xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
- <tr class="{$css-class7}">
- <th>
- <xsl:value-of select="@name"/>
- </th>
- <td>
- <xsl:value-of select="."/>
- </td>
- </tr>
- </xsl:for-each>
- </table>
- <br/>
- </xsl:if>
-
- <xsl:if test="traffic/tcp/counters[@type="request-size"]/counter[.>0]">
- <h4>TCP Requests Received</h4>
- <table class="counters">
- <xsl:for-each select="traffic/tcp/counters[@type="request-size"]/counter[.>0]">
- <xsl:variable name="css-class7">
- <xsl:choose>
- <xsl:when test="position() mod 2 = 0">even</xsl:when>
- <xsl:otherwise>odd</xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
- <tr class="{$css-class7}">
- <th>
- <xsl:value-of select="@name"/>
- </th>
- <td>
- <xsl:value-of select="."/>
- </td>
- </tr>
- </xsl:for-each>
- </table>
- <br/>
- </xsl:if>
-
- <xsl:if test="traffic/tcp/counters[@type="response-size"]/counter[.>0]">
- <h4>TCP Responses Sent</h4>
- <table class="counters">
- <xsl:for-each select="traffic/tcp/counters[@type="response-size"]/counter[.>0]">
- <xsl:variable name="css-class7">
- <xsl:choose>
- <xsl:when test="position() mod 2 = 0">even</xsl:when>
- <xsl:otherwise>odd</xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
- <tr class="{$css-class7}">
- <th>
- <xsl:value-of select="@name"/>
- </th>
- <td>
- <xsl:value-of select="."/>
- </td>
- </tr>
- </xsl:for-each>
- </table>
- <br/>
- </xsl:if>
-
- <xsl:if test="server/counters[@type="sockstat"]/counter[.>0]">
- <h2>Socket I/O Statistics</h2>
- <table class="counters">
- <xsl:for-each select="server/counters[@type="sockstat"]/counter[.>0]">
- <xsl:variable name="css-class7">
- <xsl:choose>
- <xsl:when test="position() mod 2 = 0">even</xsl:when>
- <xsl:otherwise>odd</xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
- <tr class="{$css-class7}">
- <th>
- <xsl:value-of select="@name"/>
- </th>
- <td>
- <xsl:value-of select="."/>
- </td>
- </tr>
- </xsl:for-each>
- </table>
- <br/>
- </xsl:if>
- <xsl:if test="views/view[zones/zone/counters[@type="qtype"]/counter >0]">
- <h2>Received QTYPES per view/zone</h2>
- <xsl:for-each select="views/view[zones/zone/counters[@type="qtype"]/counter >0]">
- <h3>View <xsl:value-of select="@name"/></h3>
- <xsl:variable name="thisview">
- <xsl:value-of select="@name"/>
- </xsl:variable>
- <xsl:for-each select="zones/zone">
- <xsl:if test="counters[@type="qtype"]/counter[count(.) > 0]">
- <h4>Zone <xsl:value-of select="@name"/></h4>
- <xsl:if test="system-property('xsl:vendor')!='Transformiix'">
- <!-- Non Mozilla specific markup -->
- <script type="text/javascript">
+ <xsl:if test="traffic/udp/counters[@type="request-size"]/counter[.>0]">
+ <h4>UDP Requests Received</h4>
+ <table class="counters">
+ <xsl:for-each select="traffic/udp/counters[@type="request-size"]/counter[.>0]">
+ <xsl:variable name="css-class7">
+ <xsl:choose>
+ <xsl:when test="position() mod 2 = 0">even</xsl:when>
+ <xsl:otherwise>odd</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <tr class="{$css-class7}">
+ <th>
+ <xsl:value-of select="@name"/>
+ </th>
+ <td>
+ <xsl:value-of select="."/>
+ </td>
+ </tr>
+ </xsl:for-each>
+ </table>
+ <br/>
+ </xsl:if>
+ <xsl:if test="traffic/udp/counters[@type="response-size"]/counter[.>0]">
+ <h4>UDP Responses Sent</h4>
+ <table class="counters">
+ <xsl:for-each select="traffic/udp/counters[@type="response-size"]/counter[.>0]">
+ <xsl:variable name="css-class7">
+ <xsl:choose>
+ <xsl:when test="position() mod 2 = 0">even</xsl:when>
+ <xsl:otherwise>odd</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <tr class="{$css-class7}">
+ <th>
+ <xsl:value-of select="@name"/>
+ </th>
+ <td>
+ <xsl:value-of select="."/>
+ </td>
+ </tr>
+ </xsl:for-each>
+ </table>
+ <br/>
+ </xsl:if>
+ <xsl:if test="traffic/tcp/counters[@type="request-size"]/counter[.>0]">
+ <h4>TCP Requests Received</h4>
+ <table class="counters">
+ <xsl:for-each select="traffic/tcp/counters[@type="request-size"]/counter[.>0]">
+ <xsl:variable name="css-class7">
+ <xsl:choose>
+ <xsl:when test="position() mod 2 = 0">even</xsl:when>
+ <xsl:otherwise>odd</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <tr class="{$css-class7}">
+ <th>
+ <xsl:value-of select="@name"/>
+ </th>
+ <td>
+ <xsl:value-of select="."/>
+ </td>
+ </tr>
+ </xsl:for-each>
+ </table>
+ <br/>
+ </xsl:if>
+ <xsl:if test="traffic/tcp/counters[@type="response-size"]/counter[.>0]">
+ <h4>TCP Responses Sent</h4>
+ <table class="counters">
+ <xsl:for-each select="traffic/tcp/counters[@type="response-size"]/counter[.>0]">
+ <xsl:variable name="css-class7">
+ <xsl:choose>
+ <xsl:when test="position() mod 2 = 0">even</xsl:when>
+ <xsl:otherwise>odd</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <tr class="{$css-class7}">
+ <th>
+ <xsl:value-of select="@name"/>
+ </th>
+ <td>
+ <xsl:value-of select="."/>
+ </td>
+ </tr>
+ </xsl:for-each>
+ </table>
+ <br/>
+ </xsl:if>
+ <xsl:if test="server/counters[@type="sockstat"]/counter[.>0]">
+ <h2>Socket I/O Statistics</h2>
+ <table class="counters">
+ <xsl:for-each select="server/counters[@type="sockstat"]/counter[.>0]">
+ <xsl:variable name="css-class7">
+ <xsl:choose>
+ <xsl:when test="position() mod 2 = 0">even</xsl:when>
+ <xsl:otherwise>odd</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <tr class="{$css-class7}">
+ <th>
+ <xsl:value-of select="@name"/>
+ </th>
+ <td>
+ <xsl:value-of select="."/>
+ </td>
+ </tr>
+ </xsl:for-each>
+ </table>
+ <br/>
+ </xsl:if>
+ <xsl:if test="views/view[zones/zone/counters[@type="qtype"]/counter >0]">
+ <h2>Received QTYPES per view/zone</h2>
+ <xsl:for-each select="views/view[zones/zone/counters[@type="qtype"]/counter >0]">
+ <h3>View <xsl:value-of select="@name"/></h3>
+ <xsl:variable name="thisview">
+ <xsl:value-of select="@name"/>
+ </xsl:variable>
+ <xsl:for-each select="zones/zone">
+ <xsl:if test="counters[@type="qtype"]/counter[count(.) > 0]">
+ <h4>Zone <xsl:value-of select="@name"/></h4>
+ <xsl:if test="system-property('xsl:vendor')!='Transformiix'">
+ <!-- Non Mozilla specific markup -->
+ <script type="text/javascript">
graphs.push({
'title': "Query types for zone <xsl:value-of select="@name"/>",
'target': 'chart_qtype_<xsl:value-of select="../../@name"/>_<xsl:value-of select="@name"/>',
});
</script>
- <xsl:variable name="target">
- <xsl:value-of select="@name"/>
- </xsl:variable>
- <div class="pie" id="chart_qtype_{$thisview}_{$target}">[no data to display]</div>
- </xsl:if>
- <table class="counters">
- <xsl:for-each select="counters[@type="qtype"]/counter">
- <xsl:sort select="."/>
- <xsl:variable name="css-class10">
- <xsl:choose>
- <xsl:when test="position() mod 2 = 0">even</xsl:when>
- <xsl:otherwise>odd</xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
- <tr class="{$css-class10}">
- <th>
- <xsl:value-of select="@name"/>
- </th>
- <td>
- <xsl:value-of select="."/>
- </td>
- </tr>
- </xsl:for-each>
- </table>
- </xsl:if>
- </xsl:for-each>
- </xsl:for-each>
- </xsl:if>
- <xsl:if test="views/view[zones/zone/counters[@type="rcode"]/counter >0]">
- <h2>Response Codes per view/zone</h2>
- <xsl:for-each select="views/view[zones/zone/counters[@type="rcode"]/counter >0]">
- <h3>View <xsl:value-of select="@name"/></h3>
- <xsl:variable name="thisview2">
- <xsl:value-of select="@name"/>
- </xsl:variable>
- <xsl:for-each select="zones/zone">
- <xsl:if test="counters[@type="rcode"]/counter[. > 0]">
- <h4>Zone <xsl:value-of select="@name"/></h4>
- <xsl:if test="system-property('xsl:vendor')!='Transformiix'">
- <!-- Non Mozilla specific markup -->
- <script type="text/javascript">
+ <xsl:variable name="target">
+ <xsl:value-of select="@name"/>
+ </xsl:variable>
+ <div class="pie" id="chart_qtype_{$thisview}_{$target}">[no data to display]</div>
+ </xsl:if>
+ <table class="counters">
+ <xsl:for-each select="counters[@type="qtype"]/counter">
+ <xsl:sort select="."/>
+ <xsl:variable name="css-class10">
+ <xsl:choose>
+ <xsl:when test="position() mod 2 = 0">even</xsl:when>
+ <xsl:otherwise>odd</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <tr class="{$css-class10}">
+ <th>
+ <xsl:value-of select="@name"/>
+ </th>
+ <td>
+ <xsl:value-of select="."/>
+ </td>
+ </tr>
+ </xsl:for-each>
+ </table>
+ </xsl:if>
+ </xsl:for-each>
+ </xsl:for-each>
+ </xsl:if>
+ <xsl:if test="views/view[zones/zone/counters[@type="rcode"]/counter >0]">
+ <h2>Response Codes per view/zone</h2>
+ <xsl:for-each select="views/view[zones/zone/counters[@type="rcode"]/counter >0]">
+ <h3>View <xsl:value-of select="@name"/></h3>
+ <xsl:variable name="thisview2">
+ <xsl:value-of select="@name"/>
+ </xsl:variable>
+ <xsl:for-each select="zones/zone">
+ <xsl:if test="counters[@type="rcode"]/counter[. > 0]">
+ <h4>Zone <xsl:value-of select="@name"/></h4>
+ <xsl:if test="system-property('xsl:vendor')!='Transformiix'">
+ <!-- Non Mozilla specific markup -->
+ <script type="text/javascript">
graphs.push({
'title': "Response codes for zone <xsl:value-of select="@name"/>",
'target': 'chart_rescode_<xsl:value-of select="../../@name"/>_<xsl:value-of select="@name"/>',
});
</script>
- <xsl:variable name="target">
- <xsl:value-of select="@name"/>
- </xsl:variable>
- <div class="pie" id="chart_rescode_{$thisview2}_{$target}">[no data to display]</div>
- </xsl:if>
- <table class="counters">
- <xsl:for-each select="counters[@type="rcode"]/counter[.>0 and @name != "QryAuthAns"]">
- <xsl:sort select="."/>
- <xsl:variable name="css-class11">
- <xsl:choose>
- <xsl:when test="position() mod 2 = 0">even</xsl:when>
- <xsl:otherwise>odd</xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
- <tr class="{$css-class11}">
- <th>
- <xsl:value-of select="@name"/>
- </th>
- <td>
- <xsl:value-of select="."/>
- </td>
- </tr>
- </xsl:for-each>
- </table>
- </xsl:if>
- </xsl:for-each>
- </xsl:for-each>
- </xsl:if>
- <xsl:if test="socketmgr/sockets/socket">
- <h2>Network Status</h2>
- <table class="netstat">
- <tr>
- <th>ID</th>
- <th>Name</th>
- <th>Type</th>
- <th>References</th>
- <th>LocalAddress</th>
- <th>PeerAddress</th>
- <th>State</th>
- </tr>
- <xsl:for-each select="socketmgr/sockets/socket">
- <xsl:sort select="id"/>
- <xsl:variable name="css-class12">
- <xsl:choose>
- <xsl:when test="position() mod 2 = 0">even</xsl:when>
- <xsl:otherwise>odd</xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
- <tr class="{$css-class12}">
- <td>
- <xsl:value-of select="id"/>
- </td>
- <td>
- <xsl:value-of select="name"/>
- </td>
- <td>
- <xsl:value-of select="type"/>
- </td>
- <td>
- <xsl:value-of select="references"/>
- </td>
- <td>
- <xsl:value-of select="local-address"/>
- </td>
- <td>
- <xsl:value-of select="peer-address"/>
- </td>
- <td>
- <xsl:for-each select="states">
- <xsl:value-of select="."/>
- </xsl:for-each>
- </td>
- </tr>
- </xsl:for-each>
- </table>
- <br/>
- </xsl:if>
- <xsl:if test="taskmgr/thread-model/type">
- <h2>Task Manager Configuration</h2>
- <table class="counters">
- <tr>
- <th class="even">Thread-Model</th>
- <td>
- <xsl:value-of select="taskmgr/thread-model/type"/>
- </td>
- </tr>
- <tr class="odd">
- <th>Worker Threads</th>
- <td>
- <xsl:value-of select="taskmgr/thread-model/worker-threads"/>
- </td>
- </tr>
- <tr class="even">
- <th>Default Quantum</th>
- <td>
- <xsl:value-of select="taskmgr/thread-model/default-quantum"/>
- </td>
- </tr>
- <tr class="odd">
- <th>Tasks Running</th>
- <td>
- <xsl:value-of select="taskmgr/thread-model/tasks-running"/>
- </td>
- </tr>
- <tr class="even">
- <th>Tasks Ready</th>
- <td>
- <xsl:value-of select="taskmgr/thread-model/tasks-ready"/>
- </td>
- </tr>
- </table>
- <br/>
- </xsl:if>
- <xsl:if test="taskmgr/tasks/task">
- <h2>Tasks</h2>
- <table class="tasks">
- <tr>
- <th>ID</th>
- <th>Name</th>
- <th>References</th>
- <th>State</th>
- <th>Quantum</th>
- <th>Events</th>
- </tr>
- <xsl:for-each select="taskmgr/tasks/task">
- <xsl:sort select="name"/>
- <xsl:variable name="css-class14">
- <xsl:choose>
- <xsl:when test="position() mod 2 = 0">even</xsl:when>
- <xsl:otherwise>odd</xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
- <tr class="{$css-class14}">
- <td>
- <xsl:value-of select="id"/>
- </td>
- <td>
- <xsl:value-of select="name"/>
- </td>
- <td>
- <xsl:value-of select="references"/>
- </td>
- <td>
- <xsl:value-of select="state"/>
- </td>
- <td>
- <xsl:value-of select="quantum"/>
- </td>
- <td>
- <xsl:value-of select="events"/>
- </td>
- </tr>
- </xsl:for-each>
- </table>
- <br/>
- </xsl:if>
- <xsl:if test="memory/summary">
- <h2>Memory Usage Summary</h2>
- <table class="counters">
- <xsl:for-each select="memory/summary/*">
- <xsl:variable name="css-class13">
- <xsl:choose>
- <xsl:when test="position() mod 2 = 0">even</xsl:when>
- <xsl:otherwise>odd</xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
- <tr class="{$css-class13}">
- <th>
- <xsl:value-of select="name()"/>
- </th>
- <td>
- <xsl:value-of select="."/>
- </td>
- </tr>
- </xsl:for-each>
- </table>
- <br/>
- </xsl:if>
- <xsl:if test="memory/contexts/context">
- <h2>Memory Contexts</h2>
- <table class="mctx">
- <tr>
- <th>ID</th>
- <th>Name</th>
- <th>References</th>
- <th>TotalUse</th>
- <th>InUse</th>
- <th>MaxUse</th>
- <th>BlockSize</th>
- <th>Pools</th>
- <th>HiWater</th>
- <th>LoWater</th>
- </tr>
- <xsl:for-each select="memory/contexts/context">
- <xsl:sort select="total" data-type="number" order="descending"/>
- <xsl:variable name="css-class14">
- <xsl:choose>
- <xsl:when test="position() mod 2 = 0">even</xsl:when>
- <xsl:otherwise>odd</xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
- <tr class="{$css-class14}">
- <td>
- <xsl:value-of select="id"/>
- </td>
- <td>
- <xsl:value-of select="name"/>
- </td>
- <td>
- <xsl:value-of select="references"/>
- </td>
- <td>
- <xsl:value-of select="total"/>
- </td>
- <td>
- <xsl:value-of select="inuse"/>
- </td>
- <td>
- <xsl:value-of select="maxinuse"/>
- </td>
- <td>
- <xsl:value-of select="blocksize"/>
- </td>
- <td>
- <xsl:value-of select="pools"/>
- </td>
- <td>
- <xsl:value-of select="hiwater"/>
- </td>
- <td>
- <xsl:value-of select="lowater"/>
- </td>
- </tr>
- </xsl:for-each>
- </table>
- </xsl:if>
- <hr/>
- <p class="footer">Internet Systems Consortium Inc.<br/><a href="http://www.isc.org">http://www.isc.org</a></p>
+ <xsl:variable name="target">
+ <xsl:value-of select="@name"/>
+ </xsl:variable>
+ <div class="pie" id="chart_rescode_{$thisview2}_{$target}">[no data to display]</div>
+ </xsl:if>
+ <table class="counters">
+ <xsl:for-each select="counters[@type="rcode"]/counter[.>0 and @name != "QryAuthAns"]">
+ <xsl:sort select="."/>
+ <xsl:variable name="css-class11">
+ <xsl:choose>
+ <xsl:when test="position() mod 2 = 0">even</xsl:when>
+ <xsl:otherwise>odd</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <tr class="{$css-class11}">
+ <th>
+ <xsl:value-of select="@name"/>
+ </th>
+ <td>
+ <xsl:value-of select="."/>
+ </td>
+ </tr>
+ </xsl:for-each>
+ </table>
+ </xsl:if>
+ </xsl:for-each>
+ </xsl:for-each>
+ </xsl:if>
+ <xsl:if test="socketmgr/sockets/socket">
+ <h2>Network Status</h2>
+ <table class="netstat">
+ <tr>
+ <th>ID</th>
+ <th>Name</th>
+ <th>Type</th>
+ <th>References</th>
+ <th>LocalAddress</th>
+ <th>PeerAddress</th>
+ <th>State</th>
+ </tr>
+ <xsl:for-each select="socketmgr/sockets/socket">
+ <xsl:sort select="id"/>
+ <xsl:variable name="css-class12">
+ <xsl:choose>
+ <xsl:when test="position() mod 2 = 0">even</xsl:when>
+ <xsl:otherwise>odd</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <tr class="{$css-class12}">
+ <td>
+ <xsl:value-of select="id"/>
+ </td>
+ <td>
+ <xsl:value-of select="name"/>
+ </td>
+ <td>
+ <xsl:value-of select="type"/>
+ </td>
+ <td>
+ <xsl:value-of select="references"/>
+ </td>
+ <td>
+ <xsl:value-of select="local-address"/>
+ </td>
+ <td>
+ <xsl:value-of select="peer-address"/>
+ </td>
+ <td>
+ <xsl:for-each select="states">
+ <xsl:value-of select="."/>
+ </xsl:for-each>
+ </td>
+ </tr>
+ </xsl:for-each>
+ </table>
+ <br/>
+ </xsl:if>
+ <xsl:if test="taskmgr/thread-model/type">
+ <h2>Task Manager Configuration</h2>
+ <table class="counters">
+ <tr>
+ <th class="even">Thread-Model</th>
+ <td>
+ <xsl:value-of select="taskmgr/thread-model/type"/>
+ </td>
+ </tr>
+ <tr class="odd">
+ <th>Worker Threads</th>
+ <td>
+ <xsl:value-of select="taskmgr/thread-model/worker-threads"/>
+ </td>
+ </tr>
+ <tr class="even">
+ <th>Default Quantum</th>
+ <td>
+ <xsl:value-of select="taskmgr/thread-model/default-quantum"/>
+ </td>
+ </tr>
+ <tr class="odd">
+ <th>Tasks Running</th>
+ <td>
+ <xsl:value-of select="taskmgr/thread-model/tasks-running"/>
+ </td>
+ </tr>
+ <tr class="even">
+ <th>Tasks Ready</th>
+ <td>
+ <xsl:value-of select="taskmgr/thread-model/tasks-ready"/>
+ </td>
+ </tr>
+ </table>
+ <br/>
+ </xsl:if>
+ <xsl:if test="taskmgr/tasks/task">
+ <h2>Tasks</h2>
+ <table class="tasks">
+ <tr>
+ <th>ID</th>
+ <th>Name</th>
+ <th>References</th>
+ <th>State</th>
+ <th>Quantum</th>
+ <th>Events</th>
+ </tr>
+ <xsl:for-each select="taskmgr/tasks/task">
+ <xsl:sort select="name"/>
+ <xsl:variable name="css-class14">
+ <xsl:choose>
+ <xsl:when test="position() mod 2 = 0">even</xsl:when>
+ <xsl:otherwise>odd</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <tr class="{$css-class14}">
+ <td>
+ <xsl:value-of select="id"/>
+ </td>
+ <td>
+ <xsl:value-of select="name"/>
+ </td>
+ <td>
+ <xsl:value-of select="references"/>
+ </td>
+ <td>
+ <xsl:value-of select="state"/>
+ </td>
+ <td>
+ <xsl:value-of select="quantum"/>
+ </td>
+ <td>
+ <xsl:value-of select="events"/>
+ </td>
+ </tr>
+ </xsl:for-each>
+ </table>
+ <br/>
+ </xsl:if>
+ <xsl:if test="memory/summary">
+ <h2>Memory Usage Summary</h2>
+ <table class="counters">
+ <xsl:for-each select="memory/summary/*">
+ <xsl:variable name="css-class13">
+ <xsl:choose>
+ <xsl:when test="position() mod 2 = 0">even</xsl:when>
+ <xsl:otherwise>odd</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <tr class="{$css-class13}">
+ <th>
+ <xsl:value-of select="name()"/>
+ </th>
+ <td>
+ <xsl:value-of select="."/>
+ </td>
+ </tr>
+ </xsl:for-each>
+ </table>
+ <br/>
+ </xsl:if>
+ <xsl:if test="memory/contexts/context">
+ <h2>Memory Contexts</h2>
+ <table class="mctx">
+ <tr>
+ <th>ID</th>
+ <th>Name</th>
+ <th>References</th>
+ <th>TotalUse</th>
+ <th>InUse</th>
+ <th>MaxUse</th>
+ <th>BlockSize</th>
+ <th>Pools</th>
+ <th>HiWater</th>
+ <th>LoWater</th>
+ </tr>
+ <xsl:for-each select="memory/contexts/context">
+ <xsl:sort select="total" data-type="number" order="descending"/>
+ <xsl:variable name="css-class14">
+ <xsl:choose>
+ <xsl:when test="position() mod 2 = 0">even</xsl:when>
+ <xsl:otherwise>odd</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <tr class="{$css-class14}">
+ <td>
+ <xsl:value-of select="id"/>
+ </td>
+ <td>
+ <xsl:value-of select="name"/>
+ </td>
+ <td>
+ <xsl:value-of select="references"/>
+ </td>
+ <td>
+ <xsl:value-of select="total"/>
+ </td>
+ <td>
+ <xsl:value-of select="inuse"/>
+ </td>
+ <td>
+ <xsl:value-of select="maxinuse"/>
+ </td>
+ <td>
+ <xsl:value-of select="blocksize"/>
+ </td>
+ <td>
+ <xsl:value-of select="pools"/>
+ </td>
+ <td>
+ <xsl:value-of select="hiwater"/>
+ </td>
+ <td>
+ <xsl:value-of select="lowater"/>
+ </td>
+ </tr>
+ </xsl:for-each>
+ </table>
+ </xsl:if>
+ <hr/>
+ <p class="footer">Internet Systems Consortium Inc.<br/><a href="http://www.isc.org">http://www.isc.org</a></p>
</body>
</html>
</xsl:template>