summaryrefslogtreecommitdiffstats
path: root/templates
diff options
context:
space:
mode:
authorSimon Rettberg2015-11-19 12:13:36 +0100
committerSimon Rettberg2015-11-19 12:13:36 +0100
commit66aac2e67e35bd987bc3750b63f2734e47d0d57d (patch)
treeb9881051c3587a00fa56972c6b449731689cdd68 /templates
parent[request.inc.php] Add optional parameter to control variable type (diff)
downloadslx-admin-66aac2e67e35bd987bc3750b63f2734e47d0d57d.tar.gz
slx-admin-66aac2e67e35bd987bc3750b63f2734e47d0d57d.tar.xz
slx-admin-66aac2e67e35bd987bc3750b63f2734e47d0d57d.zip
Implement statistics logging
DB scheme update is still missing, might still change a little...
Diffstat (limited to 'templates')
-rw-r--r--templates/main-menu.html4
-rw-r--r--templates/statistics/clientlist.html26
-rw-r--r--templates/statistics/cpumodels.html49
-rw-r--r--templates/statistics/id44.html48
-rw-r--r--templates/statistics/kvmstate.html47
-rw-r--r--templates/statistics/machine-hdds.html55
-rw-r--r--templates/statistics/machine-main.html79
-rw-r--r--templates/statistics/memory.html47
8 files changed, 354 insertions, 1 deletions
diff --git a/templates/main-menu.html b/templates/main-menu.html
index 57576fd7..3e3a1d90 100644
--- a/templates/main-menu.html
+++ b/templates/main-menu.html
@@ -32,8 +32,10 @@
<a href="#" class="dropdown-toggle" data-toggle="dropdown">{{lang_status}}<b class="caret"></b></a>
<ul class="dropdown-menu">
<li><a href="?do=SystemStatus">{{lang_serverStatus}}</a></li>
- <li><a href="?do=SysLog">{{lang_clientLog}}</a></li>
<li><a href="?do=EventLog">{{lang_eventLog}}</a></li>
+ <li class="divider"></li>
+ <li><a href="?do=SysLog">{{lang_clientLog}}</a></li>
+ <li><a href="?do=Statistics">{{lang_clientStats}}</a></li>
</ul>
</li>
<li>
diff --git a/templates/statistics/clientlist.html b/templates/statistics/clientlist.html
new file mode 100644
index 00000000..e5f91493
--- /dev/null
+++ b/templates/statistics/clientlist.html
@@ -0,0 +1,26 @@
+<h1>{{lang_clientList}}</h1>
+<div class="pull-right">{{filter}} ~= {{argument}}</div>
+<div class="clearfix"></div>
+
+<table class="table table-condensed table-striped">
+ <tr>
+ <th>{{lang_machine}}</th>
+ <th>{{lang_address}}</th>
+ <th class="text-right">{{lang_lastBoot}}</th>
+ <th>{{lang_kvmSupport}}</th>
+ <th class="text-right">{{lang_gbRam}}</th>
+ <th class="text-right">{{lang_tmpGb}}</th>
+ <th>{{lang_cpuModel}}</th>
+ </tr>
+ {{#rows}}
+ <tr>
+ <td class="slx-nowrap"><a href="?do=Statistics&amp;uuid={{machineuuid}}"><b>{{hostname}}</b></a><div class="small">{{machineuuid}}</div></td>
+ <td><b><a href="?do=Statistics&amp;filter=subnet&amp;argument={{subnet}}">{{subnet}}</a>{{lastoctet}}</b><br>{{macaddr}}</td>
+ <td class="text-right">{{lastboot}}</td>
+ <td class="{{kvmclass}}">{{kvmstate}}</td>
+ <td class="text-right {{ramclass}}">{{gbram}}&thinsp;GiB</td>
+ <td class="text-right {{hddclass}}">{{gbtmp}}&thinsp;GiB</td>
+ <td>{{lang_realCores}}: {{realcores}}<div class="small">{{cpumodel}}</div></td>
+ </tr>
+ {{/rows}}
+</table> \ No newline at end of file
diff --git a/templates/statistics/cpumodels.html b/templates/statistics/cpumodels.html
new file mode 100644
index 00000000..c3d43aa4
--- /dev/null
+++ b/templates/statistics/cpumodels.html
@@ -0,0 +1,49 @@
+<div class="col-md-12">
+ <div class="panel panel-default">
+ <div class="panel-heading">
+ {{lang_cpuStats}}
+ </div>
+ <div class="panel-body">
+ <div class="row">
+ <div class="col-md-8">
+ <table class="table table-condensed table-striped">
+ <tr>
+ <th>{{lang_cpuName}}</th>
+ <th class="text-right">{{lang_cpuCores}}</th>
+ <th class="text-right">{{lang_cpuCount}}</th>
+ </tr>
+ {{#rows}}
+ <tr id="{{id}}">
+ <td class="text-left slx-nowrap"><a href="?do=Statistics&amp;filter=cpumodel&amp;argument={{urlcpumodel}}">{{cpumodel}}</a></td>
+ <td class="text-right"><a href="?do=Statistics&amp;filter=realcores&amp;argument={{realcores}}">{{realcores}}</a></td>
+ <td class="text-right">{{count}}</td>
+ </tr>
+ {{/rows}}
+ </table>
+ </div>
+ <div class="col-md-4">
+ <canvas id="cpumodelchart" style="width:100%;height:380px"></canvas>
+ <script type="text/javascript">
+ document.addEventListener("DOMContentLoaded", function() {
+ var data = {{{json}}};
+ var sel = false;
+ new Chart(document.getElementById('cpumodelchart').getContext('2d')).Pie(data, {
+ animation: false,
+ tooltipTemplate: "<%if (label){%><%=label%><%}%>",
+ customTooltips: function(tooltip) {
+ if (!tooltip) {
+ if (sel !== false) sel.removeClass('info');
+ sel = false;
+ return;
+ }
+ sel = $('#' + tooltip.text);
+ sel.addClass('info');
+ }
+ });
+ }, false);
+ </script>
+ </div>
+ </div>
+ </div>
+ </div>
+</div> \ No newline at end of file
diff --git a/templates/statistics/id44.html b/templates/statistics/id44.html
new file mode 100644
index 00000000..cd4e32d7
--- /dev/null
+++ b/templates/statistics/id44.html
@@ -0,0 +1,48 @@
+<div class="col-md-6">
+ <div class="panel panel-default">
+ <div class="panel-heading">
+ {{lang_tempPartStats}}
+ </div>
+ <div class="panel-body">
+ <div class="row">
+ <div class="col-md-6">
+ <table class="table table-condensed table-striped">
+ <tr>
+ <th>{{lang_partitionSize}}</th>
+ <th class="text-right">{{lang_machineCount}}</th>
+ </tr>
+ {{#rows}}
+ <tr id="tmpid{{gb}}">
+ <td class="text-left slx-nowrap"><a href="?do=Statistics&amp;filter=hddgb&amp;argument={{gb}}">{{gb}}&thinsp;GiB</td>
+ <td class="text-right">{{count}}</td>
+ </tr>
+ {{/rows}}
+ </table>
+ </div>
+ <div class="col-md-6">
+ <canvas id="temppartchart" style="width:100%;height:250px"></canvas>
+ <script type="text/javascript">
+ document.addEventListener("DOMContentLoaded", function() {
+ var data = {{{json}}};
+ var sel = false;
+ new Chart(document.getElementById('temppartchart').getContext('2d')).Pie(data, {
+ animation: false,
+ tooltipTemplate: "<%if (label){%><%=label%><%}%>",
+ customTooltips: function(tooltip) {
+ if (!tooltip) {
+ if (sel !== false) sel.removeClass('info');
+ sel = false;
+ return;
+ }
+ sel = $('#tmpid' + String(tooltip.text));
+ console.log('#tmpid' + String(tooltip.text));
+ sel.addClass('info');
+ }
+ });
+ }, false);
+ </script>
+ </div>
+ </div>
+ </div>
+ </div>
+</div> \ No newline at end of file
diff --git a/templates/statistics/kvmstate.html b/templates/statistics/kvmstate.html
new file mode 100644
index 00000000..ea95df4e
--- /dev/null
+++ b/templates/statistics/kvmstate.html
@@ -0,0 +1,47 @@
+<div class="col-md-6">
+ <div class="panel panel-default">
+ <div class="panel-heading">
+ {{lang_kvmStats}}
+ </div>
+ <div class="panel-body">
+ <div class="row">
+ <div class="col-md-6">
+ <table class="table table-condensed table-striped">
+ <tr>
+ <th>{{lang_kvmState}}</th>
+ <th class="text-right">{{lang_machineCount}}</th>
+ </tr>
+ {{#rows}}
+ <tr id="kvm{{kvmstate}}">
+ <td class="text-left slx-nowrap"><a href="?do=Statistics&amp;filter=kvmstate&amp;argument={{kvmstate}}">{{kvmstate}}</a></td>
+ <td class="text-right">{{count}}</td>
+ </tr>
+ {{/rows}}
+ </table>
+ </div>
+ <div class="col-md-6">
+ <canvas id="kvmchart" style="width:100%;height:250px"></canvas>
+ <script type="text/javascript">
+ document.addEventListener("DOMContentLoaded", function() {
+ var data = {{{json}}};
+ var sel = false;
+ new Chart(document.getElementById('kvmchart').getContext('2d')).Pie(data, {
+ animation: false,
+ tooltipTemplate: "<%if (label){%><%=label%><%}%>",
+ customTooltips: function(tooltip) {
+ if (!tooltip) {
+ if (sel !== false) sel.removeClass('info');
+ sel = false;
+ return;
+ }
+ sel = $('#kvm' + tooltip.text);
+ sel.addClass('info');
+ }
+ });
+ }, false);
+ </script>
+ </div>
+ </div>
+ </div>
+ </div>
+</div> \ No newline at end of file
diff --git a/templates/statistics/machine-hdds.html b/templates/statistics/machine-hdds.html
new file mode 100644
index 00000000..98cf65c5
--- /dev/null
+++ b/templates/statistics/machine-hdds.html
@@ -0,0 +1,55 @@
+<h3>{{lang_hdds}}</h3>
+<div class="row">
+ {{#hdds}}
+ <div class="col-md-6">
+ <div class="panel panel-default">
+ <div class="panel-heading">
+ {{dev}}
+ </div>
+ <div class="panel-body">
+ <div class="row">
+ <div class="col-sm-6">
+ <table class="table table-condensed table-striped table-responsive">
+ <tr>
+ <th>{{lang_partName}}</th>
+ <th class="text-right">{{lang_partSize}}</th>
+ <th>{{lang_partType}}</th>
+ </tr>
+ {{#partitions}}
+ <tr id="{{id}}">
+ <td>{{name}}</td>
+ <td class="text-right">{{size}}&thinsp;GiB</td>
+ <td>{{type}}</td>
+ </tr>
+ {{/partitions}}
+ </table>
+ <div class="slx-bold">{{lang_total}}: {{size}}&thinsp;GiB</div>
+ </div>
+ <div class="col-sm-6">
+ <canvas id="{{devid}}-chart" style="width:100%;height:250px"></canvas>
+ <script type="text/javascript">
+ document.addEventListener("DOMContentLoaded", function() {
+ var data = {{{json}}};
+ var sel = false;
+ new Chart(document.getElementById('{{devid}}-chart').getContext('2d')).Pie(data, {
+ animation: false,
+ tooltipTemplate: "<%if (label){%><%=label%><%}%>",
+ customTooltips: function(tooltip) {
+ if (!tooltip) {
+ if (sel !== false) sel.removeClass('info');
+ sel = false;
+ return;
+ }
+ sel = $('#' + tooltip.text);
+ sel.addClass('info');
+ }
+ });
+ }, false);
+ </script>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ {{/hdds}}
+</div> \ No newline at end of file
diff --git a/templates/statistics/machine-main.html b/templates/statistics/machine-main.html
new file mode 100644
index 00000000..ac8b8001
--- /dev/null
+++ b/templates/statistics/machine-main.html
@@ -0,0 +1,79 @@
+<h1>{{hostname}} {{#hostname}}–{{/hostname}} {{clientip}}</h1>
+
+<div class="row">
+ <div class="col-md-6">
+ <div class="panel panel-default">
+ <div class="panel-heading">
+ {{lang_machineSummary}}
+ </div>
+ <div class="panel-body">
+ <table class="table table-condensed">
+ <tr>
+ <td>{{lang_uuid}}</td>
+ <td>{{machineuuid}}</td>
+ </tr>
+ <tr>
+ <td>{{lang_macAddr}}</td>
+ <td>{{macaddr}}</td>
+ </tr>
+ <tr>
+ <td>{{lang_ip}}</td>
+ <td>{{clientip}}</td>
+ </tr>
+ {{#hostname}}
+ <tr>
+ <td>{{lang_hostname}}</td>
+ <td>{{hostname}}</td>
+ </tr>
+ {{/hostname}}
+ <tr>
+ <td>{{lang_firstSeen}}</td>
+ <td>{{firstseen}}</td>
+ </tr>
+ <tr>
+ <td>{{lang_lastBoot}}</td>
+ <td>{{lastboot}}</td>
+ </tr>
+ <tr>
+ <td>{{lang_lastSeen}}</td>
+ <td>{{lastseen}}</td>
+ </tr>
+ </table>
+ </div>
+ </div>
+ </div>
+ <div class="col-md-6">
+ <div class="panel panel-default">
+ <div class="panel-heading">
+ {{lang_hardwareSummary}}
+ </div>
+ <div class="panel-body">
+ <table class="table table-condensed">
+ <tr>
+ <td>{{lang_cpuModel}}</td>
+ <td>
+ {{cpumodel}}
+ {{#Sockets}}
+ <div class="small">
+ {{lang_sockets}}: {{Sockets}}, {{lang_cores}}: {{Realcores}}, {{lang_virtualCores}}: {{Virtualcores}}
+ </div>
+ {{/Sockets}}
+ </td>
+ </tr>
+ <tr class="{{ramclass}}">
+ <td>{{lang_ram}}</td>
+ <td>{{gbram}}&thinsp;GiB</td>
+ </tr>
+ <tr class="{{hddclass}}">
+ <td>{{lang_tempPart}}</td>
+ <td>{{gbtmp}}&thinsp;GiB</td>
+ </tr>
+ <tr class="{{kvmclass}}">
+ <td>{{lang_64bitSupport}}</td>
+ <td>{{kvmstate}}</td>
+ </tr>
+ </table>
+ </div>
+ </div>
+ </div>
+</div> \ No newline at end of file
diff --git a/templates/statistics/memory.html b/templates/statistics/memory.html
new file mode 100644
index 00000000..b9ee77fb
--- /dev/null
+++ b/templates/statistics/memory.html
@@ -0,0 +1,47 @@
+<div class="col-md-6">
+ <div class="panel panel-default">
+ <div class="panel-heading">
+ {{lang_memoryStats}}
+ </div>
+ <div class="panel-body">
+ <div class="row">
+ <div class="col-md-6">
+ <table class="table table-condensed table-striped">
+ <tr>
+ <th>{{lang_ramSize}}</th>
+ <th class="text-right">{{lang_machineCount}}</th>
+ </tr>
+ {{#rows}}
+ <tr id="ramid{{gb}}">
+ <td class="text-left slx-nowrap"><a href="?do=Statistics&amp;filter=gbram&amp;argument={{gb}}">{{gb}}&thinsp;GiB</a></td>
+ <td class="text-right">{{count}}</td>
+ </tr>
+ {{/rows}}
+ </table>
+ </div>
+ <div class="col-md-6">
+ <canvas id="ramsizechart" style="width:100%;height:250px"></canvas>
+ <script type="text/javascript">
+ document.addEventListener("DOMContentLoaded", function() {
+ var data = {{{json}}};
+ var sel = false;
+ new Chart(document.getElementById('ramsizechart').getContext('2d')).Pie(data, {
+ animation: false,
+ tooltipTemplate: "<%if (label){%><%=label%><%}%>",
+ customTooltips: function(tooltip) {
+ if (!tooltip) {
+ if (sel !== false) sel.removeClass('info');
+ sel = false;
+ return;
+ }
+ sel = $('#ramid' + tooltip.text);
+ sel.addClass('info');
+ }
+ });
+ }, false);
+ </script>
+ </div>
+ </div>
+ </div>
+ </div>
+</div> \ No newline at end of file