Skip to content

Latest commit

 

History

History
45 lines (36 loc) · 1.67 KB

README.md

File metadata and controls

45 lines (36 loc) · 1.67 KB

grafanaIRC

IRC bot that sends grafana alerts to IRC Planned Features:

Bot stuff

  • connect to IRC (SASL preferred)

  • IRC commands:

    • alert rate [alertname] [duration] : set a rate limit on an alert

    • alert mute alertname [duration] : mute an alert for a certain period of time [ ] default value for mute duration?

    • alert unmute alertname : unmute a currently muted alert (same as alert mute alertname 0m)

    • alert list list alerts which are muted

    • alert info alertname : report current [mute, last seen, rate limit] record

    • join / part channel, defaults to current channel if none given

    • quit command

  • IRC command to temporarily mute bot for a period of time.

  • possible format request: 10h10m30s etc (supported up to hours. Days+ not supported)

  • Authentication based on who has +o, +a, etc

  • Autojoin channels

  • reports firing alerts on channel

Graphana stuff

  • Host simple web endpoint to receive JSON post requests ( to receive an alert from grafana )
  • JSON parsing of alerts
  • Rate Limiting: Determine if the alert has been reported within configurable time window. If not, report to IRC.
  • Rate Limiting duration configurable per alert.
  • default, global rate limit

Other

  • connect to postgresQL to store IRC bot settings(blacklist)
  • take startup configs (IRC server, username, password) from a yaml file
  • Dockerize

Notes: Alerts should have:

  • Alert_name
  • Rate_limit ( eg, report only every 15m )
  • Mute_until: timestamp, stored as unix timestamp.
  • Last_seen : last time we observed this alert
  • Last_reported : last time we reported ( subject to mute / rate limits )