What does Alerta.io provide out of the box?
Alerta.io is a monitoring system designed to consolidate and deduplicate alerts from multiple sources (Zabbix, Prometheus, Elastic, Grafana, etc.), providing a unified view of infrastructure health. Its alert model is flexible: it defines standard fields, but allows extensions through custom attributes and tags, making it easy to adapt to heterogeneous source formats via webhooks.
The system is modular: it supports different database backends (PostgreSQL, MongoDB), provides a central REST API, a Vue.js-based web UI, basic asynchronous task handling using Celery + Redis to execute operations over large alert sets, and a Python CLI to manage alerts from the command line.
Advanced handling is achieved via plugins that run at different points in the alert lifecycle (pre-receive, post-receive, status changes, manual actions, notes, and deletion), enabling enrichment, filtering, or notification of each event with custom logic.
The real power comes from combining three components: the flexible alert model, plugins, and the routing module that decides which plugins to execute on each state transition. In the original design, plugin execution is synchronous and sequential: an alert is not fully processed until all plugins have finished, which limits throughput at scale when integrations are slow (for example, creating Jira tickets or sending events to external platforms).
IOMETRICS® Alerta: a functional layer on top of Alerta.io
The platform introduces a dedicated PostgreSQL backend (iometrics) that enables more flexible deduplication and access to additional tables, as well as a routing module that extracts the list of plugins to execute from the alerters attribute of each alert. Alongside this routing, modules for recovery, blackouts, contextualisation, notification, and correlation are orchestrated, resulting in an event-processing pipeline that is fully configurable via plugins.
Key functionality added by IOMETRICS® Alerta
Flexible deduplication and correlations
Alerta.io’s original deduplication is based on the resource/event pair. This works well for some sources, but falls short in more complex scenarios. IOMETRICS® Alerta adds the option to deduplicate by attribute: if two alerts share the same value in the deduplication attribute and one is active, the new one will be treated as a duplicate of the first regardless of resource or event.The ability to use the original mechanism, the new one, or both is preserved, allowing you to evolve the model without breaking existing integrations. In addition, the inferredCorrelation attribute is introduced: if an alert arrives with this field populated with one or more IDs of open alerts, the system correlates them and can deduplicate against the alert with the best score.
The logic that populates inferredCorrelation is delegated to correlation providers. These run when an alert arrives and calculate the correlation percentage against other open alerts. Available correlation providers include time-based correlation (the closer in time, the higher the likelihood), topology-based correlation (leveraging IOMetrics Skydive, measuring the “distance” between nodes in the topology), and text-based correlation (sentences-correlator, using ML techniques to evaluate similarity between event descriptions).
Asynchronous and scalable alerting
Recovery and remediation actions
While recovery is in progress, alerting plugins are not executed; only if recovery fails are the configured notifications triggered (email, Jira, Odoo, Slack, Teams, etc.).
Advanced blackout management
Blackout window handling is another area that is strengthened. Alerta.io allows blackouts to be defined via its API and UI, storing them in the database and preventing notifications during those periods for affected resources.
When an alert is in blackout, alerting plugins are not executed and no notifications are generated; however, the system still tracks the end of the blackout. If the alert remains active when the blackout period ends, the corresponding notification plugins are then executed.
Alert contextualisation and enrichment
These rules are executed upon receiving the alert and allow, for example, adding service information, criticality, responsible party, or useful links, without needing to modify the original monitoring source.
Asynchronous alert creation API
This approach fits better with integrations that do not require an immediate response but do want guarantees of full processing and traceability—particularly useful when expensive steps are involved, such as advanced correlation, complex contextualisation, or automated remediation.
In summary…
Thanks to improvements in deduplication, advanced correlation, contextualisation, blackout handling, and asynchronous plugin execution, the platform enables high-volume alert management more efficiently and with less reliance on manual intervention.
Its modular, extensible approach makes it easy to integrate automated recovery, decoupled notifications, and declarative rules—delivering a more robust, configurable event-processing pipeline aligned with modern operations environments.
References:
- io: https://alerta.io
- Alerta.io code repository: https://github.com/alerta
- Código de IOMETRICS® Alerta: https://github.com/datadope-io/datadope-alerta