assay.alertmanager
Alertmanager alert and silence management. Query, create, and delete alerts and silences. Client:
alertmanager.client(url).
c.alerts:list(opts?)→ [alert] — List alerts.opts:{active, silenced, inhibited, unprocessed, filter, receiver}c.alerts:post(alerts)→ true — Post new alerts (array of alert objects)c.alerts:groups(opts?)→ [group] — List alert groups.opts:{active, silenced, inhibited, filter, receiver}c.alerts:is_firing(alertname)→ bool — Check if a specific alert is currently firingc.alerts:active_count()→ number — Count active non-silenced, non-inhibited alertsc.silences:list(opts?)→ [silence] — List silences.opts:{filter}c.silences:get(id)→ silence — Get silence by IDc.silences:create(silence)→{silenceID}— Create a silencec.silences:delete(id)→ true — Delete silence by IDc.silences:silence_alert(alertname, duration_hours, opts?)→ silenceID — Silence an alert by name for N hours.opts:{created_by, comment}c.status:get()→{cluster, config}— Get Alertmanager status and cluster infoc.receivers:list()→ [receiver] — List notification receivers
Example:
local am = require("assay.alertmanager")
local c = am.client("http://alertmanager:9093")
local firing = c.alerts:is_firing("HighCPU")
if firing then
c.silences:silence_alert("HighCPU", 2, {comment = "Investigating"})
end