- OperationalAlert: Log (Kanal monitoring) immer, Mail an MONITORING_ALERT_EMAIL (Standard EXCEPTION_MAIL), optional ntfy; gleiche Meldung hoechstens einmal pro Stunde - Kernel: onFailure fuer alle geplanten Aufgaben (auch kuenftige) - AppServiceProvider: Queue::failing - withoutOverlapping mit kurzen Sperrdauern (10-60 Min.) statt 24 h Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
53 lines
1.9 KiB
PHP
53 lines
1.9 KiB
PHP
<?php
|
|
|
|
return [
|
|
|
|
/*
|
|
|--------------------------------------------------------------------------
|
|
| Health-Endpunkt und Scheduler-Herzschlag
|
|
|--------------------------------------------------------------------------
|
|
|
|
|
| `/health` antwortet nur mit gültigem Token (Bearer-Header oder
|
|
| `?token=`); ohne konfiguriertes Token gibt es den Endpunkt nicht (404).
|
|
| Der Scheduler schreibt jede Minute einen Herzschlag; bleibt er aus, ist
|
|
| der Cron-Eintrag weg oder der Server hängt. Dieselben Prüfungen zeigt
|
|
| der Systemstatus im Sysadmin-Bereich.
|
|
|
|
|
*/
|
|
|
|
'health' => [
|
|
'token' => env('MONITORING_HEALTH_TOKEN'),
|
|
'queue_backlog_critical_seconds' => (int) env('MONITORING_QUEUE_BACKLOG_SECONDS', 300),
|
|
'disk_min_free_percent' => (float) env('MONITORING_DISK_MIN_FREE_PERCENT', 10),
|
|
'failed_jobs_window_hours' => 24,
|
|
],
|
|
|
|
/*
|
|
|--------------------------------------------------------------------------
|
|
| Betriebs-Alerts
|
|
|--------------------------------------------------------------------------
|
|
|
|
|
| Fehlgeschlagene geplante Aufgaben und Queue-Jobs: immer `critical` ins
|
|
| Log (Kanal monitoring), dazu Best-Effort-Mail und optional ntfy-Push.
|
|
| Gleiche Meldungen gehen höchstens einmal je `throttle_minutes` raus.
|
|
|
|
|
*/
|
|
|
|
'alerts' => [
|
|
'enabled' => (bool) env('MONITORING_ALERTS_ENABLED', true),
|
|
'mail_to' => env('MONITORING_ALERT_EMAIL', env('EXCEPTION_MAIL', 'exception@adametz.media')),
|
|
'throttle_minutes' => (int) env('MONITORING_ALERT_THROTTLE_MINUTES', 60),
|
|
'ntfy' => [
|
|
'url' => env('MONITORING_NTFY_URL'),
|
|
'topic' => env('MONITORING_NTFY_TOPIC'),
|
|
'token' => env('MONITORING_NTFY_TOKEN'),
|
|
'priority' => (int) env('MONITORING_NTFY_PRIORITY', 4),
|
|
],
|
|
],
|
|
|
|
'scheduler' => [
|
|
'heartbeat_warn_minutes' => 3,
|
|
'heartbeat_critical_minutes' => 10,
|
|
],
|
|
|
|
];
|