Skip to content

Commit

Permalink
updating email alert to include links to reingested alerts
Browse files Browse the repository at this point in the history
  • Loading branch information
kris-watts-gravwell committed Dec 2, 2019
1 parent b272640 commit a3fc562
Show file tree
Hide file tree
Showing 3 changed files with 107 additions and 6 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
*.swp
45 changes: 41 additions & 4 deletions alerts/email.ank
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ module emailAlert {
var throttleEv = ""
var throttleDur = 0
var thr = throttle
var ingestLinks = make(map[string]interface)

func SetServerPath(p) {
serverBase = p
Expand All @@ -49,7 +50,15 @@ module emailAlert {
throttleEv = evName
thr.SetMapName(evName)
thr.SetInterval(dur)
}
}

func queryInfo() {
var m = make(map[string]interface)
m["Query"] = query
m["Start"] = start
m["End"] = end
return m
}

func SetQueryParams(q, s, e) {
query = q
Expand All @@ -60,7 +69,7 @@ module emailAlert {
start = s
end = e
}
}
}

func SetEmailParams(frm, to, subj) {
from = frm
Expand Down Expand Up @@ -108,13 +117,25 @@ module emailAlert {
}
var re = reingest_json
if reingestName != "" {
re.SetHeaderValue("AlertName", reingestName)
re.SetAlertName(reingestName)
}
if reingestMsg != "" {
re.SetHeaderValue("AlertMsg", reingestMsg)
}
var emailSent = throttleEnt(ent)
re.SetHeaderValue("EmailSent", emailSent)
re.SetHeaderValue("AlertInfo", queryInfo())
re.SetTag(reingestTag)
return re.Ingest(ent, time.Now())
var t = time.Now()
if emailSent {
ev, err = getEntryEnum(ent, throttleEv)
if err == nil {
var id = re.IngestID()
var lnk = re.AlertLink(serverBase, start, t, id)
ingestLinks[toString(ev)] = lnk
}
}
return re.Ingest(ent, t)
}

func reingestEnts(ents) {
Expand Down Expand Up @@ -198,6 +219,12 @@ module emailAlert {
for el in extraLinks {
em.AddBodyData(el)
}
if len(ingestLinks) > 0 {
em.AddSubTitle("Query Links")
for k, v in ingestLinks {
em.AddBodyData(v)
}
}
err = em.SendEmail(from, to, subject)
if err == nil && throttleDur > 0 {
markEnts(ents)
Expand All @@ -223,6 +250,16 @@ module emailAlert {
for el in extraLinks {
em.AddBodyData(el)
}
if len(ingestLinks) > 0 {
ev, err = getEntryEnum(ent, throttleEv)
if err == nil {
lnk = ingestLinks[toString(ev)]
if lnk != nil {
em.AddSubTitle("Query Links")

}
}
}
err = em.SendEmail(from, to, subject)
if err == nil && throttleDur > 0 {
markEnt(ent)
Expand Down
67 changes: 65 additions & 2 deletions utils/reingest-json.ank
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,13 @@

MinVer(3, 3, 1) #require at least 3.3.1

require("utils/links.ank")

module reingest_json {
var tag = ""
var name = ""
var name = nil
var msg = ""
var id = nil
var m = make(map[string]interface)
var time = import("time")
var uuid = import("google/uuid")
Expand All @@ -29,6 +32,63 @@ module reingest_json {
func SetHeaderValue(k, v) {
m[toString(k)] = v
}

func IngestID() {
if id == nil {
id = uuid.New()
}
return id
}

func OverrideID(v) {
id = v
}

func SetAlertName(v) {
name = v
m["AlertName"] = v
}

func AlertLink(server, s, desc) {
q = ""
if tag != "" {
q += `tag=` + tag + ` `
}
q += `json AlertID==` + id
ln = make(link)
ln.Init(server + "/#/search/launch")
ln.AddParam("query", q)
ln.AddParam("start", s)
if e != nil {
ln.AddParam("end", e)
}
if desc == nil || len(desc) == "" {
desc = `LINK`
}
return ln.HtmlEncode(desc)
}

func CategoryLink(server, s, e, desc) {
q = ""
if tag != "" {
q += `tag=` + tag + ` `
}
if name != "" {
q += `json AlertName==` + name
}
ln = make(link)
ln.Init(server + "/#/search/launch")
ln.AddParam("query", q)
ln.AddParam("start", s)
if e != nil {
ln.AddParam("end", e)
}
if desc == nil || len(desc) == "" {
desc = `LINK`
}
return ln.HtmlEncode(desc)
}


func Ingest(ent, ts) {
if tag == "" {
Expand All @@ -42,7 +102,10 @@ module reingest_json {
for ep in ent.Enumerated {
pkg[ep.Name] = ep.Value.GetInterfaceValue()
}
m["AlertID"] = uuid.New()
if id == nil {
id = uuid.New()
}
m["AlertID"] = id
m["data"] = pkg
var data = nil
var err = ""
Expand Down

0 comments on commit a3fc562

Please sign in to comment.