Zeitfenster-Benachrichtigungen mit UTC-Bedingungen in Echobell
Echobells integrierte UTC-Zeitvariablen ermöglichen es, Benachrichtigungen auf bestimmte Zeitfenster zu beschränken – Geschäftszeiten, On-Call-Schichten, Wartungsfenster – direkt in den Channel-Bedingungen. Kein externer Filterlayer erforderlich.
Voraussetzungen: Bedingungen, Templates, Webhook, E-Mail-Trigger.
Verfügbare UTC-Variablen
Diese Variablen sind schreibgeschützt, immer verfügbar und in UTC berechnet:
timezone(immer „UTC"),now/iso,epochMs,epochSecondsyear,month(1–12),monthNamedayOfMonth(1–31)dayOfWeek(0–6, Sonntag = 0),dayOfWeekNamehour(0–23),minute(0–59),second(0–59)date(YYYY-MM-DD),time(HH:mm:ss)
In Bedingungen direkt verwenden (ohne {{ }}). In Templates mit {{ }}.
Bedingungsrezepte
Werktags während der Geschäftszeiten
hour >= 9 && hour < 17 && dayOfWeek >= 1 && dayOfWeek <= 5Nur Wochenende
dayOfWeek == 0 || dayOfWeek == 6Außerhalb der Geschäftszeiten (Nächte und Wochenenden)
(hour < 9 || hour >= 17) || dayOfWeek == 0 || dayOfWeek == 6Wartungsfenster (Samstags 01:00–03:00)
dayOfWeek == 6 && hour >= 1 && hour < 3Erster Tag des Monats zur vollen Stunde
dayOfMonth == 1 && minute == 0Quartalsende während Geschäftszeiten (März/Juni/Sept/Dez)
(month == 3 || month == 6 || month == 9 || month == 12) && hour >= 9 && hour < 17 && dayOfWeek >= 1 && dayOfWeek <= 5Zeit mit Inhaltsfiltern kombinieren
Zeitbedingungen lassen sich mit Datenvariablen über Standardoperatoren kombinieren:
- Außerhalb der Geschäftszeiten nur bei hohem Schweregrad eskalieren:
((hour < 9 || hour >= 17) || dayOfWeek == 0 || dayOfWeek == 6) && (severity == "high" || severity == "critical") - Produktionsumgebung, nur werktags:
environment == "production" && dayOfWeek >= 1 && dayOfWeek <= 5
Bedingungen sind einfache Ausdrücke – kein {{ }}-Wrap. Siehe Bedingungen → Unterstützte Operatoren.
Zeitvariablen in Templates verwenden
Dieselben Variablen funktionieren in Templates mit {{ }} – nützlich für Audit-Einträge und menschenlesbare Protokolle:
Sent at {{date}} {{time}} {{timezone}}
Today is {{dayOfWeekName}}, {{monthName}} {{dayOfMonth}}, {{year}}
Epoch: {{epochSeconds}}Mit Daten aus Webhook oder E-Mail-Trigger kombinieren:
{{service}} {{status}} at {{time}} ({{timezone}})Hinweise
- Alle Systemvariablen sind UTC. Wenn Ihr Team über Zeitzonen verteilt ist, den Offset beim Setzen von Stundenbereichen berücksichtigen.
- Mit einem einfachen Zeitfenster starten, dann Inhaltsfilter ergänzen, sobald es funktioniert.
- Eine kurze Beschreibung im Channel hinterlassen, die die Bedingungslogik erklärt (z. B. „Werktags 09–17 UTC; außerhalb nur bei hohem Schweregrad").
Nächste Schritte
- Zeitfenster-Bedingung zu einem bestehenden Channel hinzufügen: Bedingungen
- Benachrichtigungsinhalt mit Variablen anpassen: Templates
- Separate Channels für Geschäftszeiten vs. On-Call-Fenster erstellen
- On-Call-Channels auf Anruf-Benachrichtigungstyp für außerhalb der Geschäftszeiten setzen