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

Vstavané kontroly

Balík obsahuje fluentné kontroly pre bežné prípady, každú s predvolenou notifikáciou, takže ju nemusíte písať:

use RoundlyConsulting\Alerts\Checks\{CacheCheck, DatabaseCheck, HttpPingCheck, QueueCheck, StorageCheck};
use RoundlyConsulting\Alerts\Facades\Health;

Health::check(DatabaseCheck::make('mysql'));
Health::check(CacheCheck::make('redis'));
Health::check(QueueCheck::make()->onQueue('emails')->maxSize(1000));
Health::check(StorageCheck::make('uploads')->minimumBytes(2 * 1024 ** 3));
Health::check(HttpPingCheck::make('https://api.example.com')->timeout(5)->expectStatus(200)->slowerThan(800));
KontrolaV poriadku, keďVaruje, keďZlyhá, keď
DatabaseChecksa spojenie otvorí—je spojenie nedostupné
CacheChecksa kontrolná hodnota zapíše a prečíta späť—je úložisko nedostupné alebo vráti inú hodnotu
QueueChecksa spojenie podarí získaťfronta presiahne maxSize()sa spojenie nepodarí získať
StorageCheckje voľného miesta dosťmiesto klesne pod varovný prahmiesto klesne pod minimumBytes()
HttpPingCheckpríde očakávaný statusodpoveď je pomalšia než slowerThan()príde neočakávaný status alebo požiadavka vyprší

Voľby a predvolené hodnoty

KontrolaKľúčNastaveniePredvolené
DatabaseCheckdatabase_checkmake(?string $connection), connection(string)database.default; otvorí PDO spojenie
CacheCheckcache_checkmake(?string $store), store(string)cache.default; zapíše alerts:cache-check na 10 sekúnd a prečíta ho späť
QueueCheckqueue_checkmake(?string $connection), connection(string), onQueue(string), maxSize(int)queue.default, predvolená fronta, bez limitu
StorageCheckstorage_checkmake(?string $disk), disk(string), minimumBytes(int), warnBytes(int)filesystems.default; zlyhá pod 1 GB voľného miesta, varuje pod 2× minimom
HttpPingCheckhttp_ping_checkmake(string $url), timeout(int $seconds), expectStatus(int), slowerThan(int $ms)timeout požiadavky 5 sekúnd, očakáva 200, bez limitu latencie
use RoundlyConsulting\Alerts\Checks\QueueCheck;
use RoundlyConsulting\Alerts\Checks\StorageCheck;

Health::check(
    StorageCheck::make('local')
        ->minimumBytes(5 * 1024 ** 3)   // fail below 5 GB free
        ->warnBytes(20 * 1024 ** 3)     // warn below 20 GB free
);

Health::check(QueueCheck::make('redis')->onQueue('default')->maxSize(500));
  • StorageCheck meria voľné miesto v lokálnej koreňovej ceste disku, preto ho nasmerujte na lokálny disk. Bez warnBytes() varuje pod dvojnásobkom minima.
  • timeout() pri HttpPingCheck je timeout HTTP požiadavky. S voľbou timeout() pri plánovaní monitoringu nesúvisí.
  • Každý výsledok nesie užitočné meta: connection, store, size a max_size, free_bytes a minimum_bytes, alebo url, status a latency_ms — a pri zachytenej výnimke aj error.
  • Správy výsledkov pochádzajú z prekladového súboru alerts::checks, takže ich po publikovaní prekladov môžete upraviť.
  • Každá vstavaná kontrola sa registruje pod kľúčom z tabuľky. Ak potrebujete viac inštancií jednej vstavanej kontroly — dve databázy, tri endpointy —, dajte každej vlastný kľúč cez as() (pozri Registrácia kontrol).

Plánovanie vstavanej kontroly

Nakonfigurovanú inštanciu zaregistrujte raz a potom ju naplánujte podľa triedy pre každého vlastníka. Riadok ukladá len kľúč; pri behu prácu vykoná registrovaná inštancia s vašou URL, spojením či prahmi:

// Register the configured instance once, in a service provider…
Health::check(HttpPingCheck::make('https://api.example.com/health')->slowerThan(800));

// …then attach it to every owner that should hear about it.
Health::for($team)->monitor(HttpPingCheck::class)
    ->everyMinute()
    ->failAfter(2)
    ->save();

Inštanciu registrovanú cez as() naplánujete podľa jej kľúča — Health::for($team)->monitor('mysql_database'). Každá vstavaná kontrola posiela pribalenú HealthCheckFailedNotification s dôvodom zlyhania a rešpektuje smerovanie kanálov cez notifyVia() (pozri Notifikácie a obmedzovanie).

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.