mirror of
https://github.com/wabbajack-tools/wabbajack.git
synced 2024-08-30 18:42:17 +00:00
Restore metrics page behavior
This commit is contained in:
parent
46ee87553c
commit
913b67daf3
@ -84,6 +84,9 @@ public class MetricsController : ControllerBase
|
|||||||
}
|
}
|
||||||
|
|
||||||
private static byte[] EOL = {(byte)'\n'};
|
private static byte[] EOL = {(byte)'\n'};
|
||||||
|
private static byte[] LBRACKET = {(byte)'['};
|
||||||
|
private static byte[] RBRACKET = {(byte)']'};
|
||||||
|
private static byte[] COMMA = {(byte) ','};
|
||||||
|
|
||||||
[HttpGet]
|
[HttpGet]
|
||||||
[Route("dump")]
|
[Route("dump")]
|
||||||
@ -143,6 +146,8 @@ public class MetricsController : ControllerBase
|
|||||||
|
|
||||||
Response.Headers.ContentType = "application/json";
|
Response.Headers.ContentType = "application/json";
|
||||||
var row = new Dictionary<string, object>();
|
var row = new Dictionary<string, object>();
|
||||||
|
|
||||||
|
await Response.Body.WriteAsync(LBRACKET);
|
||||||
for (var d = fromDate; d <= toDate; d = d.AddDays(1))
|
for (var d = fromDate; d <= toDate; d = d.AddDays(1))
|
||||||
{
|
{
|
||||||
row["_Timestamp"] = d;
|
row["_Timestamp"] = d;
|
||||||
@ -155,8 +160,12 @@ public class MetricsController : ControllerBase
|
|||||||
}
|
}
|
||||||
await JsonSerializer.SerializeAsync(Response.Body, row);
|
await JsonSerializer.SerializeAsync(Response.Body, row);
|
||||||
await Response.Body.WriteAsync(EOL);
|
await Response.Body.WriteAsync(EOL);
|
||||||
|
if (d != toDate)
|
||||||
|
await Response.Body.WriteAsync(COMMA);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
await Response.Body.WriteAsync(RBRACKET);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -52,6 +52,7 @@ public class Metrics
|
|||||||
var keys = new Dictionary<string, int>();
|
var keys = new Dictionary<string, int>();
|
||||||
int GetMetricKey(string key)
|
int GetMetricKey(string key)
|
||||||
{
|
{
|
||||||
|
if (string.IsNullOrWhiteSpace(key)) return -1;
|
||||||
if (keys.TryGetValue(key, out var v))
|
if (keys.TryGetValue(key, out var v))
|
||||||
return v;
|
return v;
|
||||||
keys.Add(key, keys.Count);
|
keys.Add(key, keys.Count);
|
||||||
|
@ -40,20 +40,19 @@
|
|||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
|
||||||
var getReport = function (subject, callback) {
|
var getReport = function (subject, from, callback) {
|
||||||
$.getJSON("/metrics/report/" + subject, callback)
|
$.getJSON("/metrics/report/?action=" + subject + "&from=" + from + "&to=now", callback)
|
||||||
}
|
}
|
||||||
|
|
||||||
var makeChart = function (ele, group) {
|
var makeChart = function (ele, group) {
|
||||||
|
|
||||||
var result_fn = function (data) {
|
var result_fn = function (data) {
|
||||||
var data = _.filter(data, series => _.some(series.values, v => v > 1));
|
var labels = _.map(data, f => f._Timestamp);
|
||||||
var labels = _.uniq(_.flatten(_.map(data, series => series.labels)));
|
var datasets = _.map(_.filter(Object.keys(data[0]), key => key !== "_Timestamp"), key => {
|
||||||
var datasets = _.map(data, series => {
|
|
||||||
return {
|
return {
|
||||||
label: series.seriesName,
|
label: key,
|
||||||
fill: false,
|
fill: false,
|
||||||
data: _.last(series.values, 90)
|
data: _.map(data, row => row[key])
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
var ctx = document.getElementById(ele).getContext('2d');
|
var ctx = document.getElementById(ele).getContext('2d');
|
||||||
@ -71,38 +70,40 @@
|
|||||||
options: {scales: {xAxes: [{stacked: true}], yAxes: [{stacked: true}]}}
|
options: {scales: {xAxes: [{stacked: true}], yAxes: [{stacked: true}]}}
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
getReport(group, result_fn);
|
getReport(group, "30 days ago", result_fn);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
var makePieChart = function (ele, group) {
|
var makePieChart = function (ele, group) {
|
||||||
|
|
||||||
var result_fn = function (data) {
|
var result_fn = function (data) {
|
||||||
var data = _.filter(data, series => _.some(series.values, v => v > 2));
|
const counts = {};
|
||||||
var labels = _.map(data, series => series.seriesName);
|
for (var row of data) {
|
||||||
var datasets = {
|
for (var key of Object.keys(row)) {
|
||||||
data: _.map(data, series => {
|
if (key === "_Timestamp") continue;
|
||||||
return _.reduce(series.values, (x, y) => x + y, 0)
|
counts[key] = (counts[key] || 0) + row[key]
|
||||||
})
|
}
|
||||||
};
|
}
|
||||||
console.log(datasets);
|
|
||||||
console.log(labels);
|
|
||||||
var ctx = document.getElementById(ele).getContext('2d');
|
var ctx = document.getElementById(ele).getContext('2d');
|
||||||
var chart = new Chart(ctx, {
|
var chart = new Chart(ctx, {
|
||||||
// The type of chart we want to create
|
// The type of chart we want to create
|
||||||
type: 'pie',
|
type: 'pie',
|
||||||
|
|
||||||
// The data for our dataset
|
// The data for our dataset
|
||||||
data: {
|
data: {
|
||||||
labels: labels,
|
labels: Object.keys(counts),
|
||||||
datasets: [datasets]
|
datasets: [{
|
||||||
|
label: "Data",
|
||||||
|
data: Object.values(counts)
|
||||||
|
}]
|
||||||
},
|
},
|
||||||
|
|
||||||
// Configuration options go here
|
// Configuration options go here
|
||||||
options: {}
|
options: {}
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
getReport(group, result_fn)
|
getReport(group, "10 years ago", result_fn)
|
||||||
};
|
};
|
||||||
|
|
||||||
makeChart("begin_download_chart", "downloading");
|
makeChart("begin_download_chart", "downloading");
|
||||||
|
Loading…
Reference in New Issue
Block a user