---
title: "Eskalačné politiky — Alerts for Laravel | Roundly"
description: "Upozorňujte širšie skupiny, keď zlyhanie trvá — politiky prah ⇒ skupina, pomenované skupiny na vlastníkovi, globálny default a udalosti práve raz."
url: https://roundly-consulting.com/sk/open-source/navody/alerts-for-laravel/eskalacia
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)

# Eskalačné politiky

Keď zlyhanie trvá, upozorňujte širšie publikum. Mapu prah ⇒ skupina deklarujete cez escalate(\[...\]): kľúče sú počty po sebe idúcich zlyhaní, hodnoty pomenované skupiny príjemcov, ktoré rieši model vlastníka:

```php
Health::for($team)->monitor(DatabaseCheck::class)
    ->everyMinute()
    ->escalate([1 => 'owner', 3 => 'team', 5 => 'oncall'])
    ->save();
```

```php
use Closure;
use Illuminate\Database\Eloquent\Model;
use RoundlyConsulting\Alerts\Interfaces\HasNotifiablesForAlerts;
use RoundlyConsulting\Alerts\Traits\UsesHealthChecks;

class Team extends Model implements HasNotifiablesForAlerts
{
    use UsesHealthChecks; // provides a default notifiablesForAlertGroup()

    public function forEachNotifiableForAlerts(Closure $callback): void { /* default group */ }

    // Override to map named groups to real notifiables:
    public function notifiablesForAlertGroup(string $group): iterable
    {
        return match ($group) {
            'owner'  => [$this->owner],
            'team'   => $this->members,
            'oncall' => $this->onCallEngineers(),
            default  => $this->members,
        };
    }
}
```

Trait ResolvesAlertGroups, pribalený v UsesHealthChecks, vráti pre akýkoľvek názov predvolenú skupinu. Vlastníci teda nepotrebujú žiadnu zmenu, pokiaľ nechcú pomenované skupiny.

Každý prah musí byť celé číslo aspoň 1. escalate() — na monitoringu aj v define() — a ScheduleHealthCheckData odmietnu 0, záporné číslo, názov či zoznam \['owner', 'team'\] (s kľúčmi 0 a 1) výnimkou InvalidHealthCheck, pretože takáto skupina by nikdy nedostala notifikáciu.

## Ako sa úrovne posúvajú

- Úroveň je najvyšší prah, ktorý je menší alebo rovný aktuálnemu počtu po sebe idúcich zlyhaní. Ukladá sa v alerte ako escalation\_level a pri obnove sa vráti na 0.
- Každá novo dosiahnutá úroveň upozorní len svoju skupinu (skupiny). Ak jeden beh preskočí viac prahov — napríklad failAfter(3) s \[1 => 'owner', 3 => 'team'\] — každá skupina medzi nimi dostane notifikáciu raz.
- HealthCheckEscalated($alert, $fromLevel, $toLevel) sa pri každom prechode spustí práve raz. Úroveň sa preberá operáciou compare-and-swap, takže dva prekrývajúce sa behy nikdy neupozornia tú istú úroveň dvakrát.
- S politikou nikto nedostane notifikáciu pred dosiahnutím prvého prahu. Ak má niekoho zastihnúť už prvé zlyhanie s alertom, začnite prahom 1. HealthCheckFailed sa spúšťa pri každom zlyhanom behu.
- Kanály pre úroveň určuje notifyVia(\[...\], level: n), kde n je číslo prahu.

## Globálny default

Kontrola bez vlastnej politiky zdedí globálny default z config('alerts.escalation'), takže môžete nastaviť jednu politiku pre celú aplikáciu a pre jednotlivé kontroly ju prepísať:

```php
// config/alerts.php
'escalation' => [1 => 'owner', 3 => 'team', 5 => 'oncall'],
```

Politika sú len dáta — smerovanie na skutočných ľudí vždy prebieha cez notifiablesForAlertGroup() vlastníka.

## Reakcia na eskaláciu

```php
use Illuminate\Support\Facades\Event;
use RoundlyConsulting\Alerts\Events\HealthCheckEscalated;

Event::listen(function (HealthCheckEscalated $event) {
    logger()->warning('Health check escalated', [
        'check' => $event->alert->healthCheck?->health_check,
        'from' => $event->fromLevel,
        'to' => $event->toLevel,
    ]);
});
```

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