Skip to content

feat: add tracesSampler callback and integrations array to SentryConfig#5

Merged
benminer merged 3 commits intomainfrom
feat/backend-migration-support
Apr 3, 2026
Merged

feat: add tracesSampler callback and integrations array to SentryConfig#5
benminer merged 3 commits intomainfrom
feat/backend-migration-support

Conversation

@benminer
Copy link
Copy Markdown
Collaborator

@benminer benminer commented Apr 3, 2026

Summary

Adds two new optional fields to SentryConfig to unblock the backend monorepo migration from direct Sentry/Pyroscope initialization to observability-js.

  • tracesSampler — custom sampling callback invoked after the built-in ignoredRoutes check and before the default sampleRate fallback. Returns number | undefined; returning undefined falls through to sampleRate. Enables the backend to suppress traces for specific customers (e.g. QAWolf test accounts) without patching the library.
  • integrations — array of additional Sentry integrations spread after the hardcoded defaults (expressIntegration, nodeProfilingIntegration). Enables consumers to register prismaIntegration(), rewriteFramesIntegration(), etc.

Both fields flow unchanged through resolveConfig into ResolvedConfig.sentry. Types are derived from the already-declared @sentry/node dependency via NodeOptions utility types — no new imports or dependencies added.

Also relaxes engines.node from >= 24 to >= 20 so the package installs cleanly on backends not yet on Node 24 (.nvmrc stays at 24 for local dev).

Testing

5 new tests in filtering.test.ts cover the sampler composition logic:

  • fallback to sampleRate when no custom sampler is provided
  • custom sampler return value overrides sampleRate
  • undefined return falls through to sampleRate
  • ignoredRoutes short-circuits before the custom sampler is called
  • fractional sample rates pass through correctly

@benminer benminer merged commit 78db0fb into main Apr 3, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant