Plug-ins

Plugins

Plugin extensions are an easy way of adding new features to Alerta that meet a specific end-user requirement.

Core

Core plugins ship with the Alerta server. The default enabled plugins are remote_ip, reject, heartbeat, blackout and forwarder.

  • Remote IP - extract remote IP address from request headers and add to alert attributes

  • Reject - reject alerts before processing. used to enforce custom alert format policies

  • Heartbeat - convert missed heartbeats into alerts

  • Blackout - suppression handler that will drop alerts that match a blackout period

  • Forwarder - forward alerts to other Alerta servers or external systems

  • Escalate - escalate alert severity based on how long the alert has been open

  • Timeout - auto-expire stale alerts

  • Acked By - track which user acknowledged an alert

Contrib

Contributed plugins are available for popular tools and services:

Messaging & Chat

  • DingTalk - send alerts to DingTalk groups

  • HipChat - send alerts to HipChat room

  • Matrix - send alerts to Matrix rooms

  • Mattermost - send alerts to Mattermost channels

  • MS Teams - send alerts to Microsoft Teams channels

  • Rocketchat - send alerts to Rocket.Chat channels

  • Slack - send alerts to Slack channels

  • Telegram Bot - send alerts to Telegram channels

Incident Management

Monitoring & Metrics

  • InfluxDB - send alerts to InfluxDB for graphing with Grafana

  • Prometheus Silencer - silence alerts in Prometheus Alertmanager if ack’ed in Alerta

  • OP5 - send alerts to OP5 Monitor

  • Zabbix - send alerts to Zabbix

Notifications

Queues & Pub/Sub

  • AMQP - publish alerts to an AMQP fanout topic after processing

  • Google Pub/Sub - publish alerts to Google Cloud Pub/Sub

  • AWS SNS - publish alerts to SNS topic after processing

Logging & Status

Alert Processing

  • Enhance - add new information to an alert based on existing information

  • GeoIP Location - use remote IP address to add location data

  • Normalise - ensure alerts are formatted in a consistent manner

Plugin Lifecycle Hooks

Plugins must implement the PluginBase abstract class. The following lifecycle hooks are available:

Required methods:

pre_receive(alert, **kwargs)

Called before an alert is saved to the database. Can modify and return the alert, or raise RejectException or BlackoutPeriod to reject it.

post_receive(alert, **kwargs)

Called after an alert is saved. Used for sending notifications to external services. Should not modify the alert.

status_change(alert, status, text, **kwargs)

Called when an alert status changes. Used to trigger actions on status transitions.

Optional methods (raise ``NotImplementedError`` if not used):

take_action(alert, action, text, **kwargs)

Called before an action is taken on an alert. Can be used to trigger external actions or modify the alert before the action is applied.

post_action(alert, action, text, **kwargs)

Called after an action has been applied to an alert and the status has been updated.

take_note(alert, text, **kwargs)

Called when a note is added to an alert.

delete(alert, **kwargs)

Called when an alert is deleted.