ooooo it is pretty
parent
ba833fa315
commit
d38352f050
65
report.tmpl
65
report.tmpl
|
|
@ -40,8 +40,7 @@
|
||||||
const messages = filterMessages(allMessages)
|
const messages = filterMessages(allMessages)
|
||||||
|
|
||||||
dumpEvents(messages);
|
dumpEvents(messages);
|
||||||
drawEventVolumeByName(messages)
|
drawEventVolume(messages)
|
||||||
drawEventVolumeByWeekday(messages)
|
|
||||||
drawEventVolumeByHour(messages)
|
drawEventVolumeByHour(messages)
|
||||||
drawEventVolumeByAsset(messages)
|
drawEventVolumeByAsset(messages)
|
||||||
}
|
}
|
||||||
|
|
@ -113,32 +112,26 @@
|
||||||
}).filter((m) => { return m != null });
|
}).filter((m) => { return m != null });
|
||||||
}
|
}
|
||||||
|
|
||||||
function drawEventVolumeByName(messages) {}
|
function drawEventVolume(messages) {
|
||||||
|
const points = [];
|
||||||
function drawEventVolumeByWeekday(messages) {
|
messages.forEach((m) => {
|
||||||
var prettyWeekday = (d) => {
|
points.push({x: m.TS, name: m.EventName});
|
||||||
switch (d%7) {
|
|
||||||
case 0: return "Sun";
|
|
||||||
case 1: return "Mon";
|
|
||||||
case 2: return "Tue";
|
|
||||||
case 3: return "Wed";
|
|
||||||
case 4: return "Thu";
|
|
||||||
case 5: return "Fri";
|
|
||||||
case 6: return "Sat";
|
|
||||||
}
|
|
||||||
};
|
|
||||||
var byWeekday = [];
|
|
||||||
for(var i = 0; i < 7; i++)
|
|
||||||
byWeekday.push(0);
|
|
||||||
for(var m of messages) {
|
|
||||||
var d = new Date(1000 * m.TS);
|
|
||||||
byWeekday[d.getDay()] += 1;
|
|
||||||
}
|
|
||||||
byWeekday = byWeekday.map((cnt, idx) => {
|
|
||||||
return {x: prettyWeekday(idx), y: cnt};
|
|
||||||
});
|
});
|
||||||
|
|
||||||
draw("eventVolumeByWeekday", byWeekday);
|
var xs = points.map((point) => point.x);
|
||||||
|
xs.sort();
|
||||||
|
const k = (x) => new Date(1000 * x).toLocaleDateString('en-US', {month: 'numeric', day: 'numeric', weekday: 'short'});
|
||||||
|
xs = xs.map(k);
|
||||||
|
xs = [...new Set(xs)];
|
||||||
|
|
||||||
|
const names = [...new Set(points.map((p) => p.name))];
|
||||||
|
const nameAndData = names.map((name) => {
|
||||||
|
return {
|
||||||
|
name: name,
|
||||||
|
data: xs.map((x) => points.filter((p) => { return p.name == name && k(p.x) == x }).length),
|
||||||
|
}
|
||||||
|
});
|
||||||
|
draw("eventVolume", xs, nameAndData);
|
||||||
}
|
}
|
||||||
|
|
||||||
function drawEventVolumeByHour(messages) {
|
function drawEventVolumeByHour(messages) {
|
||||||
|
|
@ -158,15 +151,15 @@
|
||||||
|
|
||||||
function drawEventVolumeByAsset(messages) {}
|
function drawEventVolumeByAsset(messages) {}
|
||||||
|
|
||||||
function draw(id, points) {
|
function draw(documentId, xs, nameAndData) {
|
||||||
document.getElementById(id).innerHTML = "";
|
document.getElementById(documentId).innerHTML = "";
|
||||||
Highcharts.chart(id, {
|
Highcharts.chart(documentId, {
|
||||||
chart: { type: 'column' },
|
chart: { type: 'column' },
|
||||||
title: { text: '' },
|
title: { text: '' },
|
||||||
xAxis: { categories: points.map((point) => `${point.x}`) },
|
xAxis: { categories: xs },
|
||||||
yAxis: { allowDecimals: false, title: { text: '' } },
|
yAxis: { allowDecimals: false, title: { text: '' } },
|
||||||
legend: { enabled: false },
|
//legend: { enabled: false },
|
||||||
series: [{data: points.map((point) => point.y) }],
|
series: nameAndData,
|
||||||
plotOptions: { column: { stacking: 'normal' } },
|
plotOptions: { column: { stacking: 'normal' } },
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
@ -197,14 +190,10 @@
|
||||||
<rows>
|
<rows>
|
||||||
<rows>
|
<rows>
|
||||||
<rows>
|
<rows>
|
||||||
<h2>Event Volume by Name</h2>
|
<h2>Event Volume</h2>
|
||||||
<div>DRAW ME</div>
|
<div id="eventVolume"></div>
|
||||||
</rows>
|
</rows>
|
||||||
<columns>
|
<columns>
|
||||||
<rows>
|
|
||||||
<h3>by Weekday</h3>
|
|
||||||
<div id="eventVolumeByWeekday"></div>
|
|
||||||
</rows>
|
|
||||||
<rows>
|
<rows>
|
||||||
<h3>by Hour</h3>
|
<h3>by Hour</h3>
|
||||||
<div id="eventVolumeByHour"></div>
|
<div id="eventVolumeByHour"></div>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue