
IMPulse — ChatOps система менеджмента инцидентов. Если вы получаете алерты напрямую от Alertmanager, IMPulse поможет формировать из них полноценные инциденты с эскалацией, ответственными и тредом обсуждения проблемы. Подробности в статье.
После прошлого поста вышли v3.4.0—v3.7.0. Ниже — что изменилось по факту.
Inhibition
Добавили механизм, который позволяет сосредоточиться на важных инцидентах: менее важные замораживаются, и в их тредах перестают появляться сообщения. Для этого используется уже существующий механизм freeze.
Синтаксис позволяет перенести подобные правила из Alertmanager:
inhibit_rules: - source_matchers: - severity = "critical" target_matchers: - severity = "warning" equal: - service
Если инцидент, подпадающий под правила source_matchers, находится в статусе firing, инциденты соответствующие target_matchers становятся дочерними и получают состояние frozen пока все родители не станут resolved. Для срабатывания правила у родительского и дочернего инцидентов лейбл service должен совпадать.
Поддержка groups в Slack и Mattermost
Добавлены messenger.groups — нативные группы мессенджеров. Шаг group в цепочке эскалации упоминает соответствующую группу.
messenger: groups: devops_group: {id: S0A6WIL2F7T} chains: oncall: - group: devops_group
UI escallation chain
Ещё один тип цепочки эскалации. В конфиге происходит только объявление цепочки, расписание дежурств редактируется уже из UI (кнопка ui chains в футере).
messenger: chains: oncall: type: ui
Maintenance
Механизм maintenance позволяет заморозить инциденты, подходящие под указанные условия, на время проведения работ, чтобы не дёргать инженеров лишний раз.
Временные окна задаются в UI (кнопка maintenance в футере).
Аутентификация в UI
Добавлена аутентификация через OAuth вашего мессенджера. Для работы необходимо установить переменные окружения AUTH_CLIENT_ID, AUTH_CLIENT_SECRET, AUTH_REDIRECT_URL.
Интерактивные кнопки инцидента в UI
В строке инцидента теперь есть те же кнопки (и чуть больше), что в мессенджере: назначение ответственного, Freeze, Task (если настроена интеграция с Jira). Эти действия, а так же ui chains и maintenance доступны только авторизованным пользователям.
Шаблоны сообщений в треде
Каждое сообщение в треде теперь рендерится используя свой Jinja2-файл из ./thread_templates/<messenger.type>_<template>.j2.
Вы можете настроить свои шаблоны и вывести информацию, интересующую именно вашу команду.
HTTP API
Простой (пока что) API под /api. Swagger: /api/docs, схема: /api/openapi.json.
Также появился endpoint /-/reload для перечитывания изменений в конфиге. Если в новом конфиге обнаружится ошибка, сервер вернёт ошибочный код, а работа продолжится с прежними настройками.
Эксплуатация
Downgrade
С v3.7.0 добавлен механизм —downgrade. В некоторых минорных обновлениях меняется схема файлов инцидентов. И теперь стало возможно откатиться на прежнюю минорную версию в случае возникновения проблем.
Логи
Логи теперь пишутся в формате JSON для лёгкой интеграции с системами хранения логов.
Proxy
Добавлена поддержка прокси через стандартные переменные HTTP_PROXY / HTTPS_PROXY / NO_PROXY.
Мелочи
-
Telegram: задействованы цветные кнопки;
-
Состояние кнопки Archive теперь сохраняется, так как пишется в localStorage;
-
Фильтры в UI можно редактировать после добавления.
Сайт: impulse.bot
Документация: docs.impulse.bot
ссылка на оригинал статьи https://habr.com/ru/articles/1082754/