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

Registrácia kontrol

Zaregistrujte kontroly, ktoré vaša aplikácia podporuje, zvyčajne v metóde boot() service providera:

use RoundlyConsulting\Alerts\Facades\Health;

Health::check(DiskUsageCheck::class);

// Or register several at once:
Health::checks([
    DiskUsageCheck::class,
    MemoryUsageCheck::class,
]);

// The HealthManager behind the facade is also injectable (see DI and actions):
app(\RoundlyConsulting\Alerts\HealthManager::class)->checks([DiskUsageCheck::class]);

Alebo uveďte názvy tried v konfigurácii — zaregistrujú sa pri štarte balíka:

// config/alerts.php
'checks' => [
    RoundlyConsulting\Alerts\Checks\DatabaseCheck::class,
    App\Health\DiskUsageCheck::class,
],

Registrujte v každom procese

Register žije v pamäti. Webová aplikácia, plánovač aj každý queue worker potrebujú rovnaké registrované kontroly, preto ich registrujte v service provideri alebo v konfigurácii. Keď job z fronty spracúva riadok, ktorého kľúč v danom procese nie je registrovaný, vyhodí InvalidHealthCheck::notRegistered().

Jedna inštancia na kľúč

Kontroly sa ukladajú podľa key(). Každá sa registruje pod kľúčom odvodeným z triedy (database_check, http_ping_check, …) a druhá inštancia s rovnakým kľúčom prvú nahradí. Ak chcete jednou triedou — aj vstavanou — sledovať viac cieľov, dajte každej inštancii vlastný kľúč cez as(). Názov sa odvodí od kľúča:

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

Health::check(DatabaseCheck::make('mysql')->as('mysql_database'));   // name "Mysql Database"
Health::check(DatabaseCheck::make('pgsql')->as('pgsql_database'));

Health::for($team)->monitor('mysql_database')->everyMinute()->save();
Health::for($team)->run('pgsql_database');

Takúto inštanciu plánujte a spúšťajte podľa jej kľúča. Spustenie triedy registrovanej pod viacerými kľúčmi podľa názvu triedy vyhodí InvalidHealthCheck::ambiguous(). Podtrieda, ktorá prepisuje key(), si svoj kľúč určuje sama.

Prehľad registra

use RoundlyConsulting\Alerts\Facades\Health;

Health::all(); // Collection<string, Check> keyed by check key

$check = Health::find('disk_usage_check');

$check->name();        // "Disk Usage Check"
$check->key();         // "disk_usage_check"
$check->description(); // "Perform Disk Usage Check and trigger notification when necessary."
$check->frequencies(); // ['* * * * *' => 'Every Minute', ...]
$check->tags();        // [] unless the class overrides tags()
  • name() — Str::headline z názvu triedy alebo z kľúča zadaného cez as(); key() — názov triedy v snake_case, alebo tento kľúč. Obe môžete vo svojej kontrole prepísať.
  • description() — preložiteľná predvolená veta zostavená z názvu.
  • frequencies() — mapa cron ⇒ popis pre výberové polia: každú minútu, 5 a 10 minút, hodinu, deň, týždeň, mesiac a rok. Popisy prechádzajú cez __(), takže ich môžete preložiť.
  • Health::check() prijme názov triedy aj inštanciu; čokoľvek, čo nerozširuje Check, vyhodí InvalidHealthCheck::doesntExtendBaseCheck().
  • Health::check() aj Health::checks() vracajú manažér, takže registrácie môžete reťaziť.

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.