Timeline tweaks
This commit is contained in:
@@ -203,7 +203,7 @@ func aggregateUserMovement(db *sql.DB) (int64, error) {
|
|||||||
var sumRows []sumRow
|
var sumRows []sumRow
|
||||||
for t := minTs; t.Before(time.Now().Truncate(24 * time.Hour)); t = t.AddDate(0, 0, 1) {
|
for t := minTs; t.Before(time.Now().Truncate(24 * time.Hour)); t = t.AddDate(0, 0, 1) {
|
||||||
var added, removed, bounced int
|
var added, removed, bounced int
|
||||||
old := t.Before(time.Now().AddDate(0, 0, -14))
|
old := t.Before(time.Now().AddDate(0, 0, -30))
|
||||||
for id, first := range firstSeen {
|
for id, first := range firstSeen {
|
||||||
last := lastSeen[id]
|
last := lastSeen[id]
|
||||||
if first.Equal(t) && last.Equal(t) && old {
|
if first.Equal(t) && last.Equal(t) && old {
|
||||||
|
|||||||
+2
-3
@@ -212,7 +212,6 @@ func setupDB(db *sql.DB) error {
|
|||||||
var t string
|
var t string
|
||||||
row := db.QueryRow(`SELECT 'UniqueIDIndex'::regclass`)
|
row := db.QueryRow(`SELECT 'UniqueIDIndex'::regclass`)
|
||||||
if err := row.Scan(&t); err != nil {
|
if err := row.Scan(&t); err != nil {
|
||||||
log.Println(err)
|
|
||||||
if _, err = db.Exec(`CREATE UNIQUE INDEX UniqueIDIndex ON Reports (Date, UniqueID)`); err != nil {
|
if _, err = db.Exec(`CREATE UNIQUE INDEX UniqueIDIndex ON Reports (Date, UniqueID)`); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@@ -875,7 +874,7 @@ func (s *summary) MarshalJSON() ([]byte, error) {
|
|||||||
func getSummary(db *sql.DB) (summary, error) {
|
func getSummary(db *sql.DB) (summary, error) {
|
||||||
s := newSummary()
|
s := newSummary()
|
||||||
|
|
||||||
rows, err := db.Query(`SELECT Day, Version, Count FROM VersionSummary WHERE Day > now() - '1 year'::INTERVAL;`)
|
rows, err := db.Query(`SELECT Day, Version, Count FROM VersionSummary WHERE Day > now() - '2 year'::INTERVAL;`)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return summary{}, err
|
return summary{}, err
|
||||||
}
|
}
|
||||||
@@ -907,7 +906,7 @@ func getSummary(db *sql.DB) (summary, error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func getMovement(db *sql.DB) ([][]interface{}, error) {
|
func getMovement(db *sql.DB) ([][]interface{}, error) {
|
||||||
rows, err := db.Query(`SELECT Day, Added, Removed, Bounced FROM UserMovement WHERE Day > now() - '1 year'::INTERVAL ORDER BY Day`)
|
rows, err := db.Query(`SELECT Day, Added, Removed, Bounced FROM UserMovement WHERE Day > now() - '2 year'::INTERVAL ORDER BY Day`)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -41,7 +41,6 @@ found in the LICENSE file.
|
|||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
google.setOnLoadCallback(drawVersionChart);
|
google.setOnLoadCallback(drawVersionChart);
|
||||||
google.setOnLoadCallback(drawMovementChart);
|
google.setOnLoadCallback(drawMovementChart);
|
||||||
google.setOnLoadCallback(drawPerformanceChart);
|
|
||||||
|
|
||||||
function drawVersionChart() {
|
function drawVersionChart() {
|
||||||
var jsonData = $.ajax({url: "summary.json", dataType:"json", async: false}).responseText;
|
var jsonData = $.ajax({url: "summary.json", dataType:"json", async: false}).responseText;
|
||||||
@@ -98,41 +97,6 @@ found in the LICENSE file.
|
|||||||
var chart = new google.visualization.AreaChart(document.getElementById('movementChart'));
|
var chart = new google.visualization.AreaChart(document.getElementById('movementChart'));
|
||||||
chart.draw(data, options);
|
chart.draw(data, options);
|
||||||
}
|
}
|
||||||
|
|
||||||
function drawPerformanceChart() {
|
|
||||||
var jsonData = $.ajax({url: "performance.json", dataType:"json", async: false}).responseText;
|
|
||||||
var rows = JSON.parse(jsonData);
|
|
||||||
|
|
||||||
var data = new google.visualization.DataTable();
|
|
||||||
data.addColumn('date', 'Day');
|
|
||||||
data.addColumn('number', 'Hash Performance (MiB/s)');
|
|
||||||
data.addColumn('number', 'Memory Usage (MiB)');
|
|
||||||
|
|
||||||
for (var i = 1; i < rows.length; i++){
|
|
||||||
rows[i][0] = new Date(rows[i][0]);
|
|
||||||
if (rows[i][1] > 500) {
|
|
||||||
rows[i][1] = null;
|
|
||||||
}
|
|
||||||
data.addRow(rows[i]);
|
|
||||||
};
|
|
||||||
|
|
||||||
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: '940', height: '300'},
|
|
||||||
series: {
|
|
||||||
0: {targetAxisIndex: 0},
|
|
||||||
1: {targetAxisIndex: 1},
|
|
||||||
},
|
|
||||||
vAxes: {
|
|
||||||
0: {title: 'MiB/s'},
|
|
||||||
1: {title: 'MiB'},
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
var chart = new google.visualization.LineChart(document.getElementById('performanceChart'));
|
|
||||||
chart.draw(data, options);
|
|
||||||
}
|
|
||||||
</script>
|
</script>
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
@@ -157,9 +121,6 @@ found in the LICENSE file.
|
|||||||
Reappearance of users cause the "left" data to shrink retroactively.
|
Reappearance of users cause the "left" data to shrink retroactively.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<div class="img-thumbnail" id="performanceChart" style="width: 1130px; height: 400px; padding: 10px;"></div>
|
|
||||||
|
|
||||||
|
|
||||||
<h4 id="metrics">Usage Metrics</h4>
|
<h4 id="metrics">Usage Metrics</h4>
|
||||||
<p>
|
<p>
|
||||||
This is the aggregated usage report data for the last 24 hours. Data based on <b>{{.nodes}}</b> devices that have reported in.
|
This is the aggregated usage report data for the last 24 hours. Data based on <b>{{.nodes}}</b> devices that have reported in.
|
||||||
|
|||||||
Reference in New Issue
Block a user