Периоды планового обслуживания


Mutes and Downtimes - периоды «беззвучного режима» и планового обслуживания, плановых отключений оборудования и систем, а для СМ отключения событий и оповещений.

Цетральной точкой агрегации установок по заглушению/обеззвучиванию мониторов и основой для их настройки служит таблица Downtimes на странице Периоды планового обслуживания.

У всех разная терминология. Mutes, Silences, Maintenance, Downtimes, Ad-hoc downtime, Planned downtime…

Для того, чтобы добиться одинаковго понимания, в UI будем называть:

  • Mute - с этого момента на период времени по длительности эквивалент Ad-hoc downtime. Одномоментное включение режима, его нельзя настроить заранее. Точное время окончания обычно не задают, а только длительность.

  • Downtime (отключение)- с такого по такое время в будущем Плановое обслуживание. Бывают одноразовые (one-time) и повторяющиеся (recurring)

По существу, и те и другие - это выключения звука, поэтому часто будем говорить mute и для downtimes.

Основой для мьюта групп и мониторов служит центральный репозиторий. Таблица-справочник, где содержатся и администрируются все периоды обслуживания:

  • каждая запись в этой таблице может отличаться по временным или селективным параметрам, но нет и ограничения на уникальность

  • возможно произвольное наложение периодов мьюта и их одновременное действие, мьют группы может обуславливаться одновременным действием разных записей

  • из какого бы элемента UI не создавался период, он обязательно попадает в эту таблицу

  • для таблицы и Mutes и Downtimes качественно не отличаются - это всё записи

Поля таблицы:

  • STATUS - ACTIVE/SCHEDULED

  • RECURRING - иконка есть или нет

  • SCOPE лейблы со значениями

  • MONITOR TAGS теги монитора (мы пока не используем)

  • MONITOR - name

  • DESCRIPTION

  • START время начала (для повторяющегося время ближайшего или действущего периода)

  • END время окончания

    (edit/clone/delete)

Когда? Типы мьютов в отношении времени

MUTE

одноразовый спонтанный характер, включается сразу для этого случая, имеет длительность, напр. с этого момента на час

ONE-TIME DOWNTIME

одноразовый плановый характер, настраивается в системе заранее, имеет время начала и время окончания. напр. 12 мая 2025 с 18:45 до 20:00

RECURRING DOWNTIME

повторяющийся плановый характер, использует специальные «языки» и синтаксис условий. Напр. каждое воскресенье с 18:00 до 23:59, каждый первый понедельник месяца с 6:00 до 7:00, может иметь срок годности

Кого? - 4 категории мьютов в отношении селективности

Все они делятся на глобальные - действуют на все мониторы и локальные - действует исключительно в рамках заданного монитора.

monitor_id

scope
группообразующие лейблы и их значения

Свойcтва этого типа

*

*

Глобальный для всего, заглушает всё - все группы, всех без исключения мониторов

*

hostname:holod, environment:dev

Глобальный по мониторам, но селективный по лейблам в группах. Действует только на группы мониторов, которые:
- имеют эти лейблы в составе имени (входят в «Группировка» или «Группировка оповещений»)
- указанные лейблы одновременно имеют указанные значения (AND)

0x1234

*

Мьют монитора Локальный, общий мьют - действует на все группы этого монитора**

0x1234

hostname:holod, environment:dev

Локальный для монитора И селективный по лейблам своих групп. Самый узконаправленный. Действует только на группы этого монитора, которые имеют эти значения лейблов. Условие AND

Хранение текущего значения mute группы в кеше Redis

  • либо отдельное поле muted: true/false, как временное и впоследствии неудобное решение

  • либо специально созданные уровни критичности - Muted Crit, Muted Warn, Muted No data, Muted OK

Каждая группа имеет неотъемлемое свойство - её текущее состояние Muted, явное или косвенное, но понятное монитору.

Состояния монитора в отображении его мьюта

Монитор знает сколько групп в настоящий момент находится в состоянии Muted

  • Полностью залитый синим сивол динамика с перекрестием - «Звук полностью выключен» = Все группы в состянии Muted

  • Наполовину залитый синим сивол динамика с перекрестием - «Звук частично выключен» = Не все группы в состянии Muted, но хотя бы одна

Основные положения

Мьют со страницы Мониторы - кнопкой в строке монитора

Создаёт запись «Локальный общий Мьют монитора». Без параметров селективности и только один этот тип. Можно с параметрами времени из нескольких фиксированных диапазонов, но это, как мне кажется, излишне. Лучше понятный режим «нажал - отжал». После создания может быть только удалён повторным нажатием кнопки здесь же. Разумеется, может и удаляться и редактироваться в «центре управления мьютами».

Мьют со страницы состояния монитора

Отсюда доступно создание и удаление:

  • ОДНОГО «Локального (общего) Мьюта монитора»

  • одного или нескольких Мьюта групп монитора (без выбора id монитора, он уже зашит)

На странице монитора выводится список ДЕЙСВУЮЩИХ В НАСТОЯЩИЙ МОМЕНТ = АКТИВНЫХ МЬЮТОВ, - корзинка у каждой строки.

Здесь же отображаются глобальные мьюты влиябщие на этот монитор. Но удалить их отсюда нельзя!

Мьют со страницы Downtimes

Важно

Глобальные, то есть не ограниченные рамками монитора, мьюты могут создаваться/редактироваться/удаляться только на странице Downtimes - «Периоды планового обслуживания». Из мониторов этого сделать нельзя.

Каждая запись мьюта уже в процессе создания подсказывает сколько мониторов она затронет. Это количество имеет динамический характер.

Отображение Mute состояния на странице Мониторы

Если на заданный монитор одновременно действет несколько периодов, например, он замьючен целиком и в нём есть группы, обеззвученные глобальными периодами, как отображается его статус?

  • Мьют монитора целиком имеет самый высокий приоритет и он всегда полный

  • К символу Muted добавляется время окончания данного полного мьюта

Частичный мьют монитора по сути определяется в динамике, запросами:

  • все группы монитора в состоянии muted -> отобразить Полный мьют

  • есть группы Muted но не все -> отобразить Частичный мьют

  • для обоих случаев время окончания не отображается

Важно

Глобальный мьют (полностью влияющий на все группы и частично) будет отображаться на строке монитора как обычно, но у него не может быть времени окончания и здесь его нельзя удалить кнопкой

Отображение Mute состояния на странце состояния монитора

Глобальный мьют монитора сверху в общей секции. Все действующие на него частичные мьюты (статистика) там же

В таблице групп - отображать иконкой Muted статус у каждой группы

В будущем, рисовть штриховкой на диаграмме.

Где какой тип мьюта настраивается

На страницах Мониторы и состояние монитора можно видеть действующие глобальные (не имеющие указанного явно monitor_id) мьюты, но нельзя никак на них влиять. Ни удалять, ни создавать. На этих странцах можно содавать только локальные периоды. И только ad-hoc - мгновенно действующие на определённое время.

Со страницы Мониторы можно создавать и удалять мьют выбранного монитора. Только ad-hoc

Со страницы монитора можно создавать, удалять, делать комбинацию из одного Мьюта монитора и одного или нескольких селективных мьютов монитора. Например ДЛЯ ЗАДАННОГО МОНИТОРА валидны комбинации:

  • группа с hostname:holod будет muted 6 часов

  • весь монитор - 2 часа + группа с environment:dev - 5 часов

Только со странцы Downtimes можно создавать периоды на будщее и повторяющиеся периоды.

Только со страницы Downtimes можно управлять Глобальными, охватывающими разные мониторы, периодами.