From cabc5c00b782985f0119f6ac976bbf2110d74f6b Mon Sep 17 00:00:00 2001 From: Bel LaPointe <153096461+breel-render@users.noreply.github.com> Date: Mon, 15 Apr 2024 06:50:41 -0600 Subject: [PATCH] dynamic alert dump via filters --- report.tmpl | 86 +++++++++++++++++++++++++++++++++++++++++------------ 1 file changed, 67 insertions(+), 19 deletions(-) diff --git a/report.tmpl b/report.tmpl index 9e79097..6f8c3cd 100644 --- a/report.tmpl +++ b/report.tmpl @@ -40,17 +40,79 @@ function drawAll() { const messages = filterMessages(allMessages) + console.log(messages); + + dumpEvents(messages); drawEventVolumeByName(messages) drawEventVolumeByWeekday(messages) drawEventVolumeByHour(messages) drawEventVolumeByAsset(messages) } + function dumpEvents(messages) { + const eventToThreads = {}; + for(var m of messages) { + if (!eventToThreads[m.Event]) + eventToThreads[m.Event] = []; + eventToThreads[m.Event].push(m.Thread); + } + + const threadToMessages = {}; + for(var m of messages) { + if (!threadToMessages[m.Thread]) + threadToMessages[m.Thread] = []; + threadToMessages[m.Thread].push(m); + } + + const eventToMessages = {}; + for(var e in eventToThreads) { + if (!eventToMessages[e]) + eventToMessages[e] = []; + for (var thread of eventToThreads[e]) + eventToMessages[e] = eventToMessages[e].concat(threadToMessages[thread]); + } + for(var e in eventToMessages) + eventToMessages[e].sort((a, b) => a.TS - b.TS); + var events = Object.keys(eventToMessages); + events.sort(); + events.reverse(); + + var keys = ["TS", "Event", "EventName", "Latest"]; + document.getElementById("events").innerHTML = ` + + TS + Event + EventName + Latest + + ${events.map((e) => ` + + ${new Date(eventToMessages[e][0].TS * 1000).toDateString()} + ${eventToMessages[e][0].Event} + ${eventToMessages[e][0].EventName} + ${eventToMessages[e].at(-1).Plaintext} + + `).join("")} + `; + } + function filterMessages(messages) { - const filters = document.getElementById("form"); - console.log(filters); - return messages.map(() => { - }); + const selects = document.getElementById("form").getElementsByTagName("select"); + const fieldsToOptions = {}; + for(var select of selects) { + fieldsToOptions[select.name] = []; + for(var option of select.getElementsByTagName("option")) + if (option.selected) + fieldsToOptions[select.name].push(option.innerHTML); + } + return messages.map((m) => { + for(var k in fieldsToOptions) { + if (fieldsToOptions[k].filter((v) => `${v}` == `${m[k]}`).length == 0) { + return null; + } + } + return m; + }).filter((m) => { return m != null }); } function drawEventVolumeByName() {} @@ -108,21 +170,7 @@

Events

- - - - - - - - {{ range .events.Events }} - - - - - - - {{ end }} +
TSEventEventNameLatest
{{ time "Unix" .First.TS | time "Time.Format" "Mon Jan 02" }}{{ .Event }}{{ .First.EventName }}{{ .Last.Plaintext }}