Databázová schéma a typy kľúčov
Balík používa štyri tabuľky:
| Tabuľka | Stĺpce | Poznámka |
|---|---|---|
health_checks | id, notifiable_type + notifiable_id, health_check, frequency (nullable), max_attempts, decay_minutes, consecutive_failures, consecutive_successes, tags (json), meta (json), timestamps, deleted_at | Jeden 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. |
alerts | id, notifiable_type + notifiable_id, health_check_id, status, escalation_level, message (text), meta (json), triggered_at, recovered_at, open_slot, timestamps, deleted_at | Jeden 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_silences | id, key, notifiable_type + notifiable_id (nullable), reason, starts_at, ends_at, timestamps | Zá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_runs | id, health_check_id, status, duration_ms, message (text), meta (json), ran_at | Jeden 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_type | Stĺpce vlastníka | Použite, keď vaši vlastníci… |
|---|---|---|
bigint | morphs() — unsignedBigInteger id | používajú predvolené autoinkrementálne kľúče Laravelu (predvolené) |
uuid | uuidMorphs() | používajú HasUuids |
ulid | ulidMorphs() | používajú HasUlids |
# Set before you run the migrations — the notifiable columns are typed from it
ALERTS_KEY_TYPE=uuidVš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 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.