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