GlitchTip: Fehlerprotokoll fuer Server, Fehlersignale und Browser

- 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>
This commit is contained in:
Kevin Adametz 2026-10-08 11:46:36 +00:00
parent 36feed6324
commit 0b02b1b15c
28 changed files with 1453 additions and 61 deletions

View file

@ -0,0 +1,15 @@
@props(['area' => 'web'])
{{-- Browserfehler an GlitchTip. Ohne SENTRY_BROWSER_DSN wird nichts eingebunden;
das SDK selbst lädt erst beim ersten Fehler (public/js/error-reporting/). --}}
@if (filled(config('monitoring.browser.dsn')))
<meta name="mivita-error-reporting" content="{{ json_encode([
'dsn' => config('monitoring.browser.dsn'),
'sdk' => asset('js/error-reporting/sentry-browser-'.config('monitoring.browser.sdk_version').'.min.js'),
'release' => config('sentry.release'),
'environment' => config('sentry.environment') ?? app()->environment(),
'sampleRate' => config('monitoring.browser.sample_rate'),
'userId' => auth()->id(),
'area' => $area,
]) }}">
<script src="{{ asset('js/error-reporting/error-reporting.js') }}?v={{ config('app.version') ?? config('monitoring.browser.sdk_version') }}" defer></script>
@endif

View file

@ -54,6 +54,7 @@
<link rel="stylesheet" type="text/css" href="{{ asset('/css/cookieconsent.min.css') }}" />
<script src="{{ asset('/js/jquery.min.js') }}"></script>
<x-monitoring.browser-errors area="crm" />
</head>
<body>

View file

@ -67,6 +67,7 @@
})});
</script>
<x-monitoring.browser-errors area="crm-auth" />
</head>
<body>

View file

@ -79,6 +79,7 @@
</style>
<x-monitoring.browser-errors area="portal" />
</head>
<body>

View file

@ -67,6 +67,7 @@
})});
</script>
<x-monitoring.browser-errors area="portal-auth" />
</head>
<body>

View file

@ -28,6 +28,7 @@
<script src="{{ asset('/vendor/js/layout-helpers.js') }}"></script>
<script src="{{ asset('/js/jquery.min.js') }}"></script>
<x-monitoring.browser-errors area="portal-public" />
</head>
<body>

View file

@ -88,6 +88,7 @@
color: #fff !important;
}
</style>
<x-monitoring.browser-errors area="web" />
</head>
<body class="smoothscroll enable-animation">

View file

@ -119,6 +119,7 @@
border-color: #989a9c;
}
</style>
<x-monitoring.browser-errors area="shop" />
</head>
<body class="smoothscroll enable-animation">