Údržbové okná a stlmenie
Počas nasadenia či údržby potlačte notifikácie o alertoch a behy pritom zapisujte ďalej. Údržbové okná spravuje Health::silences():
use RoundlyConsulting\Alerts\Facades\Health;
Health::silences()->mute('disk_usage_check', until: now()->addMinutes(30), reason: 'db migration');
Health::silences()->isMuted('disk_usage_check'); // true
Health::silences()->unmute('disk_usage_check'); // int: silences lifted
Health::silences()->mute('critical'); // mute a whole tag
Health::silences()->mute('*'); // mute everything
Health::silences()->mute('disk_usage_check', for: $team); // scope the mute to one owner
Health::silences()->unmute('disk_usage_check', for: $team); // lift only that owner's silence- Kľúč je kľúč kontroly, tag alebo * pre všetko. Pri behu je riadok stlmený, keď stlmenie zodpovedá jeho kľúču kontroly, niektorému z efektívnych tagov alebo *.
- until je voliteľné: bez neho stlmenie platí, kým ho nezrušíte. mute() platí okamžite a vráti záznam AlertSilence s voliteľným dôvodom (reason).
- for: obmedzí stlmenie na jedného vlastníka. Stlmenie bez vlastníka platí pre všetkých.
- unmute() zmaže stlmenia pre daný kľúč — pri zadanom for: tie vlastníkove, inak len globálne — a vráti ich počet.
- isMuted() overí aktívne stlmenie presne pre kľúč, ktorý zadáte — kľúč kontroly, tag alebo * — bez rozširovania na tagy či *. Bez vlastníka zodpovedá akémukoľvek stlmeniu daného kľúča; s vlastníkom jeho stlmeniam a globálnym. Pri vypnutom silence v konfigurácii vždy vráti false.
Čo sa deje počas stlmenia
Behy, história aj počítadlá sa udržiavajú a alerty sa naďalej otvárajú a zatvárajú. HealthCheckFailed, HealthCheckRecovered, HealthCheckEscalated a všetky notifikácie sú potlačené. Dotknuté alerty dostanú príznak meta['muted'], takže ich stavový report ukáže ako stlmené. Príznak sa riadi posledným behom, takže zmizne, keď zlyhania pokračujú aj po skončení okna.
Nastavením silence na false v konfigurácii ignorujete všetky stlmenia bez toho, aby ste ich mazali.
Prehľad stlmení
active() vráti stlmenia platné teraz — všetky, alebo globálne plus tie obmedzené na vlastníka. Pre vlastné dopyty má AlertSilence scopes active() a matching(), na ktorých to stojí:
use RoundlyConsulting\Alerts\AlertSilence;
use RoundlyConsulting\Alerts\Facades\Health;
Health::silences()->active(); // Collection<AlertSilence> in force now
Health::silences()->active($team); // global silences + those scoped to $team
// The model scopes behind it, for your own queries:
AlertSilence::query()->active(now())->get();
AlertSilence::query()->matching(['critical'], $team)->exists(); // a 'critical' mute for this team, or a global onePrejavte lásku k open source
Tento balík je zadarmo pod licenciou MIT. Ak vám šetrí čas, jednorazový príspevok alebo členstvo na Patreone nám pomôže ho ďalej udržiavať, testovať a dokumentovať.
Ďalšie spôsoby podpory vrátane kryptomienOdoslaním daru súhlasíte s našimi podmienkami prijímania darov.
Chcete to zabudovať do svojho produktu?
Naše balíky integrujeme do zákazkových Laravel a AI riešení. Napíšte nám, na čom pracujete, a ozveme sa do 48 hodín.