Компания Grafana Labs, развивающая платформу визуализации данных Grafana и систему мониторинга Prometheus, объявила об открытии исходных текстов системы реагирования на инциденты OnCall, предназначенной для обеспечения совместной работы команд по устранению и разбору инцидентов. OnCall ранее поставлялся в форме проприетарного продукта и был приобретён Grafana в процессе поглощения компании Amixr Inc. в прошлом году. Код проекта написан на языке Python и открыт под лицензией AGPLv3.
Система позволяет собирать информацию об аномалиях и событиях из различных систем мониторинга, после чего автоматически группировать данные, направлять уведомления ответственным группам и отслеживать состояние решения проблем. Поддерживается интеграция с системами мониторинга Grafana, Prometheus, AlertManager и Zabbix. Из полученной от систем мониторинга информация отфильтровываются второстепенные и малозначительные события, агрегируются дубликаты и исключаются проблемы, которые могут быть решены без участия человека.
Очищенные от лишнего информационного шума значительные события поступают в подсистему отправки оповещений, которая выделяет сотрудников, ответственных за решения выявленных категорий проблем, и отправляет уведомления с учётом графика их работы и степени занятости (оцениваются данные из календаря-планировщика). Поддерживается ротация привязки инцидентов между разными сотрудниками и эскалация особо важных или оставшихся без решения проблем другим участникам команды или работникам более высоких ступеней.
В зависимости от степени важности инцидента уведомления могут отправляться через телефонные звонки, SMS, электронную почту, создание
событий в календаре-планировщике, мессенджеры Slack и Telegram. При этом в Slack могут автоматически создаваться каналы для обсуждения вопросов, связанных с решением инцидента, к которым автоматически подключаются как отдельные сотрудники, так и целые команды.
Система предоставляет гибкие возможности расширения и настройки (например, под свои предпочтения можно настроить группировку и маршрутизацию событий, определить правила и каналы доставки уведомлений). Для интеграции с внешними системами предоставляется API и поддержка Terraform. Управление работой осуществляется через web-интерфейс.