Периоды планового обслуживания
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тва этого типа |
---|---|---|
* |
* |
Глобальный для всего, заглушает всё - все группы, всех без исключения мониторов |
* |
|
Глобальный по мониторам, но селективный по лейблам в группах. Действует только на группы мониторов, которые: |
0x1234 |
* |
Мьют монитора Локальный, общий мьют - действует на все группы этого монитора** |
0x1234 |
|
Локальный для монитора И селективный по лейблам своих групп. Самый узконаправленный. Действует только на группы этого монитора, которые имеют эти значения лейблов. Условие 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 можно управлять Глобальными, охватывающими разные мониторы, периодами.