Inštalácia
Pridajte balík. Service provider aj alias fasády Health sa objavia automaticky — nič neregistrujete ručne:
composer require roundly-consulting/alerts-for-laravelAk modely, ktoré budú vlastniť kontroly, používajú kľúče UUID alebo ULID, najprv nastavte ALERTS_KEY_TYPE — stĺpce vlastníka sa typujú pri behu migrácií (pozri Databázová schéma a typy kľúčov). Potom publikujte a spustite migrácie:
php artisan vendor:publish --tag="alerts-migrations"
php artisan migrateMigrácie len na publikovanie
Balík svoje migrácie nikdy neregistruje, takže php artisan migrate spustí presne tých šesť súborov, ktoré ste publikovali, v poradí publikovania: najprv health_checks, potom alerts, alert_silences a health_check_runs a nakoniec dve doplňujúce migrácie z verzie 1.2, ktoré pridajú identity_hash do health_checks a alert_silences. Opakované publikovanie je idempotentné — súbory prepíše na mieste, nevytvorí druhú kópiu.
Prechod na verziu 1.2
Verzia 1.2 pridáva dve migrácie, ktoré idú len dopredu. add_identity_hash_to_health_checks_table pridá stĺpec health_checks.identity_hash s možnosťou null a unikátnym indexom, bez dopĺňania hodnôt. add_identity_hash_to_alert_silences_table pridá rovnaký stĺpec alert_silences.identity_hash; najprv však zlúči okamžité stlmenia, ktoré sa doteraz nahromadili pre rovnaký kľúč a rozsah, do jedného — ponechá najnovší riadok, bez konca, ak bol bez konca niektorý z nich, inak do najneskoršieho konca, s najnovším dôvodom —, takže sa nezmení, čo je stlmené. Publikujte a migrujte znova:
php artisan vendor:publish --tag="alerts-migrations"
php artisan migrateAk ste niektorú publikovanú migráciu balíka upravili, vendor:publish ju už nerozpozná a publikoval by druhú kópiu vytváracích migrácií — dva nové súbory preto skopírujte do database/migrations ručne. Na MySQL vyžaduje verzia 1.2 MySQL 8.0 alebo novší.
- Health::report() teraz číta muted z platných stlmení a pri kontrole bez behov vracia uptime a p95LatencyMs ako null namiesto 100.0 a 0 (pozri Stavové reporty a health endpoint).
- Opätovné stlmenie rovnakého kľúča v rovnakom rozsahu aktualizuje existujúce stlmenie namiesto vloženia ďalšieho (pozri Údržbové okná a stlmenie).
- Kontrola, ktorá vyhodí výnimku, už neukladá ani neposiela e-mailom správu a zásobník volaní výnimky — tie putujú do vášho exception handlera (pozri Časové limity a chyby).
Voliteľne: konfigurácia a preklady
php artisan vendor:publish --tag="alerts-config"
php artisan vendor:publish --tag="alerts-translations"Konfigurácia sa zlučuje z balíka, takže kľúče napojené na env fungujú aj bez publikovania. Správy kontrol aj predvolená notifikácia o zlyhaní sú v angličtine a slovenčine a Laravel použije texty podľa jazyka aplikácie — preklady (do lang/vendor/alerts) publikujte, len ak chcete niektorý text upraviť alebo pridať ďalší jazyk.
Rýchly štart
Zaregistrujte kontrolu, pripojte ju k modelu vlastníka a zvyšok nechajte na plánovač:
// app/Providers/AppServiceProvider.php — boot()
use RoundlyConsulting\Alerts\Checks\DatabaseCheck;
use RoundlyConsulting\Alerts\Facades\Health;
Health::check(DatabaseCheck::make('mysql'));
// Anywhere — attach the check to an owner model (see Owner models)
Health::for($team)->monitor(DatabaseCheck::class)
->everyFiveMinutes()
->throttle(maxAttempts: 1, decayMinutes: 60)
->save();Balík stojí na troch stavebných prvkoch:
- Check — trieda, ktorú napíšete (alebo vstavaná, prípadne inline closure); vykoná kontrolu a vráti CheckResult.
- HealthCheck — riadok v databáze, ktorý plánuje Check podľa cronu pre jedného vlastníka.
- Alert — riadok, ktorý vznikne pri zlyhaní kontroly, s časmi triggered_at a recovered_at a so správou a meta výsledku.
Jediný príkaz Artisan, automaticky zaregistrovaný v plánovači na každú minútu, odošle do fronty job pre každú splatnú kontrolu. Plánovač Laravelu a queue worker preto musia bežať (pozri Spúšťanie kontrol).
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.