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

Databázová schéma a typy kľúčov

Balík používa štyri tabuľky:

TabuľkaStĺpcePoznámka
health_checksid, notifiable_type + notifiable_id, health_check, frequency (nullable), max_attempts, decay_minutes, consecutive_failures, consecutive_successes, tags (json), meta (json), timestamps, deleted_atJeden riadok pre každú naplánovanú kontrolu každého vlastníka. Null vo frequency označuje riadok na požiadanie, ktorý vytvorí run() — plánovač ho nikdy nespustí. Soft deletes.
alertsid, notifiable_type + notifiable_id, health_check_id, status, escalation_level, message (text), meta (json), triggered_at, recovered_at, open_slot, timestamps, deleted_atJeden riadok pre každý incident — kým je otvorený, recovered_at je null. open_slot má hodnotu 1, kým je alert otvorený, a po obnove null; unikátny index (health_check_id, open_slot) pripustí pre kontrolu len jeden otvorený alert. Soft deletes; index na vlastníka + kontrolu.
alert_silencesid, key, notifiable_type + notifiable_id (nullable), reason, starts_at, ends_at, timestampsZáznamy o stlmení: kľúč kontroly, tag alebo *, voliteľne len pre jedného vlastníka. Null v starts_at znamená platnosť ihneď, null v ends_at platnosť do zrušenia.
health_check_runsid, health_check_id, status, duration_ms, message (text), meta (json), ran_atJeden nemenný riadok pre každý vykonaný beh, bez timestamps. Index na kontrolu + ran_at.

Tabuľky alerts a health_check_runs majú cudzí kľúč na health_checks s kaskádovým mazaním — preto sa health_checks publikuje ako prvá. HealthCheck a Alert používajú soft deletes, takže kaskáda sa uplatní pri trvalom zmazaní (forceDelete).

Typ kľúča vlastníka

Vlastníci sú polymorfní (notifiable_type + notifiable_id), takže kontroly môže vlastniť akýkoľvek Eloquent model. key_type určuje typ stĺpca notifiable_id v tabuľkách health_checks, alerts a alert_silences:

key_typeStĺpce vlastníkaPoužite, keď vaši vlastníci…
bigintmorphs() — unsignedBigInteger idpoužívajú predvolené autoinkrementálne kľúče Laravelu (predvolené)
uuiduuidMorphs()používajú HasUuids
ulidulidMorphs()používajú HasUlids
# Set before you run the migrations — the notifiable columns are typed from it
ALERTS_KEY_TYPE=uuid

Všetky modely vlastníkov musia mať rovnaký typ kľúča. Na veľkosti písmen nezáleží; chýbajúci alebo prázdny kľúč znamená bigint a nerozpoznaná hodnota pri behu migrácií vyhodí InvalidConfigurationException — nič sa nenahrádza. Vlastné tabuľky balíka majú vždy autoinkrementálne id.

Kde sú uložené voľby

Voľby monitoringu, ktoré nemajú vlastný stĺpec — failAfter, recoverAfter, timeout, smerovanie kanálov a eskalačná politika — sa ukladajú do json stĺpca meta pod rezervovanými kľúčmi (pozri Plánovanie kontrol), vedľa vašich vlastných meta údajov.

Riadky na požiadanie a otvorené alerty

Keď kontrolu spustíte hneď pre vlastníka, ktorý ju nemá naplánovanú, vznikne riadok na požiadanie s frekvenciou null. Medzi ručnými behmi uchováva počítadlá, históriu a alerty tohto vlastníka pre danú kontrolu, plánovač ho však nikdy nespustí (pozri Spúšťanie kontrol). Unikátny index (health_check_id, open_slot) v tabuľke alerts zaručí najviac jeden otvorený alert na kontrolu, aj keď sa dva zlyhané behy prekrývajú. Správy behov a alertov sú stĺpce typu text a ukladá sa z nich najviac 1000 znakov.

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.