Уведомления по временным окнам с UTC-условиями в Echobell

Используйте встроенные переменные времени UTC в Echobell, чтобы фильтровать уведомления по рабочим часам, выходным или окнам обслуживания. Внутри — готовые рецепты условий.

Содержание

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

Что понадобится заранее: Условия, Шаблоны, Webhook, Email-триггеры.

Доступные переменные UTC

Эти переменные доступны только для чтения, есть всегда и вычисляются в UTC:

  • timezone (всегда «UTC»), now/iso, epochMs, epochSeconds
  • year, month (1–12), monthName
  • dayOfMonth (1–31)
  • dayOfWeek (0–6, воскресенье = 0), dayOfWeekName
  • hour (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; вне этих часов — только высокая критичность»).

Дальнейшие шаги

  • Добавьте условие с временным окном в существующий канал: Условия
  • Настройте содержимое уведомлений с помощью переменных: Шаблоны
  • Создайте отдельные каналы для рабочих часов и для дежурных окон
  • Для дежурных каналов выберите тип уведомления «Звонок», чтобы срочность вне рабочих часов доходила

Похожие статьи