|
@@ -0,0 +1,112 @@
|
|
|
|
|
+<!DOCTYPE html>
|
|
|
|
|
+<!--
|
|
|
|
|
+Copyright (C) 2014 Jakob Borg and other contributors. All rights reserved.
|
|
|
|
|
+Use of this source code is governed by an MIT-style license that can be
|
|
|
|
|
+found in the LICENSE file.
|
|
|
|
|
+-->
|
|
|
|
|
+<html lang="en">
|
|
|
|
|
+<head>
|
|
|
|
|
+ <meta charset="utf-8">
|
|
|
|
|
+ <meta http-equiv="X-UA-Compatible" content="IE=edge">
|
|
|
|
|
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
|
|
|
+ <meta name="description" content="">
|
|
|
|
|
+ <meta name="author" content="">
|
|
|
|
|
+ <link rel="shortcut icon" href="assets/img/favicon.png">
|
|
|
|
|
+
|
|
|
|
|
+ <title>Historical Performance Data</title>
|
|
|
|
|
+ <link href="bootstrap/css/bootstrap.min.css" rel="stylesheet">
|
|
|
|
|
+ <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
|
|
|
|
|
+ <script type="text/javascript" src="bootstrap/js/bootstrap.min.js"></script>
|
|
|
|
|
+ <style type="text/css">
|
|
|
|
|
+ body {
|
|
|
|
|
+ margin: 40px;
|
|
|
|
|
+ font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
|
|
|
|
|
+ }
|
|
|
|
|
+ tr.main td {
|
|
|
|
|
+ font-weight: bold;
|
|
|
|
|
+ }
|
|
|
|
|
+ tr.child td.first {
|
|
|
|
|
+ padding-left: 2em;
|
|
|
|
|
+ }
|
|
|
|
|
+ </style>
|
|
|
|
|
+ <script type="text/javascript"
|
|
|
|
|
+ src="https://www.google.com/jsapi?autoload={
|
|
|
|
|
+ 'modules':[{
|
|
|
|
|
+ 'name':'visualization',
|
|
|
|
|
+ 'version':'1',
|
|
|
|
|
+ 'packages':['corechart']
|
|
|
|
|
+ }]
|
|
|
|
|
+ }"></script>
|
|
|
|
|
+
|
|
|
|
|
+ <script type="text/javascript">
|
|
|
|
|
+ google.setOnLoadCallback(drawPerformanceCharts);
|
|
|
|
|
+
|
|
|
|
|
+ function drawPerformanceCharts() {
|
|
|
|
|
+ var jsonData = $.ajax({url: "/performance.json", dataType:"json", async: false}).responseText;
|
|
|
|
|
+ var rows = JSON.parse(jsonData);
|
|
|
|
|
+ for (var i = 1; i < rows.length; i++){
|
|
|
|
|
+ rows[i][0] = new Date(rows[i][0]);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ drawChart(rows, 1, 'Total Number of Files', 'totFilesChart', 1e6, 1);
|
|
|
|
|
+ drawChart(rows, 2, 'Total Folder Size (GiB)', 'totMiBChart', 1e6, 1024);
|
|
|
|
|
+ drawChart(rows, 3, 'Hash Performance (MiB/s)', 'hashPerfChart', 1000, 1);
|
|
|
|
|
+ drawChart(rows, 4, 'System RAM Size (GiB)', 'memSizeChart', 1e6, 1024);
|
|
|
|
|
+ drawChart(rows, 5, 'Memory Usage (MiB)', 'memUsageChart', 250, 1);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // {"Day", "TotFiles", "TotMiB", "SHA256Perf", "MemorySize", "MemoryUsageMiB"},
|
|
|
|
|
+
|
|
|
|
|
+ function drawChart(rows, index, title, id, cutoff, divisor) {
|
|
|
|
|
+ var data = new google.visualization.DataTable();
|
|
|
|
|
+ data.addColumn('date', 'Day');
|
|
|
|
|
+ data.addColumn('number', title);
|
|
|
|
|
+
|
|
|
|
|
+ var row;
|
|
|
|
|
+ for (var i = 1; i < rows.length; i++){
|
|
|
|
|
+ row = [rows[i][0], rows[i][index] / divisor];
|
|
|
|
|
+ if (row[1] > cutoff) {
|
|
|
|
|
+ row[1] = null;
|
|
|
|
|
+ }
|
|
|
|
|
+ data.addRow(row);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ var options = {
|
|
|
|
|
+ legend: { position: 'bottom', alignment: 'center' },
|
|
|
|
|
+ colors: ['rgb(102,194,165)','rgb(252,141,98)','rgb(141,160,203)','rgb(231,138,195)','rgb(166,216,84)','rgb(255,217,47)'],
|
|
|
|
|
+ chartArea: {left: 80, top: 20, width: '1020', height: '300'},
|
|
|
|
|
+ vAxes: {0: {minValue: 0}},
|
|
|
|
|
+ };
|
|
|
|
|
+
|
|
|
|
|
+ var chart = new google.visualization.LineChart(document.getElementById(id));
|
|
|
|
|
+ chart.draw(data, options);
|
|
|
|
|
+ }
|
|
|
|
|
+ </script>
|
|
|
|
|
+</head>
|
|
|
|
|
+
|
|
|
|
|
+<body>
|
|
|
|
|
+ <div class="container">
|
|
|
|
|
+ <div class="row">
|
|
|
|
|
+ <div class="col-md-12">
|
|
|
|
|
+ <h1>Historical Performance Data</h1>
|
|
|
|
|
+ <p>These charts are all the average of the corresponding metric, for the entire population of a given day.</p>
|
|
|
|
|
+
|
|
|
|
|
+ <h4 id="active-users">Hash Performance (MiB/s)</h4>
|
|
|
|
|
+ <div class="img-thumbnail" id="hashPerfChart" style="width: 1130px; height: 400px; padding: 10px;"></div>
|
|
|
|
|
+
|
|
|
|
|
+ <h4 id="active-users">Memory Usage (MiB)</h4>
|
|
|
|
|
+ <div class="img-thumbnail" id="memUsageChart" style="width: 1130px; height: 400px; padding: 10px;"></div>
|
|
|
|
|
+
|
|
|
|
|
+ <h4 id="active-users">Total Number of Files</h4>
|
|
|
|
|
+ <div class="img-thumbnail" id="totFilesChart" style="width: 1130px; height: 400px; padding: 10px;"></div>
|
|
|
|
|
+
|
|
|
|
|
+ <h4 id="active-users">Total Folder Size (GiB)</h4>
|
|
|
|
|
+ <div class="img-thumbnail" id="totMiBChart" style="width: 1130px; height: 400px; padding: 10px;"></div>
|
|
|
|
|
+
|
|
|
|
|
+ <h4 id="active-users">System RAM Size (GiB)</h4>
|
|
|
|
|
+ <div class="img-thumbnail" id="memSizeChart" style="width: 1130px; height: 400px; padding: 10px;"></div>
|
|
|
|
|
+
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+</body>
|
|
|
|
|
+</html>
|