Содержание
- Доступные переменные UTC
- Рецепты условий
- Будни в рабочие часы
- Только выходные
- Вне рабочих часов (ночи и выходные)
- Окно обслуживания (по субботам 01:00–03:00)
- Первое число каждого месяца в начале часа
- Рабочие часы в конце квартала (март/июнь/сентябрь/декабрь)
- Сочетание времени с фильтрами по содержимому
- Переменные времени в шаблонах
- Примечания
- Дальнейшие шаги
Встроенные переменные времени UTC в Echobell позволяют ограничить уведомления определёнными временными окнами — рабочими часами, дежурными сменами, окнами обслуживания — прямо в условиях канала. Внешний слой фильтрации не нужен.
Что понадобится заранее: Условия, Шаблоны, Webhook, Email-триггеры.
Доступные переменные UTC
Эти переменные доступны только для чтения, есть всегда и вычисляются в UTC:
timezone(всегда «UTC»),now/iso,epochMs,epochSecondsyear,month(1–12),monthNamedayOfMonth(1–31)dayOfWeek(0–6, воскресенье = 0),dayOfWeekNamehour(0–23),minute(0–59),second(0–59)date(YYYY-MM-DD),time(HH:mm:ss)
В Условиях используйте их напрямую (без {{ }}). В Шаблонах — с {{ }}.
Рецепты условий
Будни в рабочие часы
hour >= 9 && hour < 17 && dayOfWeek >= 1 && dayOfWeek <= 5
Только выходные
dayOfWeek == 0 || dayOfWeek == 6
Вне рабочих часов (ночи и выходные)
(hour < 9 || hour >= 17) || dayOfWeek == 0 || dayOfWeek == 6
Окно обслуживания (по субботам 01:00–03:00)
dayOfWeek == 6 && hour >= 1 && hour < 3
Первое число каждого месяца в начале часа
dayOfMonth == 1 && minute == 0
Рабочие часы в конце квартала (март/июнь/сентябрь/декабрь)
(month == 3 || month == 6 || month == 9 || month == 12) && hour >= 9 && hour < 17 && dayOfWeek >= 1 && dayOfWeek <= 5
Сочетание времени с фильтрами по содержимому
Условия по времени комбинируются с переменными данных через стандартные операторы:
- Эскалация вне рабочих часов только при высокой критичности:
((hour < 9 || hour >= 17) || dayOfWeek == 0 || dayOfWeek == 6) && (severity == "high" || severity == "critical") - Продакшен-окружение, только по будням:
environment == "production" && dayOfWeek >= 1 && dayOfWeek <= 5
Условия — это обычные выражения, не оборачивайте их в {{ }}. См. Условия → Поддерживаемые операторы.
Переменные времени в шаблонах
Те же переменные работают в шаблонах с {{ }} — это удобно для записей аудита и понятных человеку подтверждений:
Sent at {{date}} {{time}} {{sys.timezone}}
Today is {{sys.dayOfWeekName}}, {{sys.monthName}} {{dayOfMonth}}, {{year}}
Epoch: {{sys.epochSeconds}}
Комбинируйте с данными из Webhook или Email-триггеров:
{{service}} {{status}} at {{time}} ({{sys.timezone}})
Примечания
- Все системные переменные — в UTC. Если ваша команда распределена по часовым поясам, учитывайте смещение при выборе диапазонов часов.
- Начните с простого временного окна, а когда оно заработает, добавьте фильтры по содержимому.
- Оставьте в канале короткое описание логики условия (например, «Будни 09–17 UTC; вне этих часов — только высокая критичность»).