Spis treści
- Dostępne zmienne UTC
- Przepisy na warunki
- Dni robocze w godzinach pracy
- Tylko weekendy
- Poza godzinami pracy (noce i weekendy)
- Okno serwisowe (soboty 01:00–03:00)
- Pierwszy dzień miesiąca o pełnej godzinie
- Godziny pracy na koniec kwartału (marzec/czerwiec/wrzesień/grudzień)
- Łączenie czasu z filtrami treści
- Używanie zmiennych czasu w szablonach
- Uwagi
- Kolejne kroki
Wbudowane zmienne czasu UTC w Echobell pozwalają ograniczyć powiadomienia do wybranych okien czasowych — godzin pracy, dyżurów on-call, okien serwisowych — bezpośrednio w warunkach kanału. Bez żadnej zewnętrznej warstwy filtrowania.
Wymagania wstępne: Warunki, Szablony, Webhook, Wyzwalacze e-mail.
Dostępne zmienne UTC
Są tylko do odczytu, zawsze dostępne i wyliczane w UTC:
timezone(zawsze „UTC”),now/iso,epochMs,epochSecondsyear,month(1–12),monthNamedayOfMonth(1–31)dayOfWeek(0–6, niedziela = 0),dayOfWeekNamehour(0–23),minute(0–59),second(0–59)date(YYYY-MM-DD),time(HH:mm:ss)
W warunkach używaj ich wprost (bez {{ }}). W szablonach stosuj je z {{ }}.
Przepisy na warunki
Dni robocze w godzinach pracy
hour >= 9 && hour < 17 && dayOfWeek >= 1 && dayOfWeek <= 5
Tylko weekendy
dayOfWeek == 0 || dayOfWeek == 6
Poza godzinami pracy (noce i weekendy)
(hour < 9 || hour >= 17) || dayOfWeek == 0 || dayOfWeek == 6
Okno serwisowe (soboty 01:00–03:00)
dayOfWeek == 6 && hour >= 1 && hour < 3
Pierwszy dzień miesiąca o pełnej godzinie
dayOfMonth == 1 && minute == 0
Godziny pracy na koniec kwartału (marzec/czerwiec/wrzesień/grudzień)
(month == 3 || month == 6 || month == 9 || month == 12) && hour >= 9 && hour < 17 && dayOfWeek >= 1 && dayOfWeek <= 5
Łączenie czasu z filtrami treści
Warunki czasowe łączą się ze zmiennymi z danych przy użyciu standardowych operatorów:
- Eskalacje poza godzinami pracy tylko przy wysokiej wadze zdarzenia:
((hour < 9 || hour >= 17) || dayOfWeek == 0 || dayOfWeek == 6) && (severity == "high" || severity == "critical") - Środowisko produkcyjne, wyłącznie w dni robocze:
environment == "production" && dayOfWeek >= 1 && dayOfWeek <= 5
Warunki to zwykłe wyrażenia — nie otaczaj ich {{ }}. Zobacz Warunki → obsługiwane operatory.
Używanie zmiennych czasu w szablonach
Te same zmienne działają w szablonach z {{ }}, co przydaje się przy zapisach audytowych i czytelnych potwierdzeniach:
Sent at {{date}} {{time}} {{sys.timezone}}
Today is {{sys.dayOfWeekName}}, {{sys.monthName}} {{dayOfMonth}}, {{year}}
Epoch: {{sys.epochSeconds}}
Łącz je z danymi z webhooka lub wyzwalaczy e-mail:
{{service}} {{status}} at {{time}} ({{sys.timezone}})
Uwagi
- Wszystkie zmienne systemowe są w UTC. Jeśli Twój zespół pracuje w różnych strefach czasowych, uwzględnij przesunięcie przy ustawianiu zakresów godzin.
- Zacznij od prostego okna czasowego, a filtry treści dokładaj dopiero wtedy, gdy zadziała.
- Zostaw przy kanale krótki opis wyjaśniający logikę warunku (np. „dni robocze 09–17 UTC; poza godzinami pracy tylko wysoka waga”).