feat(infra) : branche le SDK Sentry (back + front) vers GlitchTip
Error tracking centralisé (ticket INFRA #146) : remontée des erreurs back (Symfony) et front (Nuxt) vers l'instance GlitchTip auto-hébergée. Backend : - sentry/sentry-symfony ^5.10, bundle enregistré prod-only - config/packages/sentry.yaml : handler Monolog niveau ERROR+, ignore les 4xx/AccessDenied, pas d'APM, release = %app.version% - services.yaml importe version.yaml pour exposer app.version au container - .env : bloc SENTRY_DSN documenté (vide => SDK inerte) Frontend : - @sentry/nuxt ^10.61, module chargé uniquement si NUXT_PUBLIC_SENTRY_DSN défini - runtimeConfig.public.sentry + source maps (hidden) + options d'upload - sentry.client.config.ts : init côté client gardée par if (dsn) DSN vides par défaut : aucune erreur n'est envoyée tant que les projets GlitchTip inventory-api / inventory-front et leurs DSN ne sont pas configurés en prod. Aucun secret commité. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,18 @@
|
||||
import * as Sentry from '@sentry/nuxt'
|
||||
|
||||
// Init Sentry côté client (SPA). Le DSN provient du build prod (NUXT_PUBLIC_SENTRY_DSN).
|
||||
// Si le DSN est vide (dev), Sentry.init est un no-op : rien n'est envoyé.
|
||||
const config = useRuntimeConfig()
|
||||
const dsn = config.public.sentry?.dsn
|
||||
|
||||
if (dsn) {
|
||||
Sentry.init({
|
||||
dsn,
|
||||
environment: config.public.sentry?.environment,
|
||||
// Pas d'APM/tracing (hors périmètre ticket #146) : on ne remonte que les erreurs.
|
||||
tracesSampleRate: 0,
|
||||
// Pas de session replay (volume).
|
||||
replaysSessionSampleRate: 0,
|
||||
replaysOnErrorSampleRate: 0,
|
||||
})
|
||||
}
|
||||
Reference in New Issue
Block a user