Skip to content

feat(observability): fan-out errors Sentry + PostHog avec flags opt-in #3486

@PierreBrisorgueil

Description

@PierreBrisorgueil

Contexte

Sentry et PostHog sont déjà intégrés (lib/services/sentry.js et analytics.js), mais :

  • Les erreurs ne partent que sur Sentry (express.js:315)
  • PostHog error tracking n'est pas wired
  • Pas de flag pour gater les features PostHog (ex : analyticsMiddleware auto-on dès que posthog.apiKey est présent, express.js:291-299)

Objectif

Permettre à chaque projet downstream d'activer Sentry, PostHog errors, les deux, ou aucun — via env vars, sans changer de code.

Proposition

1. Fan-out errors

Nouveau lib/services/errorTracker.js : captureException(err, ctx) fanouts vers les SDKs actifs.

  • Sentry si DEVKIT_NODE_sentry_dsn
  • PostHog si DEVKIT_NODE_posthog_apiKey et DEVKIT_NODE_posthog_errorTracking=true

Remplace setupExpressErrorHandler dans express.js.

2. Flags opt-in PostHog

Default safe : posthog.apiKey seule = juste track() + identify(). Le reste en opt-in.

Env var Default
DEVKIT_NODE_posthog_errorTracking false
DEVKIT_NODE_posthog_autoCapture false

Le middleware api_request actuel devient opt-in via posthog.autoCapture.

3. Contexte partagé

Middleware unifié (post-auth) qui set userId + requestId sur les deux SDKs.

Scope

  • lib/services/errorTracker.js (nouveau)
  • lib/services/sentry.js, analytics.js (expose captureException)
  • lib/services/express.js (fan-out + gate middleware)
  • Config defaults + .env.example
  • Tests des 4 combinaisons (aucun / Sentry / PostHog / les deux)

Lié

Issue miroir sur pierreb-devkit/Vue.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions