História behov, dostupnosť a latencia
Každá vykonaná kontrola zapíše jeden nemenný HealthCheckRun (stav + skutočná latencia), dostupný cez model HealthCheck:
$check = $team->healthChecks()->first();
$check->runs(); // HasMany, newest first
$check->latestRun(); // ?HealthCheckRun
$check->uptimePercentage(now()->subDay()); // % of non-alertable runs in the window
$check->p95LatencyMs(now()->subDay()); // 95th-percentile duration in ms$run = $check->latestRun();
$run->status; // Status::Ok
$run->duration_ms; // wall-clock latency of check()
$run->message; // ?string
$run->meta; // the result meta
$run->ran_at; // Carbon- Zapisujú sa aj behy skipped a počítajú sa ako dostupné.
- uptimePercentage() je podiel behov, ktorých stav nevyžaduje alert, zaokrúhlený na dve desatinné miesta. Bez histórie vráti 100.0.
- p95LatencyMs() je 95. percentil duration_ms metódou nearest-rank. Bez histórie vráti 0.
- Obe sa počítajú v PHP, takže sa správajú rovnako na SQLite, MySQL aj PostgreSQL. Bez zadaného obdobia pokrývajú celú históriu — tak ich používa aj stavový report.
Uchovávanie
Starú históriu maže alerts:prune-runs, ktorý sa pri zapnutej histórii plánuje automaticky denne, alebo z kódu Health::prune():
php artisan alerts:prune-runs --days=30use RoundlyConsulting\Alerts\Facades\Health;
Health::prune(); // older than alerts.history.retention_days; returns the number deleted
Health::prune(7); // older than 7 daysBez --days (či argumentu s počtom dní) použije history.retention_days (predvolene 30). Nastavením history.enabled na false prestanete behy zapisovať aj plánovať prečistenie — dostupnosť potom ukazuje 100 a p95 hodnotu 0.
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.