NovinkaZverejnili sme 50+ Laravel balíkov ako open source
Custom AI apps, agents and automation — Roundly ConsultingRoundly
Všetky balíky
Alerts for Laravel

Fasáda Health

RoundlyConsulting\Alerts\Facades\Health je odporúčaný vstupný bod a jej alias Health sa objaví automaticky. Má štyri časti: register kontrol, handle obmedzený na jedného vlastníka, prístup k údržbovým oknám a metódy, ktoré pracujú naprieč všetkými vlastníkmi:

use RoundlyConsulting\Alerts\Checks\DatabaseCheck;
use RoundlyConsulting\Alerts\Facades\Health;

// The check registry
Health::check(DatabaseCheck::make('mysql'));
Health::checks([DiskUsageCheck::class, MemoryUsageCheck::class]);
Health::define('orders-flowing', fn () => Order::where('created_at', '>=', now()->subHour())->exists());
Health::all();                               // Collection<string, Check>
Health::find('disk_usage_check');            // ?Check

// Everything scoped to one owner
Health::for($team)->monitor(DatabaseCheck::class)->everyFiveMinutes()->save();
Health::for($team)->schedule($data);         // from a ScheduleHealthCheckData
Health::for($team)->run(DatabaseCheck::class);
Health::for($team)->run('orders-flowing');   // by key, e.g. an inline check
Health::for($team)->report(['critical']);
Health::for($team)->status();
Health::for($team)->monitors();
Health::for($team)->unmonitor(DatabaseCheck::class);

// Maintenance windows
Health::silences()->mute('db', until: now()->addHour(), for: $team, reason: 'upgrade');
Health::silences()->unmute('db', for: $team);
Health::silences()->isMuted('db');
Health::silences()->active($team);

// Across every owner
Health::report();
Health::status();
Health::runDue();                            // what alerts:perform-health-checks calls
Health::prune(14);                           // what alerts:prune-runs calls
Health::routes();                            // the opt-in JSON endpoint

Priame metódy

MetódaVraciaČo robí
check(string|object $check)HealthManagerZaregistruje jednu triedu alebo inštanciu kontroly. Čokoľvek, čo nerozširuje Check, vyhodí InvalidHealthCheck.
checks(array $checks)HealthManagerZaregistruje viacero kontrol naraz.
define(string $key, Closure $callback)PendingCheckDefinuje inline kontrolu cez closure (pozri Inline kontroly cez closure).
all()Collection<string, Check>Všetky registrované kontroly podľa kľúča.
find(string $key)?CheckJedna registrovaná kontrola alebo null.
for(Model $owner)NotifiableHealthHandle obmedzený na jedného vlastníka (ďalšia tabuľka).
report(?array $tags = null)HealthReportReport všetkých naplánovaných kontrol, voliteľne filtrovaný podľa tagov.
status(?array $tags = null)StatusSúhrnný stav overall() z tohto reportu.
silences()SilencesPrístup k údržbovým oknám (tabuľka nižšie).
runDue()intOdošle nakonfigurovaný job pre každú naplánovanú kontrolu so splatným cronom; vráti ich počet.
prune(?int $days = null)intZmaže históriu behov staršiu ako $days (predvolene history.retention_days); vráti počet zmazaných behov.
routes(?string $uri = null)RouteZaregistruje voliteľný JSON endpoint so stavom.

Health::for($owner)

Všetky operácie obmedzené na jeden model vlastníka. Handle je bezpečnostná hranica: naplánovaný riadok, ktorý patrí inému vlastníkovi, odmietne s InvalidHealthCheck.

MetódaVraciaČo robí
run(string|Check|HealthCheck $check)CheckResultSpustí kontrolu hneď so všetkými účinkami — alert, notifikácie, história. Registrovaný kľúč, trieda alebo inštancia bežia cez naplánovaný riadok vlastníka, inak cez riadok na požiadanie, ktorý sa nikdy neplánuje; riadok musí patriť vlastníkovi, inak InvalidHealthCheck.
report(?array $tags = null)HealthReportReport tohto vlastníka, voliteľne filtrovaný podľa tagov.
status(?array $tags = null)StatusSúhrnný stav tohto vlastníka.
monitor(string $check)PendingScheduledCheckFluentné plánovanie pre triedu Check alebo registrovaný kľúč (kľúč inline kontroly začne od volieb z define()); save() overí cron a vráti riadok HealthCheck.
schedule(ScheduleHealthCheckData $data)HealthCheckNaplánuje kontrolu z DTO.
unmonitor(string|Check|HealthCheck $check)intSoft-delete plánov tohto vlastníka pre kontrolu alebo jedného vlastného riadka; riadok iného vlastníka vyhodí InvalidHealthCheck.
monitors()Collection<int, HealthCheck>Plány tohto vlastníka, od najstaršieho — riadky na požiadanie v zozname nie sú.

Metódy monitorCheck(), monitor() a createHealthCheck() z traitu UsesHealthChecks sú skratky nad Health::for($this), takže sa správajú presne ako volania fasády — a Health::fake() ich tiež zaznamená (pozri Modely vlastníkov).

Health::silences()

Údržbové okná. Kľúč je kľúč kontroly, tag alebo * pre všetko; for: obmedzí stlmenie na jedného vlastníka (pozri Údržbové okná a stlmenie):

MetódaVraciaČo robí
mute(string $key, ?CarbonInterface $until = null, ?Model $for = null, ?string $reason = null)AlertSilenceStlmí kľúč kontroly, tag alebo *, voliteľne do určeného času a/alebo pre jedného vlastníka.
unmute(string $key, ?Model $for = null)intZruší globálne stlmenia kľúča, alebo len tie obmedzené na $for; vráti ich počet.
isMuted(string $key, ?Model $for = null)boolČi práve platí stlmenie presne pre tento kľúč. Pri vypnutom silence v konfigurácii vždy false.
active(?Model $for = null)Collection<int, AlertSilence>Stlmenia platné teraz: všetky, alebo globálne plus tie obmedzené na $for.

Buildery

  • Health::for($owner)->monitor($check) vráti PendingScheduledCheck — predvoľby frekvencie, obmedzenie, prahy, tagy, smerovanie, eskalácia a meta, potom save() (pozri Plánovanie kontrol). Pri kľúči inline kontroly začne od volieb deklarovaných v define().
  • Health::define($key, $closure) vráti PendingCheck pre názov, notifikáciu a voľby inline kontroly (pozri Inline kontroly cez closure).

V testoch Health::fake() nahradí celé toto rozhranie zaznamenávajúcim fake (pozri Testovanie). Ak uprednostňujete explicitnú závislosť alebo jednoúčelové triedy, pozrite DI a akcie.

Prejavte 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 kryptomien

Odoslaní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.