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

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 as stored
$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 databáze — dostupnosť dvomi počtami, p95 načítaním jedného riadka na pozícii nearest-rank —, takže história sa nikdy nenačíta do pamäte. Bez zadaného obdobia pokrývajú celú históriu.
  • Stavový report ich nevolá: vlastné štatistiky pre všetky riadky počíta naraz, pevným počtom dopytov, za obdobie zadané cez since:, a pri riadku bez behu v tomto období vráti null namiesto 100 a 0 (pozri Stavové reporty a health endpoint).

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=30
use RoundlyConsulting\Alerts\Facades\Health;

Health::prune();    // older than alerts.history.retention_days; returns the number deleted
Health::prune(7);   // older than 7 days
Health::prune(0);   // throws InvalidRetention — below 1 day would delete the whole history

Bez --days (či argumentu s počtom dní) použije history.retention_days (predvolene 30). --days musí byť celé číslo aspoň 1: 0, -1, abc či 1.5 vypíšu chybu, skončia nenulovým kódom a nič nezmažú a Health::prune() s menej ako 1 dňom vyhodí InvalidRetention. Nastavením history.enabled na false prestanete behy zapisovať aj plánovať prečistenie — report potom ukazuje dostupnosť aj p95 ako null, zatiaľ čo uptimePercentage() a p95LatencyMs() vracajú 100.0 a 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 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.