---
title: "Konfigurácia — Alerts for Laravel | Roundly"
description: "Všetky kľúče konfigurácie s predvolenými hodnotami a env premennými — modely, typ kľúča, job, plánovanie, endpoint, stlmenie, história, eskalácia."
url: https://roundly-consulting.com/sk/open-source/navody/alerts-for-laravel/konfiguracia
language: sk
---

[Všetky balíky](https://roundly-consulting.com/sk/open-source.md)

[Alerts for Laravel](https://roundly-consulting.com/sk/open-source/navody/alerts-for-laravel.md)

# Konfigurácia

Publikovaný config/alerts.php bez blokov komentárov:

```php
<?php

declare(strict_types=1);

use RoundlyConsulting\Alerts\Alert;
use RoundlyConsulting\Alerts\AlertSilence;
use RoundlyConsulting\Alerts\HealthCheck;
use RoundlyConsulting\Alerts\HealthCheckRun;
use RoundlyConsulting\Alerts\Jobs\HealthCheckJob;

return [
    'health-check' => HealthCheck::class,

    // Check classes (or instances) registered globally on boot.
    'checks' => [
        // RoundlyConsulting\Alerts\Checks\DatabaseCheck::class,
    ],

    'alert' => Alert::class,

    // Key type of your notifiable (owner) models: bigint | uuid | ulid
    'key_type' => env('ALERTS_KEY_TYPE', 'bigint'),

    'job' => HealthCheckJob::class,

    // Auto-register the perform command on the scheduler.
    'schedule' => [
        'enabled' => env('ALERTS_SCHEDULE', true),
        'frequency' => env('ALERTS_SCHEDULE_FREQUENCY', 'everyMinute'),
    ],

    // Opt-in JSON status endpoint registered via Health::routes().
    'route' => [
        'uri' => env('ALERTS_ROUTE_URI', 'health'),
        'name' => 'alerts.health',
        'details' => env('ALERTS_ROUTE_DETAILS', false),
    ],

    // Master switch for maintenance-window muting + the silence model.
    'silence' => env('ALERTS_SILENCE', true),
    'silence-model' => AlertSilence::class,
    'silence-retention' => env('ALERTS_SILENCE_RETENTION', 7),

    // Run history + latency tracking, retention, and the run model.
    'history' => [
        'enabled' => env('ALERTS_HISTORY', true),
        'retention_days' => env('ALERTS_HISTORY_RETENTION', 30),
        'model' => HealthCheckRun::class,
    ],

    // Store (and mail) a thrown exception's message and frames — off by default.
    'store_exception_details' => env('ALERTS_STORE_EXCEPTION_DETAILS', false),

    // Optional global default escalation policy (data-only).
    'escalation' => [
        // 1 => 'owner', 3 => 'team', 5 => 'oncall',
    ],
];
```

## Všetky kľúče

| Kľúč | Predvolené | Env | Účel |
| --- | --- | --- | --- |
| `health-check` | HealthCheck::class | — | Model, ktorý ukladá naplánované kontroly. |
| `checks` | \[\] | — | Triedy (alebo inštancie) kontrol registrované pri štarte. |
| `alert` | Alert::class | — | Model, ktorý zaznamenáva alerty. |
| `key_type` | bigint | ALERTS\_KEY\_TYPE | Typ stĺpcov notifiable\_id v tabuľkách health\_checks, alerts a alert\_silences — bigint, uuid alebo ulid (bez ohľadu na veľkosť písmen; iná hodnota vyhodí InvalidConfigurationException). Číta sa pri behu migrácií, preto ho nastavte vopred. |
| `job` | HealthCheckJob::class | — | Job vo fronte, ktorý sa odošle pre každú splatnú kontrolu. Prázdna hodnota sa považuje za nenastavenú a použije sa job z balíka. |
| `schedule.enabled` | true | ALERTS\_SCHEDULE | Automaticky zaregistruje alerts:perform-health-checks v plánovači, s onOneServer() a 5-minútovým zámkom proti prekrývaniu. Prečistenie sa pri zapnutej histórii plánuje v každom prípade. |
| `schedule.frequency` | everyMinute | ALERTS\_SCHEDULE\_FREQUENCY | Metóda plánovača pre príkaz: everyMinute, everyTwoMinutes, everyThreeMinutes, everyFourMinutes, everyFiveMinutes, everyTenMinutes, everyFifteenMinutes, everyThirtyMinutes, hourly, everyOddHour, everyTwoHours, everyThreeHours, everyFourHours, everySixHours, daily, twiceDaily, weekly, monthly, quarterly alebo yearly. Prázdna hodnota sa považuje za nenastavenú (everyMinute); iný názov vyhodí výnimku pri zostavení plánovača. Aj hrubší interval spustí každú kontrolu: každý tik zaradí kontroly, ktoré sa stali splatnými od predchádzajúceho. |
| `route.uri` | health | ALERTS\_ROUTE\_URI | URI voliteľného JSON endpointu so stavom. Prázdna hodnota sa považuje za nenastavenú a použije sa health — nikdy nie koreň webu; hodnota, ktorá nie je reťazec, vyhodí výnimku. |
| `route.name` | alerts.health | — | Názov routy stavového endpointu. Prázdna hodnota sa považuje za nenastavenú a použije sa predvolený názov; hodnota, ktorá nie je reťazec, vyhodí výnimku. |
| `route.details` | false | ALERTS\_ROUTE\_DETAILS | Endpoint vypíše pri každej kontrole aj message, tags, last\_alert\_at a muted — presne vymedzený zoznam: surové meta alertu sa nevypíšu nikdy. Predvolene vypnuté: endpoint je bez autentifikácie, kým nepridáte middleware, a pri zapnutom store\_exception\_details môže uložená správa obsahovať surový text výnimky. |
| `silence` | true | ALERTS\_SILENCE | Hlavný vypínač stlmenia počas údržby; false ignoruje všetky stlmenia. Kým je zapnutý, alerts:prune-silences sa plánuje denne. |
| `silence-model` | AlertSilence::class | — | Model, ktorý ukladá záznamy o stlmení. |
| `silence-retention` | 7 | ALERTS\_SILENCE\_RETENTION | Počet dní, počas ktorých sa skončené stlmenie uchováva, kým ho alerts:prune-silences zmaže. Musí to byť celé číslo, aspoň 1; prázdna hodnota sa považuje za nenastavenú (7); čokoľvek iné vyhodí výnimku s názvom kľúča. |
| `history.enabled` | true | ALERTS\_HISTORY | Zaznamenávať každý beh (stav + latencia) a denne plánovať alerts:prune-runs — aj pri vypnutom schedule.enabled. |
| `history.retention_days` | 30 | ALERTS\_HISTORY\_RETENTION | Počet dní histórie behov, kým ich alerts:prune-runs zmaže. Musí to byť celé číslo, aspoň 1; prázdna hodnota sa považuje za nenastavenú (30); čokoľvek iné (five, 5.5, 0) namiesto prečistenia vyhodí výnimku, takže preklep nikdy nezmaže históriu behov. |
| `history.model` | HealthCheckRun::class | — | Model, ktorý zaznamenáva behy. |
| `store_exception_details` | false | ALERTS\_STORE\_EXCEPTION\_DETAILS | Ukladať — a posielať e-mailom — správu a zásobník volaní vyhodenej výnimky aj chybu, ktorú zachytila vstavaná kontrola, pri behoch a alertoch. Predvolene vypnuté: môžu obsahovať hostiteľov, SQL aj prístupové údaje, preto uložený výsledok uvádza len triedu výnimky a samotná výnimka namiesto toho putuje do vášho exception handlera. |
| `escalation` | \[\] | — | Globálna predvolená eskalačná politika (prah ⇒ skupina) pre kontroly, ktoré nemajú vlastnú. |

## Prostredie

```bash
ALERTS_KEY_TYPE=bigint
ALERTS_SCHEDULE=true
ALERTS_SCHEDULE_FREQUENCY=everyMinute
ALERTS_ROUTE_URI=health
ALERTS_ROUTE_DETAILS=false
ALERTS_SILENCE=true
ALERTS_SILENCE_RETENTION=7
ALERTS_HISTORY=true
ALERTS_HISTORY_RETENTION=30
ALERTS_STORE_EXCEPTION_DETAILS=false
```

Prepínače schedule.enabled, route.details, silence, history.enabled a store\_exception\_details prijímajú boolean hodnoty aj bežné env reťazce: 1, true, on a yes ich zapnú, 0, false, off a no vypnú. Prázdna hodnota (ALERTS\_SCHEDULE=) sa považuje za nenastavenú, takže prepínač si ponechá predvolenú hodnotu (route.details a store\_exception\_details vypnuté, ostatné zapnuté). Akákoľvek iná hodnota vyhodí InvalidConfigurationException s názvom kľúča aj hodnoty, takže preklep prepínač nikdy potichu neprepne.

Rovnako prísne sa čítajú aj všetky ostatné nastavenia: nenastavený kľúč — chýbajúci, null alebo prázdny (KEY= v .env) — použije predvolenú hodnotu a akákoľvek iná neplatná hodnota vyhodí InvalidConfigurationException s názvom kľúča. Nič sa potichu nenahrádza.

V poli checks uvádzajte len názvy tried. Nakonfigurované inštancie, napríklad DatabaseCheck::make('mysql'), radšej registrujte zo service providera — objekty v konfiguračnom súbore znemožnia serializáciu cez php artisan config:cache.

## Vlastné modely

Každý kľúč modelu môže ukazovať na vašu podtriedu modelu z balíka. Každý sa rieši cez jediné miesto, takže vymenený model sa použije všade — vo vzťahoch, akciách, príkazoch aj v reporte:

```php
namespace App\Models;

use RoundlyConsulting\Alerts\HealthCheck as BaseHealthCheck;

class HealthCheck extends BaseHealthCheck
{
    // your own scopes, relations, observers…
}
```

```php
// config/alerts.php
'health-check' => App\Models\HealthCheck::class,
'alert' => App\Models\Alert::class,
'silence-model' => App\Models\AlertSilence::class,
'history' => [
    // …
    'model' => App\Models\HealthCheckRun::class,
],
```

Nenastavený kľúč — chýbajúci, null alebo prázdny — použije model z balíka. Čokoľvek iné musí byť model z balíka alebo jeho podtrieda — balík sa spolieha na jeho metódy a scopes —, inak vyhodí InvalidConfigurationException s názvom kľúča. Cudzia trieda sa nikdy potichu nenahradí.

## Vlastný job

Kľúč job určuje job vo fronte, ktorý sa odošle pre každú splatnú kontrolu. Dostane riadok HealthCheck ako jediný argument; pribalený HealthCheckJob je final, preto napíšte vlastný job a riadok spustite cez Health::for($row->notifiable)->run($row) — napríklad aby monitoring bežal na samostatnej fronte. Cesta, ktorá za tým stojí, RunHealthCheckAction, je interná; priamo ju nevolajte:

```php
namespace App\Jobs;

use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
use RoundlyConsulting\Alerts\Facades\Health;
use RoundlyConsulting\Alerts\HealthCheck;

class MonitoringJob implements ShouldQueue
{
    use Dispatchable;
    use InteractsWithQueue;
    use Queueable;
    use SerializesModels;

    public function __construct(public HealthCheck $healthCheck)
    {
        $this->onQueue('monitoring');
    }

    public function handle(): void
    {
        // Runs this scheduled row as-is, through the same pipeline as HealthCheckJob.
        Health::for($this->healthCheck->notifiable)->run($this->healthCheck);
    }
}

// config/alerts.php
'job' => App\Jobs\MonitoringJob::class,
```

## 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](https://roundly-consulting.com/sk/podporte-nas.md)

Odoslaním daru súhlasíte s našimi [podmienkami prijímania darov](https://roundly-consulting.com/sk/podmienky-darov.md).

[Podporte našu open-source prácu (otvorí sa v novej karte)](https://donate.stripe.com/dRmeVe8FX5PF1Qd9pXcEw00) [Pridajte sa k nám na Patreone (otvorí sa v novej karte)](https://www.patreon.com/cw/roundly)

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

[Ponuka do 48 hodín](https://roundly-consulting.com/sk/kontakt.md) [Prezrieť všetky balíky](https://roundly-consulting.com/sk/open-source/navody/alerts-for-laravel.md)
