Zum Hauptinhalt springen

Flare

Error Tracking und Performance Tracing ueber Flare (Spatie). Primaere Fehlerueberwachung mit Fokus auf Laravel-native Integration, ergaenzt durch Laravel Nightwatch.

Integration

Flare wird ueber spatie/laravel-flare eingebunden und registriert sich als Exception Handler:

// bootstrap/app.php
use Spatie\LaravelFlare\Facades\Flare;

->withExceptions(function (Exceptions $exceptions): void {
Flare::handles($exceptions);
})

Location: bootstrap/app.php

Architektur

graph LR
A["Exception"] --> B["Laravel Exception Handler"]
B --> D["Flare"]
B --> N["Nightwatch"]
D --> E["Error Reports"]
D --> F["Performance Traces"]
F --> G["Sampling (10%)"]

Features

FeatureBeschreibung
Error TrackingAutomatische Erfassung aller unbehandelten PHP-Exceptions
Performance TracingRequest-Traces mit konfigurierbarer Sampling-Rate
Log EventsLog-Statements werden als Events an Flare gesendet
Share ButtonLaravel Error Page mit Share-Funktion fuer Fehler-Details
Data CensoringAutomatische Zensierung von Passwoertern, API-Keys, Tokens

Konfiguration

Location: config/flare.php

Collects

Flare sammelt automatisch Kontext-Informationen (Logs, Queries, Request-Daten). Ueber ignore und extra koennen Collectors deaktiviert oder hinzugefuegt werden:

'collects' => FlareConfig::defaultCollects(
ignore: [],
extra: []
),

Data Censoring

Sensible Daten werden automatisch aus Reports entfernt:

BereichZensierte Felder
Body Fieldspassword, password_confirmation
HeadersAPI-KEY, Authorization, Cookie, Set-Cookie, X-CSRF-TOKEN, X-XSRF-TOKEN
Client IPsNicht zensiert (konfigurierbar)
CookiesNicht zensiert (konfigurierbar)
SessionNicht zensiert (konfigurierbar)

Performance Tracing

Traces erfassen den Ablauf von Requests inkl. DB-Queries, Queue-Jobs und HTTP-Calls. Die Sampling-Rate bestimmt, welcher Anteil der Requests getrackt wird:

'trace' => env('FLARE_TRACE', true),
'sampler' => [
'class' => \Spatie\FlareClient\Sampling\RateSampler::class,
'config' => [
'rate' => env('FLARE_SAMPLER_RATE', 0.1), // 10% der Requests
],
],

Error Grouping

Flare gruppiert Fehler automatisch. Fuer spezifische Exceptions kann das Grouping ueberschrieben werden:

'overridden_groupings' => [
// ConnectionException::class => OverriddenGrouping::ExceptionMessageAndClass,
],

Log Events

Log-Statements (Log::info(), Log::error() etc.) werden als Events an Flare gesendet:

'send_logs_as_events' => true,

Application Version

Flare zeigt die deployed App-Version (Git Commit Hash) im Dashboard an. Die Version wird in AppServiceProvider::boot() ueber Flare::withApplicationVersion() gesetzt:

  1. Explizit: APP_VERSION env-Variable (wird beim Deployment gesetzt, z.B. Git Commit Hash)
  2. Auto-Detect: Falls APP_VERSION nicht gesetzt, wird der Git Commit Hash automatisch aus .git/ gelesen

Damit sind Fehler in Flare dem exakten Deploy-Commit zuordenbar.

Location: app/Providers/AppServiceProvider.php

.env Variablen

VariableDefaultBeschreibung
FLARE_KEY--Flare API Key (erforderlich fuer Error Reporting)
FLARE_TRACEtruePerformance Tracing aktivieren/deaktivieren
FLARE_SAMPLER_RATE0.1Sampling-Rate fuer Traces (0.0 = keine, 1.0 = alle)
APP_VERSION--Deployed Commit Hash (fuer Flare Version-Tagging)

Im Admin-Bereich gibt es einen direkten Link zu Flare Errors:

https://flareapp.io/103600-postbox/errors

Relevante Dateien

BereichPfad
Flare Configconfig/flare.php
Exception Handlerbootstrap/app.php
Packagespatie/laravel-flare (composer.json)