- sentry/sentry-laravel 4.28; config/sentry.php gehaertet (keine PII, keine Request-Bodys, before_send ErrorReportScrubber) - Handler: Integration::captureUnhandledException, CommandNotFoundException nicht melden - ReportErrorSignals (global): toter interner Link (nach Pfad wegen Catch-all-Route), 403/429 fuer Angemeldete, 419; gedrosselt - Browser: selbst gehostetes SDK (esbuild-Bundle 11.5.0), Loader ohne Build-Schritt und ohne Regex-Lookbehind, in 7 Layouts mit area-Tag - phpunit.xml: DSNs und ntfy-URL leer, CACHE_DRIVER=array (Tests schrieben bisher in den lokalen Datei-Cache) - dev/glitch-tip/README.md mit Instanz, Org, Projekt-IDs, API-Auswertung Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
71 lines
2.6 KiB
PHP
71 lines
2.6 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),
|
|
],
|
|
],
|
|
|
|
/*
|
|
|--------------------------------------------------------------------------
|
|
| Browserfehler
|
|
|--------------------------------------------------------------------------
|
|
|
|
|
| Eigenes GlitchTip-Projekt für JavaScript-Fehler. Die DSN ist öffentlich
|
|
| (steht im HTML), sie erlaubt nur das Einliefern von Ereignissen. Ohne
|
|
| DSN wird kein Skript eingebunden. Das SDK liegt selbst gehostet unter
|
|
| public/js/error-reporting/sentry-browser-<sdk_version>.min.js.
|
|
|
|
|
*/
|
|
|
|
'browser' => [
|
|
'dsn' => env('SENTRY_BROWSER_DSN'),
|
|
'sample_rate' => (float) env('SENTRY_BROWSER_SAMPLE_RATE', 1.0),
|
|
'sdk_version' => '11.5.0',
|
|
],
|
|
|
|
'scheduler' => [
|
|
'heartbeat_warn_minutes' => 3,
|
|
'heartbeat_critical_minutes' => 10,
|
|
],
|
|
|
|
];
|