«Никто не делает, что хочет. Люди делают лишь то, что ты им позволяешь»
— Томми Версетти

Всем привет! С вами снова я, тимлид команды разработки «Графини» Павел Мирошин. Надеюсь, вы успели отдохнуть и не слишком грустите по ушедшему лету. Я вот не успел — трудился над новым релизом. Но оно того стоило.
Этот маленький промежуточный релиз с летним вайбом — 2026H1.1 «Салон» — скрывает в себе очень важную и долгожданную фичу: «Алертинг» или, по-нашему, «Оповещения».
Салон — изысканный приём для избранной публики, сочетавший светское общение, искусство и интеллектуальные беседы.
Сначала пробежимся по мелочам
Начнем с небольших, но полезных изменений.
Мы добавили возможность переключения времени на дашборде: клиентское или серверное. Это пригодится для лучшей поддержки больших систем, работающих в нескольких часовых поясах.
Также появились системные переменные для запросов: from, to, range, range_s, __range_ms, dashboard, org.id, __org.name. А ещё в тех полях, где переменные допустимы, появилась кнопка для их быстрой вставки.

Добавили новый тип виджета — «Тепловая карта». У карты есть несколько режимов отображения, переопределения по осям и действие по клику на ячейку. Виджет доступен и при импорте из Grafana.

Провели косметический ремонт: теперь в виджетах можно указывать не только необходимые цвета, но и выбирать их из конкретной палитры, палитры самого виджета или переменной.
Да, мы добавили новый тип переменной — «Палитра». В ней можно указать одну или несколько палитр, а затем менять их прямо в витрине. При смене палитры все зависимые виджеты перерисуются.


В этот раз я не стал рисовать привычную архитектурную схему и показывать трансформацию нашей системы. Вместо этого у меня есть кое-что, может, и не настолько очевидное, зато, по моему мнению, куда более наглядное — карта. Каждый остров на ней — отдельная часть системы, а мосты между островами показывают связи между её компонентами.

Главное событие нашего приёма
Вы постоянно спрашивали нас об алертинге, говорили, как он вам нужен и что его отсутствие для вас — стоп-фактор. И вот наконец мы до него добрались.
Мы не стали копировать решение у наших зарубежных коллег, а разработали своё видение этого сервиса.
Первое, что мы сделали, — полностью отделили алертинг от основной системы. То есть если он вам не нужен, его можно просто не ставить: «Графиня» спокойно обойдётся без него.
В Grafana вся связка внутри алертинга работает через лейблы. В нашей версии можно работать как через лейблы, так и через прямые ссылки на объекты.
Весь функционал мы поделили на три раздела. Давайте разберём их по очереди.
Правила
Это центр всей работы с алертами.
Редактор правил похож на редактор виджета, поэтому расположение элементов будет для вас привычным.

Как и в виджете, сверху расположены превью метрики и ограничение по ней, а снизу настройки сгруппированы по вкладкам. Такая структура позволяет легко найти необходимые поля, а не скроллить до бесконечности вертикальный список.
Во вкладке «Уведомления» можно задать одну или несколько выходных точек для уведомлений либо посмотреть, какие маршруты доставки настроены для этого правила через метки.
Справа сверху отображается маленький, но очень нужный блок статуса, который показывает, всё ли готово к тому, чтобы правило сработало и по нему пришло уведомление.
Уведомления
Этот раздел посвящён уведомлениям и всем связанным с ними атрибутам. Для удобства, как и в правилах, здесь всё разделено на отдельные табы.

Начнём с конца.
Нерабочие часы — это интервалы времени, когда уведомления не приходят, то есть расписание тишины. Тут можно задать промежутки, в которые уведомления не будут отправляться: например, ночью или в выходные.
Отключения — по сути, такие же периоды времени, в рамках которых уведомления не будут приходить.
А в чём тогда разница?
Нерабочие часы — это плановое расписание, а отключения — разовые. Например, можно поставить уведомления на паузу, когда вы уже знаете о проблеме и работаете над устранением её причины.

Маршрут доставки — это как раз описание того, как правила должны превращаться в уведомления: порядок, условия отправки, каналы уведомлений, интервалы отключения и прочее.

Шаблоны — здесь хранятся шаблоны сообщений и заголовков. Синтаксис мы старались сделать максимально похожим на Grafana, чтобы при переходе на «Графиню» не приходилось изучать всё заново.
И теперь переходим к самим уведомлениям.
Здесь, в отличие от Grafana, можно настроить прямую зависимость от правил — то есть указать конкретное правило, по которому должно отправляться уведомление. При этом работу через маршрут доставки тоже можно настроить.
Сейчас мы реализовали три провайдера доставки сообщений: Email, Webhook и Telegram. Этого уже хватает для большинства базовых сценариев, дальше список будет расширяться по мере запросов.
В блоке шаблонов можно как написать свой шаблон для конкретного уведомления, так и выбрать один из сохранённых — тех самых, что находятся в табе «Шаблоны».

Состояние
Ну и завершает всё это страница состояния.
Здесь есть стандартный список переходов правил — срабатываний и отключений — и базовый список доставок уведомлений.
Но этого мне показалось мало, поэтому мы добавили ещё и ленту.
В ленте можно сразу увидеть тепловую карту срабатываний за неделю, а ниже — сгруппированный список переходов. Каждый элемент в нём представляет собой группу «правило + инстанс».
Для такой группы сразу видно текущее состояние, таймлайн событий, значения в каждом событии, список меток при переходе и статус доставки.
Отсюда же можно быстро поставить уведомления для этой группы на паузу либо посмотреть, сколько ещё она продлится.

Когда мы только начали тестировать алертинг, наш тестировщик заваливал меня вопросами: как ему проверять все способы доставки, как убеждаться в том, что сработал именно маршрут доставки, и почему уведомление вообще пришло именно сюда.
На тот момент я уже закончил разработку этой фичи, работал над другими вещами и в какой-то момент сам начал путаться.
В итоге я не выдержал и сделал граф маршрутизации.
По нему легко отследить весь маршрут от правила и инстанса до уведомления: посмотреть, сработал ли маршрут доставки и какой именно, или уведомление было доставлено напрямую. Там же можно увидеть, какие уведомления попали в интервал отключения или под паузу уведомлений.

На этом фичи нашего релиза заканчиваются, и сейчас команда сосредотачивается на не менее важном деле — доработках решения под требования ФСТЭК.
Естественно, мы не забываем и про вас: ваши предложения и замечания не остаются без внимания, и по возможности мы включаем их в релизы. Так что подписывайтесь на наше ТГ-сообщество, где можно запросить дистрибутив и поделиться обратной связью.
А еще приходите на наш стенд на конференции IT Elements 2026, которая пройдёт 9–10 сентября. Мы подготовили для вас увлекательную соревновательную игру в мире «Графини» и «Пульта» с главным призом — ноутбуком «СИЛА» MacBook Neo. До новых встреч!