Kanalbedingungen - Intelligente Benachrichtigungsfilterung
Meistern Sie das Bedingungssystem von Echobell für intelligente Benachrichtigungsfilterung. Vollständiger Leitfaden zu Bedingungsausdrücken, Operatoren, zeitbasierter Filterung und Best Practices zur Reduzierung von Alarm-Müdigkeit.
Kanalbedingungen
Kanalbedingungen sind leistungsstarke Ausdrücke, die bestimmen, wann Benachrichtigungen gesendet werden sollen. Durch die Festlegung von Bedingungen für Ihren Kanal können Sie Benachrichtigungen basierend auf dem Inhalt von Variablen oder HTTP-Headern filtern und sicherstellen, dass Abonnenten nur relevante Warnungen erhalten. Dies ist essenziell, um Alarm-Müdigkeit zu reduzieren und ein hohes Signal-Rausch-Verhältnis in Ihrem Benachrichtigungssystem aufrechtzuerhalten.
Bedingungen verstehen
Bedingungen sind Ausdrücke, die entweder zu true oder false ausgewertet werden. Wenn ein Channel ausgelöst wird:
- Wenn Bedingungen nicht festgelegt sind (leer), werden Benachrichtigungen an alle Abonnenten gesendet.
- Wenn Bedingungen festgelegt sind, werden Benachrichtigungen nur gesendet, wenn der Ausdruck zu
trueausgewertet wird.
Bedingungen schreiben
Bedingungen werden als Ausdrücke ohne die {{}} Klammerung geschrieben, die in Vorlagen verwendet werden. Zum Beispiel:
status == "active"Diese Bedingung erlaubt das Senden von Benachrichtigungen nur, wenn die Variable status den Wert "active" hat.
Häufige Anwendungsfälle
Hier sind einige praktische Beispiele, wie Sie Bedingungen verwenden können:
Grundlegende Variablenprüfungen
amount > 100Benachrichtigen Sie nur, wenn die Variable "amount" größer als 100 ist.
message != ""Benachrichtigen Sie nur, wenn die Variable "message" nicht leer ist.
isUrgent == trueBenachrichtigen Sie nur, wenn die Variable "isUrgent" wahr ist.
Überprüfung von HTTP-Headern
Sie können auf HTTP-Header über die spezielle Variable header zugreifen:
header["user-agent"].includes("Mozilla")Benachrichtigen Sie nur, wenn die Anfrage von einem Mozilla-Browser stammt.
header["content-type"] == "application/json"Benachrichtigen Sie nur, wenn der Inhaltstyp JSON ist.
header["x-priority"] == "high"Benachrichtigen Sie nur, wenn ein benutzerdefinierter Prioritäts-Header auf "high" gesetzt ist.
Komplexe Bedingungen
Sie können mehrere Bedingungen mit logischen Operatoren kombinieren:
(temperature > 30 || pressure > 100) && status == "monitoring"Benachrichtigen Sie nur, wenn entweder die Temperatur 30 überschreitet oder der Druck 100 überschreitet, und der Status "monitoring" ist.
environment == "production" && (errorLevel == "critical" || errorLevel == "high")Benachrichtigen Sie nur bei kritischen oder schwerwiegenden Fehlern in der Produktionsumgebung.
Unterstützte Operatoren
Die folgenden Operatoren werden in Bedingungsausdrücken unterstützt:
| Operator | Beschreibung | Beispiel |
|---|---|---|
== | Gleich | status == "active" |
!= | Ungleich | status != "inactive" |
! | Logisches NICHT | !isCompleted |
< | Kleiner als | count < 10 |
> | Größer als | price > 99.99 |
<= | Kleiner oder gleich | battery <= 20 |
>= | Größer oder gleich | confidence >= 0.95 |
&& | Logisches UND | isAdmin && isActive |
|| | Logisches ODER | isError || isWarning |
Bedingungsvariablen
Wenn ein Channel über Webhook ausgelöst wird, können Sie auf Folgendes zugreifen:
- Abfrageparameter aus der URL
- JSON-Body aus POST-Anfragen
- HTTP-Header über das Objekt
header
Bei E-Mail-Triggern können Sie auf Folgendes zugreifen:
from: Die E-Mail-Absenderadresseto: Die Empfängeradressesubject: Die Betreffzeile der E-Mailtext: Der Klartext-Inhalthtml: Der HTML-Inhalt
Systemzeit‑Variablen (UTC)
Diese schreibgeschützten Variablen stehen in Bedingungen und Templates immer zur Verfügung. Alle Werte sind in UTC berechnet.
timezone: Der konstante String"UTC"now/iso: Aktuelle Zeit als ISO‑8601‑String (z. B.2025-05-06T12:34:56.789Z)epochMs: Millisekunden seit Unix‑Epoch (Zahl)epochSeconds: Sekunden seit Unix‑Epoch (Zahl)year: Vierstellige Jahreszahlmonth: Monatszahl1–12monthName: MonatsnameJanuary–DecemberdayOfMonth: Tag im Monat1–31dayOfWeek: Wochentag0–6(Sonntag = 0)dayOfWeekName: WochentagsnameSunday–Saturdayhour: Stunde0–23minute: Minute0–59second: Sekunde0–59date: Datum alsYYYY-MM-DDtime: Zeit alsHH:mm:ss
Beispiele:
// Werktage zwischen 09:00–17:00 UTC
hour >= 9 && hour < 17 && dayOfWeek >= 1 && dayOfWeek <= 5
// Nur am Wochenende
dayOfWeek == 0 || dayOfWeek == 6
// Erster Tag des Monats zur vollen Stunde
dayOfMonth == 1 && minute == 0Best Practices
- Einfach beginnen - Beginnen Sie mit einfachen Bedingungen und erhöhen Sie bei Bedarf die Komplexität
- Gründlich testen - Testen Sie Ihre Bedingungen mit verschiedenen Eingaben, um sicherzustellen, dass sie wie erwartet funktionieren
- Dokumentieren Sie Ihre Bedingungen - Fügen Sie im Notizfeld Ihres Channels Kommentare hinzu, um komplexe Bedingungen zu erklären
- Berücksichtigen Sie Randfälle - Berücksichtigen Sie fehlende Variablen oder unerwartete Werte
Beispiele
Nur bei bestimmten Fehlern alarmieren
errorType == "database" && severity == "high"Nur während der Geschäftszeiten benachrichtigen
hour >= 9 && hour < 17 && dayOfWeek >= 1 && dayOfWeek <= 5Nach Benutzertyp filtern
userType == "admin" || userRole == "supervisor"Anfrageursprung überprüfen
header["origin"] == "https://trusted-site.com" || header["referer"].includes("trusted-domain.com")Schwellenwertüberschreitungen überwachen
metricValue > threshold && isMonitoring == trueDurch den effektiven Einsatz von Bedingungen können Sie den Benachrichtigungslärm reduzieren und sicherstellen, dass Abonnenten nur Warnungen erhalten, die für sie relevant und umsetzbar sind.
Vorlagen
Meistern Sie das Vorlagensystem von Echobell, um dynamische, informative Benachrichtigungen zu erstellen. Vollständiger Leitfaden zu Variablensubstitution, Ausdrücken, Operatoren, Systemvariablen und Best Practices für Benachrichtigungsvorlagen.
Entwickler
Umfassender Leitfaden für Entwickler mit Echobell und beliebten Tools und Plattformen. Integrieren Sie Grafana, Prometheus, GitHub Actions, Home Assistant, UptimeRobot und mehr für sofortige mobile Benachrichtigungen oder Telefonanrufe bei kritischen Ereignissen.