chore: reduce Sentry span sampling outside development - #1475

Merged
brendan-kellam merged 3 commits into
mainfrom
brendan-kellam/sentry-event-sampling-SOU-1557
Jul 21, 2026
Merged

chore: reduce Sentry span sampling outside development#1475
brendan-kellam merged 3 commits into
mainfrom
brendan-kellam/sentry-event-sampling-SOU-1557

Conversation

@brendan-kellam

@brendan-kellambrendan-kellam commented Jul 21, 2026

Copy link
Copy Markdown
Contributor

Fixes SOU-1557

Summary

  • retain 100% Sentry span sampling in development
  • sample 10% of spans in the browser, Next.js server and edge runtimes, and backend worker in every other environment
  • leave Sentry error event sampling unchanged

Testing

  • yarn workspace @sourcebot/web exec eslint src/instrumentation-client.ts src/sentry.server.config.ts src/sentry.edge.config.ts
  • yarn workspace @sourcebot/backend exec tsc --noEmit
  • yarn workspace @sourcebot/web exec tsc --noEmit --skipLibCheck --target es2022 --module esnext --moduleResolution bundler src/instrumentation-client.ts src/sentry.edge.config.ts src/sentry.server.config.ts

Summary by CodeRabbit

  • Chores
    • Adjusted Sentry performance/error capture sampling to use 100% in development and 10% outside development.
    • Applied consistently across backend, web client, server, and edge Sentry initialization.
  • Documentation
    • Updated the changelog to reflect the environment-based sampling change.

@github-actions

This comment has been minimized.

@coderabbitai

coderabbitaiBot commented Jul 21, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Walkthrough

Sentry initialization now uses a full tracing sample rate in development and a 10% rate elsewhere across backend, client, edge, and server runtimes. The changelog records this configuration change.

Changes

Sentry sampling configuration

Layer / File(s)Summary
Apply environment-based sampling
packages/backend/src/instrument.ts, packages/web/src/instrumentation-client.ts, packages/web/src/sentry.edge.config.ts, packages/web/src/sentry.server.config.ts, CHANGELOG.md
Sentry uses a 1.0tracesSampleRate in development and 0.1 otherwise across all initialization paths, and the changelog documents the change.

Estimated code review effort: 1 (Trivial) | ~5 minutes

Possibly related PRs

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check nameStatusExplanation
Docstring Coverage✅ PassedNo functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check✅ PassedCheck skipped because no linked issues were found for this pull request.
Out of Scope Changes check✅ PassedCheck skipped because no linked issues were found for this pull request.
Description Check✅ PassedCheck skipped - CodeRabbit’s high-level summary is enabled.
Title check✅ PassedThe title clearly matches the main change: lowering Sentry sampling to 10% outside development.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch brendan-kellam/sentry-event-sampling-SOU-1557

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

Comment threadpackages/backend/src/instrument.ts Outdated
// to the version for builds that don't pass a commit SHA.
release: env.NEXT_PUBLIC_BUILD_COMMIT_SHA ?? SOURCEBOT_VERSION,
environment: env.NEXT_PUBLIC_SENTRY_ENVIRONMENT,
sampleRate: env.NEXT_PUBLIC_SENTRY_ENVIRONMENT === 'development' ? 1.0 : 0.1,

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Dev sampling gate never matches

Medium Severity

The Sentry sampleRate in development environments defaults to 0.1 instead of 1.0. This occurs because the backend's Sentry configuration compares NEXT_PUBLIC_SENTRY_ENVIRONMENT to 'development', while the .env.development file sets it to 'dev', preventing full error capture.

Fix in CursorFix in Web

Reviewed by Cursor Bugbot for commit 5e991c4. Configure here.

@brendan-kellambrendan-kellam changed the title chore: reduce Sentry event sampling outside developmentchore: reduce Sentry span sampling outside developmentJul 21, 2026
@brendan-kellam
brendan-kellam merged commit e1ce46b into mainJul 21, 2026
12 checks passed
@github-actionsgithub-actionsBot mentioned this pull request Jul 21, 2026
@brendan-kellam
brendan-kellam deleted the brendan-kellam/sentry-event-sampling-SOU-1557 branch July 21, 2026 19:46

@cursorcursorBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes using high effort and found 2 potential issues.

There are 3 total unresolved issues (including 1 from previous review).

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit af8c811. Configure here.

Sentry.browserProfilingIntegration(),
],
tracesSampleRate: 1.0,
tracesSampleRate: process.env.NEXT_PUBLIC_SENTRY_ENVIRONMENT === 'development' ? 1.0 : 0.1,

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Wrong Sentry sampling option

High Severity

The change intended to sample Sentry error events at 10% outside development. Instead, tracesSampleRate was modified, leaving error capture at 100%. This samples web traces and associated profiling at 10% (instead of 100%) and newly enables backend performance tracing.

Fix in CursorFix in Web

Reviewed by Cursor Bugbot for commit af8c811. Configure here.

Sentry.browserProfilingIntegration(),
],
tracesSampleRate: 1.0,
tracesSampleRate: process.env.NEXT_PUBLIC_SENTRY_ENVIRONMENT === 'development' ? 1.0 : 0.1,

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Dev sampling env mismatch

Medium Severity

The tracesSampleRate condition expects NEXT_PUBLIC_SENTRY_ENVIRONMENT to be 'development' for full sampling. The .env.development example uses 'dev', which means development environments will get a reduced sampling rate (0.1) instead of 1.0.

Fix in CursorFix in Web

Reviewed by Cursor Bugbot for commit af8c811. Configure here.

Sign up for freeto 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

@brendan-kellam
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

chore: reduce Sentry span sampling outside development - #1475

Merged
brendan-kellam merged 3 commits into
mainfrom
brendan-kellam/sentry-event-sampling-SOU-1557
Jul 21, 2026
Merged

chore: reduce Sentry span sampling outside development#1475
brendan-kellam merged 3 commits into
mainfrom
brendan-kellam/sentry-event-sampling-SOU-1557

Conversation

@brendan-kellam

@brendan-kellambrendan-kellam commented Jul 21, 2026

Copy link
Copy Markdown
Contributor

Fixes SOU-1557

Summary

  • retain 100% Sentry span sampling in development
  • sample 10% of spans in the browser, Next.js server and edge runtimes, and backend worker in every other environment
  • leave Sentry error event sampling unchanged

Testing

  • yarn workspace @sourcebot/web exec eslint src/instrumentation-client.ts src/sentry.server.config.ts src/sentry.edge.config.ts
  • yarn workspace @sourcebot/backend exec tsc --noEmit
  • yarn workspace @sourcebot/web exec tsc --noEmit --skipLibCheck --target es2022 --module esnext --moduleResolution bundler src/instrumentation-client.ts src/sentry.edge.config.ts src/sentry.server.config.ts

Summary by CodeRabbit

  • Chores
    • Adjusted Sentry performance/error capture sampling to use 100% in development and 10% outside development.
    • Applied consistently across backend, web client, server, and edge Sentry initialization.
  • Documentation
    • Updated the changelog to reflect the environment-based sampling change.

@github-actions

This comment has been minimized.

@coderabbitai

coderabbitaiBot commented Jul 21, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Walkthrough

Sentry initialization now uses a full tracing sample rate in development and a 10% rate elsewhere across backend, client, edge, and server runtimes. The changelog records this configuration change.

Changes

Sentry sampling configuration

Layer / File(s)Summary
Apply environment-based sampling
packages/backend/src/instrument.ts, packages/web/src/instrumentation-client.ts, packages/web/src/sentry.edge.config.ts, packages/web/src/sentry.server.config.ts, CHANGELOG.md
Sentry uses a 1.0tracesSampleRate in development and 0.1 otherwise across all initialization paths, and the changelog documents the change.

Estimated code review effort: 1 (Trivial) | ~5 minutes

Possibly related PRs

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check nameStatusExplanation
Docstring Coverage✅ PassedNo functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check✅ PassedCheck skipped because no linked issues were found for this pull request.
Out of Scope Changes check✅ PassedCheck skipped because no linked issues were found for this pull request.
Description Check✅ PassedCheck skipped - CodeRabbit’s high-level summary is enabled.
Title check✅ PassedThe title clearly matches the main change: lowering Sentry sampling to 10% outside development.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch brendan-kellam/sentry-event-sampling-SOU-1557

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

Comment threadpackages/backend/src/instrument.ts Outdated
// to the version for builds that don't pass a commit SHA.
release: env.NEXT_PUBLIC_BUILD_COMMIT_SHA ?? SOURCEBOT_VERSION,
environment: env.NEXT_PUBLIC_SENTRY_ENVIRONMENT,
sampleRate: env.NEXT_PUBLIC_SENTRY_ENVIRONMENT === 'development' ? 1.0 : 0.1,

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Dev sampling gate never matches

Medium Severity

The Sentry sampleRate in development environments defaults to 0.1 instead of 1.0. This occurs because the backend's Sentry configuration compares NEXT_PUBLIC_SENTRY_ENVIRONMENT to 'development', while the .env.development file sets it to 'dev', preventing full error capture.

Fix in CursorFix in Web

Reviewed by Cursor Bugbot for commit 5e991c4. Configure here.

@brendan-kellambrendan-kellam changed the title chore: reduce Sentry event sampling outside developmentchore: reduce Sentry span sampling outside developmentJul 21, 2026
@brendan-kellam
brendan-kellam merged commit e1ce46b into mainJul 21, 2026
12 checks passed
@github-actionsgithub-actionsBot mentioned this pull request Jul 21, 2026
@brendan-kellam
brendan-kellam deleted the brendan-kellam/sentry-event-sampling-SOU-1557 branch July 21, 2026 19:46

@cursorcursorBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes using high effort and found 2 potential issues.

There are 3 total unresolved issues (including 1 from previous review).

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit af8c811. Configure here.

Sentry.browserProfilingIntegration(),
],
tracesSampleRate: 1.0,
tracesSampleRate: process.env.NEXT_PUBLIC_SENTRY_ENVIRONMENT === 'development' ? 1.0 : 0.1,

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Wrong Sentry sampling option

High Severity

The change intended to sample Sentry error events at 10% outside development. Instead, tracesSampleRate was modified, leaving error capture at 100%. This samples web traces and associated profiling at 10% (instead of 100%) and newly enables backend performance tracing.

Fix in CursorFix in Web

Reviewed by Cursor Bugbot for commit af8c811. Configure here.

Sentry.browserProfilingIntegration(),
],
tracesSampleRate: 1.0,
tracesSampleRate: process.env.NEXT_PUBLIC_SENTRY_ENVIRONMENT === 'development' ? 1.0 : 0.1,

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Dev sampling env mismatch

Medium Severity

The tracesSampleRate condition expects NEXT_PUBLIC_SENTRY_ENVIRONMENT to be 'development' for full sampling. The .env.development example uses 'dev', which means development environments will get a reduced sampling rate (0.1) instead of 1.0.

Fix in CursorFix in Web

Reviewed by Cursor Bugbot for commit af8c811. Configure here.

Sign up for freeto 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

@brendan-kellam
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

chore: reduce Sentry span sampling outside development - #1475

Merged
brendan-kellam merged 3 commits into
mainfrom
brendan-kellam/sentry-event-sampling-SOU-1557
Jul 21, 2026
Merged

chore: reduce Sentry span sampling outside development#1475
brendan-kellam merged 3 commits into
mainfrom
brendan-kellam/sentry-event-sampling-SOU-1557

Conversation

@brendan-kellam

@brendan-kellambrendan-kellam commented Jul 21, 2026

Copy link
Copy Markdown
Contributor

Fixes SOU-1557

Summary

  • retain 100% Sentry span sampling in development
  • sample 10% of spans in the browser, Next.js server and edge runtimes, and backend worker in every other environment
  • leave Sentry error event sampling unchanged

Testing

  • yarn workspace @sourcebot/web exec eslint src/instrumentation-client.ts src/sentry.server.config.ts src/sentry.edge.config.ts
  • yarn workspace @sourcebot/backend exec tsc --noEmit
  • yarn workspace @sourcebot/web exec tsc --noEmit --skipLibCheck --target es2022 --module esnext --moduleResolution bundler src/instrumentation-client.ts src/sentry.edge.config.ts src/sentry.server.config.ts

Summary by CodeRabbit

  • Chores
    • Adjusted Sentry performance/error capture sampling to use 100% in development and 10% outside development.
    • Applied consistently across backend, web client, server, and edge Sentry initialization.
  • Documentation
    • Updated the changelog to reflect the environment-based sampling change.

@github-actions

This comment has been minimized.

@coderabbitai

coderabbitaiBot commented Jul 21, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Walkthrough

Sentry initialization now uses a full tracing sample rate in development and a 10% rate elsewhere across backend, client, edge, and server runtimes. The changelog records this configuration change.

Changes

Sentry sampling configuration

Layer / File(s)Summary
Apply environment-based sampling
packages/backend/src/instrument.ts, packages/web/src/instrumentation-client.ts, packages/web/src/sentry.edge.config.ts, packages/web/src/sentry.server.config.ts, CHANGELOG.md
Sentry uses a 1.0tracesSampleRate in development and 0.1 otherwise across all initialization paths, and the changelog documents the change.

Estimated code review effort: 1 (Trivial) | ~5 minutes

Possibly related PRs

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check nameStatusExplanation
Docstring Coverage✅ PassedNo functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check✅ PassedCheck skipped because no linked issues were found for this pull request.
Out of Scope Changes check✅ PassedCheck skipped because no linked issues were found for this pull request.
Description Check✅ PassedCheck skipped - CodeRabbit’s high-level summary is enabled.
Title check✅ PassedThe title clearly matches the main change: lowering Sentry sampling to 10% outside development.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch brendan-kellam/sentry-event-sampling-SOU-1557

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

Comment threadpackages/backend/src/instrument.ts Outdated
// to the version for builds that don't pass a commit SHA.
release: env.NEXT_PUBLIC_BUILD_COMMIT_SHA ?? SOURCEBOT_VERSION,
environment: env.NEXT_PUBLIC_SENTRY_ENVIRONMENT,
sampleRate: env.NEXT_PUBLIC_SENTRY_ENVIRONMENT === 'development' ? 1.0 : 0.1,

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Dev sampling gate never matches

Medium Severity

The Sentry sampleRate in development environments defaults to 0.1 instead of 1.0. This occurs because the backend's Sentry configuration compares NEXT_PUBLIC_SENTRY_ENVIRONMENT to 'development', while the .env.development file sets it to 'dev', preventing full error capture.

Fix in CursorFix in Web

Reviewed by Cursor Bugbot for commit 5e991c4. Configure here.

@brendan-kellambrendan-kellam changed the title chore: reduce Sentry event sampling outside developmentchore: reduce Sentry span sampling outside developmentJul 21, 2026
@brendan-kellam
brendan-kellam merged commit e1ce46b into mainJul 21, 2026
12 checks passed
@github-actionsgithub-actionsBot mentioned this pull request Jul 21, 2026
@brendan-kellam
brendan-kellam deleted the brendan-kellam/sentry-event-sampling-SOU-1557 branch July 21, 2026 19:46

@cursorcursorBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes using high effort and found 2 potential issues.

There are 3 total unresolved issues (including 1 from previous review).

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit af8c811. Configure here.

Sentry.browserProfilingIntegration(),
],
tracesSampleRate: 1.0,
tracesSampleRate: process.env.NEXT_PUBLIC_SENTRY_ENVIRONMENT === 'development' ? 1.0 : 0.1,

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Wrong Sentry sampling option

High Severity

The change intended to sample Sentry error events at 10% outside development. Instead, tracesSampleRate was modified, leaving error capture at 100%. This samples web traces and associated profiling at 10% (instead of 100%) and newly enables backend performance tracing.

Fix in CursorFix in Web

Reviewed by Cursor Bugbot for commit af8c811. Configure here.

Sentry.browserProfilingIntegration(),
],
tracesSampleRate: 1.0,
tracesSampleRate: process.env.NEXT_PUBLIC_SENTRY_ENVIRONMENT === 'development' ? 1.0 : 0.1,

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Dev sampling env mismatch

Medium Severity

The tracesSampleRate condition expects NEXT_PUBLIC_SENTRY_ENVIRONMENT to be 'development' for full sampling. The .env.development example uses 'dev', which means development environments will get a reduced sampling rate (0.1) instead of 1.0.

Fix in CursorFix in Web

Reviewed by Cursor Bugbot for commit af8c811. Configure here.

Sign up for freeto 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

@brendan-kellam
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

chore: reduce Sentry span sampling outside development - #1475

Merged
brendan-kellam merged 3 commits into
mainfrom
brendan-kellam/sentry-event-sampling-SOU-1557
Jul 21, 2026
Merged

chore: reduce Sentry span sampling outside development#1475
brendan-kellam merged 3 commits into
mainfrom
brendan-kellam/sentry-event-sampling-SOU-1557

Conversation

@brendan-kellam

@brendan-kellambrendan-kellam commented Jul 21, 2026

Copy link
Copy Markdown
Contributor

Fixes SOU-1557

Summary

  • retain 100% Sentry span sampling in development
  • sample 10% of spans in the browser, Next.js server and edge runtimes, and backend worker in every other environment
  • leave Sentry error event sampling unchanged

Testing

  • yarn workspace @sourcebot/web exec eslint src/instrumentation-client.ts src/sentry.server.config.ts src/sentry.edge.config.ts
  • yarn workspace @sourcebot/backend exec tsc --noEmit
  • yarn workspace @sourcebot/web exec tsc --noEmit --skipLibCheck --target es2022 --module esnext --moduleResolution bundler src/instrumentation-client.ts src/sentry.edge.config.ts src/sentry.server.config.ts

Summary by CodeRabbit

  • Chores
    • Adjusted Sentry performance/error capture sampling to use 100% in development and 10% outside development.
    • Applied consistently across backend, web client, server, and edge Sentry initialization.
  • Documentation
    • Updated the changelog to reflect the environment-based sampling change.

@github-actions

This comment has been minimized.

@coderabbitai

coderabbitaiBot commented Jul 21, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Walkthrough

Sentry initialization now uses a full tracing sample rate in development and a 10% rate elsewhere across backend, client, edge, and server runtimes. The changelog records this configuration change.

Changes

Sentry sampling configuration

Layer / File(s)Summary
Apply environment-based sampling
packages/backend/src/instrument.ts, packages/web/src/instrumentation-client.ts, packages/web/src/sentry.edge.config.ts, packages/web/src/sentry.server.config.ts, CHANGELOG.md
Sentry uses a 1.0tracesSampleRate in development and 0.1 otherwise across all initialization paths, and the changelog documents the change.

Estimated code review effort: 1 (Trivial) | ~5 minutes

Possibly related PRs

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check nameStatusExplanation
Docstring Coverage✅ PassedNo functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check✅ PassedCheck skipped because no linked issues were found for this pull request.
Out of Scope Changes check✅ PassedCheck skipped because no linked issues were found for this pull request.
Description Check✅ PassedCheck skipped - CodeRabbit’s high-level summary is enabled.
Title check✅ PassedThe title clearly matches the main change: lowering Sentry sampling to 10% outside development.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch brendan-kellam/sentry-event-sampling-SOU-1557

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

Comment threadpackages/backend/src/instrument.ts Outdated
// to the version for builds that don't pass a commit SHA.
release: env.NEXT_PUBLIC_BUILD_COMMIT_SHA ?? SOURCEBOT_VERSION,
environment: env.NEXT_PUBLIC_SENTRY_ENVIRONMENT,
sampleRate: env.NEXT_PUBLIC_SENTRY_ENVIRONMENT === 'development' ? 1.0 : 0.1,

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Dev sampling gate never matches

Medium Severity

The Sentry sampleRate in development environments defaults to 0.1 instead of 1.0. This occurs because the backend's Sentry configuration compares NEXT_PUBLIC_SENTRY_ENVIRONMENT to 'development', while the .env.development file sets it to 'dev', preventing full error capture.

Fix in CursorFix in Web

Reviewed by Cursor Bugbot for commit 5e991c4. Configure here.

@brendan-kellambrendan-kellam changed the title chore: reduce Sentry event sampling outside developmentchore: reduce Sentry span sampling outside developmentJul 21, 2026
@brendan-kellam
brendan-kellam merged commit e1ce46b into mainJul 21, 2026
12 checks passed
@github-actionsgithub-actionsBot mentioned this pull request Jul 21, 2026
@brendan-kellam
brendan-kellam deleted the brendan-kellam/sentry-event-sampling-SOU-1557 branch July 21, 2026 19:46

@cursorcursorBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes using high effort and found 2 potential issues.

There are 3 total unresolved issues (including 1 from previous review).

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit af8c811. Configure here.

Sentry.browserProfilingIntegration(),
],
tracesSampleRate: 1.0,
tracesSampleRate: process.env.NEXT_PUBLIC_SENTRY_ENVIRONMENT === 'development' ? 1.0 : 0.1,

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Wrong Sentry sampling option

High Severity

The change intended to sample Sentry error events at 10% outside development. Instead, tracesSampleRate was modified, leaving error capture at 100%. This samples web traces and associated profiling at 10% (instead of 100%) and newly enables backend performance tracing.

Fix in CursorFix in Web

Reviewed by Cursor Bugbot for commit af8c811. Configure here.

Sentry.browserProfilingIntegration(),
],
tracesSampleRate: 1.0,
tracesSampleRate: process.env.NEXT_PUBLIC_SENTRY_ENVIRONMENT === 'development' ? 1.0 : 0.1,

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Dev sampling env mismatch

Medium Severity

The tracesSampleRate condition expects NEXT_PUBLIC_SENTRY_ENVIRONMENT to be 'development' for full sampling. The .env.development example uses 'dev', which means development environments will get a reduced sampling rate (0.1) instead of 1.0.

Fix in CursorFix in Web

Reviewed by Cursor Bugbot for commit af8c811. Configure here.

Sign up for freeto 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

@brendan-kellam
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

chore: reduce Sentry span sampling outside development - #1475

Merged
brendan-kellam merged 3 commits into
mainfrom
brendan-kellam/sentry-event-sampling-SOU-1557
Jul 21, 2026
Merged

chore: reduce Sentry span sampling outside development#1475
brendan-kellam merged 3 commits into
mainfrom
brendan-kellam/sentry-event-sampling-SOU-1557

Conversation

@brendan-kellam

@brendan-kellambrendan-kellam commented Jul 21, 2026

Copy link
Copy Markdown
Contributor

Fixes SOU-1557

Summary

  • retain 100% Sentry span sampling in development
  • sample 10% of spans in the browser, Next.js server and edge runtimes, and backend worker in every other environment
  • leave Sentry error event sampling unchanged

Testing

  • yarn workspace @sourcebot/web exec eslint src/instrumentation-client.ts src/sentry.server.config.ts src/sentry.edge.config.ts
  • yarn workspace @sourcebot/backend exec tsc --noEmit
  • yarn workspace @sourcebot/web exec tsc --noEmit --skipLibCheck --target es2022 --module esnext --moduleResolution bundler src/instrumentation-client.ts src/sentry.edge.config.ts src/sentry.server.config.ts

Summary by CodeRabbit

  • Chores
    • Adjusted Sentry performance/error capture sampling to use 100% in development and 10% outside development.
    • Applied consistently across backend, web client, server, and edge Sentry initialization.
  • Documentation
    • Updated the changelog to reflect the environment-based sampling change.

@github-actions

This comment has been minimized.

@coderabbitai

coderabbitaiBot commented Jul 21, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Walkthrough

Sentry initialization now uses a full tracing sample rate in development and a 10% rate elsewhere across backend, client, edge, and server runtimes. The changelog records this configuration change.

Changes

Sentry sampling configuration

Layer / File(s)Summary
Apply environment-based sampling
packages/backend/src/instrument.ts, packages/web/src/instrumentation-client.ts, packages/web/src/sentry.edge.config.ts, packages/web/src/sentry.server.config.ts, CHANGELOG.md
Sentry uses a 1.0tracesSampleRate in development and 0.1 otherwise across all initialization paths, and the changelog documents the change.

Estimated code review effort: 1 (Trivial) | ~5 minutes

Possibly related PRs

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check nameStatusExplanation
Docstring Coverage✅ PassedNo functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check✅ PassedCheck skipped because no linked issues were found for this pull request.
Out of Scope Changes check✅ PassedCheck skipped because no linked issues were found for this pull request.
Description Check✅ PassedCheck skipped - CodeRabbit’s high-level summary is enabled.
Title check✅ PassedThe title clearly matches the main change: lowering Sentry sampling to 10% outside development.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch brendan-kellam/sentry-event-sampling-SOU-1557

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

Comment threadpackages/backend/src/instrument.ts Outdated
// to the version for builds that don't pass a commit SHA.
release: env.NEXT_PUBLIC_BUILD_COMMIT_SHA ?? SOURCEBOT_VERSION,
environment: env.NEXT_PUBLIC_SENTRY_ENVIRONMENT,
sampleRate: env.NEXT_PUBLIC_SENTRY_ENVIRONMENT === 'development' ? 1.0 : 0.1,

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Dev sampling gate never matches

Medium Severity

The Sentry sampleRate in development environments defaults to 0.1 instead of 1.0. This occurs because the backend's Sentry configuration compares NEXT_PUBLIC_SENTRY_ENVIRONMENT to 'development', while the .env.development file sets it to 'dev', preventing full error capture.

Fix in CursorFix in Web

Reviewed by Cursor Bugbot for commit 5e991c4. Configure here.

@brendan-kellambrendan-kellam changed the title chore: reduce Sentry event sampling outside developmentchore: reduce Sentry span sampling outside developmentJul 21, 2026
@brendan-kellam
brendan-kellam merged commit e1ce46b into mainJul 21, 2026
12 checks passed
@github-actionsgithub-actionsBot mentioned this pull request Jul 21, 2026
@brendan-kellam
brendan-kellam deleted the brendan-kellam/sentry-event-sampling-SOU-1557 branch July 21, 2026 19:46

@cursorcursorBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes using high effort and found 2 potential issues.

There are 3 total unresolved issues (including 1 from previous review).

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit af8c811. Configure here.

Sentry.browserProfilingIntegration(),
],
tracesSampleRate: 1.0,
tracesSampleRate: process.env.NEXT_PUBLIC_SENTRY_ENVIRONMENT === 'development' ? 1.0 : 0.1,

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Wrong Sentry sampling option

High Severity

The change intended to sample Sentry error events at 10% outside development. Instead, tracesSampleRate was modified, leaving error capture at 100%. This samples web traces and associated profiling at 10% (instead of 100%) and newly enables backend performance tracing.

Fix in CursorFix in Web

Reviewed by Cursor Bugbot for commit af8c811. Configure here.

Sentry.browserProfilingIntegration(),
],
tracesSampleRate: 1.0,
tracesSampleRate: process.env.NEXT_PUBLIC_SENTRY_ENVIRONMENT === 'development' ? 1.0 : 0.1,

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Dev sampling env mismatch

Medium Severity

The tracesSampleRate condition expects NEXT_PUBLIC_SENTRY_ENVIRONMENT to be 'development' for full sampling. The .env.development example uses 'dev', which means development environments will get a reduced sampling rate (0.1) instead of 1.0.

Fix in CursorFix in Web

Reviewed by Cursor Bugbot for commit af8c811. Configure here.

Sign up for freeto 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

@brendan-kellam
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

chore: reduce Sentry span sampling outside development - #1475

Merged
brendan-kellam merged 3 commits into
mainfrom
brendan-kellam/sentry-event-sampling-SOU-1557
Jul 21, 2026
Merged

chore: reduce Sentry span sampling outside development#1475
brendan-kellam merged 3 commits into
mainfrom
brendan-kellam/sentry-event-sampling-SOU-1557

Conversation

@brendan-kellam

@brendan-kellambrendan-kellam commented Jul 21, 2026

Copy link
Copy Markdown
Contributor

Fixes SOU-1557

Summary

  • retain 100% Sentry span sampling in development
  • sample 10% of spans in the browser, Next.js server and edge runtimes, and backend worker in every other environment
  • leave Sentry error event sampling unchanged

Testing

  • yarn workspace @sourcebot/web exec eslint src/instrumentation-client.ts src/sentry.server.config.ts src/sentry.edge.config.ts
  • yarn workspace @sourcebot/backend exec tsc --noEmit
  • yarn workspace @sourcebot/web exec tsc --noEmit --skipLibCheck --target es2022 --module esnext --moduleResolution bundler src/instrumentation-client.ts src/sentry.edge.config.ts src/sentry.server.config.ts

Summary by CodeRabbit

  • Chores
    • Adjusted Sentry performance/error capture sampling to use 100% in development and 10% outside development.
    • Applied consistently across backend, web client, server, and edge Sentry initialization.
  • Documentation
    • Updated the changelog to reflect the environment-based sampling change.

@github-actions

This comment has been minimized.

@coderabbitai

coderabbitaiBot commented Jul 21, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Walkthrough

Sentry initialization now uses a full tracing sample rate in development and a 10% rate elsewhere across backend, client, edge, and server runtimes. The changelog records this configuration change.

Changes

Sentry sampling configuration

Layer / File(s)Summary
Apply environment-based sampling
packages/backend/src/instrument.ts, packages/web/src/instrumentation-client.ts, packages/web/src/sentry.edge.config.ts, packages/web/src/sentry.server.config.ts, CHANGELOG.md
Sentry uses a 1.0tracesSampleRate in development and 0.1 otherwise across all initialization paths, and the changelog documents the change.

Estimated code review effort: 1 (Trivial) | ~5 minutes

Possibly related PRs

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check nameStatusExplanation
Docstring Coverage✅ PassedNo functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check✅ PassedCheck skipped because no linked issues were found for this pull request.
Out of Scope Changes check✅ PassedCheck skipped because no linked issues were found for this pull request.
Description Check✅ PassedCheck skipped - CodeRabbit’s high-level summary is enabled.
Title check✅ PassedThe title clearly matches the main change: lowering Sentry sampling to 10% outside development.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch brendan-kellam/sentry-event-sampling-SOU-1557

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

Comment threadpackages/backend/src/instrument.ts Outdated
// to the version for builds that don't pass a commit SHA.
release: env.NEXT_PUBLIC_BUILD_COMMIT_SHA ?? SOURCEBOT_VERSION,
environment: env.NEXT_PUBLIC_SENTRY_ENVIRONMENT,
sampleRate: env.NEXT_PUBLIC_SENTRY_ENVIRONMENT === 'development' ? 1.0 : 0.1,

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Dev sampling gate never matches

Medium Severity

The Sentry sampleRate in development environments defaults to 0.1 instead of 1.0. This occurs because the backend's Sentry configuration compares NEXT_PUBLIC_SENTRY_ENVIRONMENT to 'development', while the .env.development file sets it to 'dev', preventing full error capture.

Fix in CursorFix in Web

Reviewed by Cursor Bugbot for commit 5e991c4. Configure here.

@brendan-kellambrendan-kellam changed the title chore: reduce Sentry event sampling outside developmentchore: reduce Sentry span sampling outside developmentJul 21, 2026
@brendan-kellam
brendan-kellam merged commit e1ce46b into mainJul 21, 2026
12 checks passed
@github-actionsgithub-actionsBot mentioned this pull request Jul 21, 2026
@brendan-kellam
brendan-kellam deleted the brendan-kellam/sentry-event-sampling-SOU-1557 branch July 21, 2026 19:46

@cursorcursorBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes using high effort and found 2 potential issues.

There are 3 total unresolved issues (including 1 from previous review).

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit af8c811. Configure here.

Sentry.browserProfilingIntegration(),
],
tracesSampleRate: 1.0,
tracesSampleRate: process.env.NEXT_PUBLIC_SENTRY_ENVIRONMENT === 'development' ? 1.0 : 0.1,

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Wrong Sentry sampling option

High Severity

The change intended to sample Sentry error events at 10% outside development. Instead, tracesSampleRate was modified, leaving error capture at 100%. This samples web traces and associated profiling at 10% (instead of 100%) and newly enables backend performance tracing.

Fix in CursorFix in Web

Reviewed by Cursor Bugbot for commit af8c811. Configure here.

Sentry.browserProfilingIntegration(),
],
tracesSampleRate: 1.0,
tracesSampleRate: process.env.NEXT_PUBLIC_SENTRY_ENVIRONMENT === 'development' ? 1.0 : 0.1,

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Dev sampling env mismatch

Medium Severity

The tracesSampleRate condition expects NEXT_PUBLIC_SENTRY_ENVIRONMENT to be 'development' for full sampling. The .env.development example uses 'dev', which means development environments will get a reduced sampling rate (0.1) instead of 1.0.

Fix in CursorFix in Web

Reviewed by Cursor Bugbot for commit af8c811. Configure here.

Sign up for freeto 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

@brendan-kellam
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

chore: reduce Sentry span sampling outside development - #1475

Merged
brendan-kellam merged 3 commits into
mainfrom
brendan-kellam/sentry-event-sampling-SOU-1557
Jul 21, 2026
Merged

chore: reduce Sentry span sampling outside development#1475
brendan-kellam merged 3 commits into
mainfrom
brendan-kellam/sentry-event-sampling-SOU-1557

Conversation

@brendan-kellam

@brendan-kellambrendan-kellam commented Jul 21, 2026

Copy link
Copy Markdown
Contributor

Fixes SOU-1557

Summary

  • retain 100% Sentry span sampling in development
  • sample 10% of spans in the browser, Next.js server and edge runtimes, and backend worker in every other environment
  • leave Sentry error event sampling unchanged

Testing

  • yarn workspace @sourcebot/web exec eslint src/instrumentation-client.ts src/sentry.server.config.ts src/sentry.edge.config.ts
  • yarn workspace @sourcebot/backend exec tsc --noEmit
  • yarn workspace @sourcebot/web exec tsc --noEmit --skipLibCheck --target es2022 --module esnext --moduleResolution bundler src/instrumentation-client.ts src/sentry.edge.config.ts src/sentry.server.config.ts

Summary by CodeRabbit

  • Chores
    • Adjusted Sentry performance/error capture sampling to use 100% in development and 10% outside development.
    • Applied consistently across backend, web client, server, and edge Sentry initialization.
  • Documentation
    • Updated the changelog to reflect the environment-based sampling change.

@github-actions

This comment has been minimized.

@coderabbitai

coderabbitaiBot commented Jul 21, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Walkthrough

Sentry initialization now uses a full tracing sample rate in development and a 10% rate elsewhere across backend, client, edge, and server runtimes. The changelog records this configuration change.

Changes

Sentry sampling configuration

Layer / File(s)Summary
Apply environment-based sampling
packages/backend/src/instrument.ts, packages/web/src/instrumentation-client.ts, packages/web/src/sentry.edge.config.ts, packages/web/src/sentry.server.config.ts, CHANGELOG.md
Sentry uses a 1.0tracesSampleRate in development and 0.1 otherwise across all initialization paths, and the changelog documents the change.

Estimated code review effort: 1 (Trivial) | ~5 minutes

Possibly related PRs

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check nameStatusExplanation
Docstring Coverage✅ PassedNo functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check✅ PassedCheck skipped because no linked issues were found for this pull request.
Out of Scope Changes check✅ PassedCheck skipped because no linked issues were found for this pull request.
Description Check✅ PassedCheck skipped - CodeRabbit’s high-level summary is enabled.
Title check✅ PassedThe title clearly matches the main change: lowering Sentry sampling to 10% outside development.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch brendan-kellam/sentry-event-sampling-SOU-1557

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

Comment threadpackages/backend/src/instrument.ts Outdated
// to the version for builds that don't pass a commit SHA.
release: env.NEXT_PUBLIC_BUILD_COMMIT_SHA ?? SOURCEBOT_VERSION,
environment: env.NEXT_PUBLIC_SENTRY_ENVIRONMENT,
sampleRate: env.NEXT_PUBLIC_SENTRY_ENVIRONMENT === 'development' ? 1.0 : 0.1,

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Dev sampling gate never matches

Medium Severity

The Sentry sampleRate in development environments defaults to 0.1 instead of 1.0. This occurs because the backend's Sentry configuration compares NEXT_PUBLIC_SENTRY_ENVIRONMENT to 'development', while the .env.development file sets it to 'dev', preventing full error capture.

Fix in CursorFix in Web

Reviewed by Cursor Bugbot for commit 5e991c4. Configure here.

@brendan-kellambrendan-kellam changed the title chore: reduce Sentry event sampling outside developmentchore: reduce Sentry span sampling outside developmentJul 21, 2026
@brendan-kellam
brendan-kellam merged commit e1ce46b into mainJul 21, 2026
12 checks passed
@github-actionsgithub-actionsBot mentioned this pull request Jul 21, 2026
@brendan-kellam
brendan-kellam deleted the brendan-kellam/sentry-event-sampling-SOU-1557 branch July 21, 2026 19:46

@cursorcursorBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes using high effort and found 2 potential issues.

There are 3 total unresolved issues (including 1 from previous review).

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit af8c811. Configure here.

Sentry.browserProfilingIntegration(),
],
tracesSampleRate: 1.0,
tracesSampleRate: process.env.NEXT_PUBLIC_SENTRY_ENVIRONMENT === 'development' ? 1.0 : 0.1,

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Wrong Sentry sampling option

High Severity

The change intended to sample Sentry error events at 10% outside development. Instead, tracesSampleRate was modified, leaving error capture at 100%. This samples web traces and associated profiling at 10% (instead of 100%) and newly enables backend performance tracing.

Fix in CursorFix in Web

Reviewed by Cursor Bugbot for commit af8c811. Configure here.

Sentry.browserProfilingIntegration(),
],
tracesSampleRate: 1.0,
tracesSampleRate: process.env.NEXT_PUBLIC_SENTRY_ENVIRONMENT === 'development' ? 1.0 : 0.1,

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Dev sampling env mismatch

Medium Severity

The tracesSampleRate condition expects NEXT_PUBLIC_SENTRY_ENVIRONMENT to be 'development' for full sampling. The .env.development example uses 'dev', which means development environments will get a reduced sampling rate (0.1) instead of 1.0.

Fix in CursorFix in Web

Reviewed by Cursor Bugbot for commit af8c811. Configure here.

Sign up for freeto 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

@brendan-kellam
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

chore: reduce Sentry span sampling outside development - #1475

Merged
brendan-kellam merged 3 commits into
mainfrom
brendan-kellam/sentry-event-sampling-SOU-1557
Jul 21, 2026
Merged

chore: reduce Sentry span sampling outside development#1475
brendan-kellam merged 3 commits into
mainfrom
brendan-kellam/sentry-event-sampling-SOU-1557

Conversation

@brendan-kellam

@brendan-kellambrendan-kellam commented Jul 21, 2026

Copy link
Copy Markdown
Contributor

Fixes SOU-1557

Summary

  • retain 100% Sentry span sampling in development
  • sample 10% of spans in the browser, Next.js server and edge runtimes, and backend worker in every other environment
  • leave Sentry error event sampling unchanged

Testing

  • yarn workspace @sourcebot/web exec eslint src/instrumentation-client.ts src/sentry.server.config.ts src/sentry.edge.config.ts
  • yarn workspace @sourcebot/backend exec tsc --noEmit
  • yarn workspace @sourcebot/web exec tsc --noEmit --skipLibCheck --target es2022 --module esnext --moduleResolution bundler src/instrumentation-client.ts src/sentry.edge.config.ts src/sentry.server.config.ts

Summary by CodeRabbit

  • Chores
    • Adjusted Sentry performance/error capture sampling to use 100% in development and 10% outside development.
    • Applied consistently across backend, web client, server, and edge Sentry initialization.
  • Documentation
    • Updated the changelog to reflect the environment-based sampling change.

@github-actions

This comment has been minimized.

@coderabbitai

coderabbitaiBot commented Jul 21, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Walkthrough

Sentry initialization now uses a full tracing sample rate in development and a 10% rate elsewhere across backend, client, edge, and server runtimes. The changelog records this configuration change.

Changes

Sentry sampling configuration

Layer / File(s)Summary
Apply environment-based sampling
packages/backend/src/instrument.ts, packages/web/src/instrumentation-client.ts, packages/web/src/sentry.edge.config.ts, packages/web/src/sentry.server.config.ts, CHANGELOG.md
Sentry uses a 1.0tracesSampleRate in development and 0.1 otherwise across all initialization paths, and the changelog documents the change.

Estimated code review effort: 1 (Trivial) | ~5 minutes

Possibly related PRs

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check nameStatusExplanation
Docstring Coverage✅ PassedNo functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check✅ PassedCheck skipped because no linked issues were found for this pull request.
Out of Scope Changes check✅ PassedCheck skipped because no linked issues were found for this pull request.
Description Check✅ PassedCheck skipped - CodeRabbit’s high-level summary is enabled.
Title check✅ PassedThe title clearly matches the main change: lowering Sentry sampling to 10% outside development.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch brendan-kellam/sentry-event-sampling-SOU-1557

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

Comment threadpackages/backend/src/instrument.ts Outdated
// to the version for builds that don't pass a commit SHA.
release: env.NEXT_PUBLIC_BUILD_COMMIT_SHA ?? SOURCEBOT_VERSION,
environment: env.NEXT_PUBLIC_SENTRY_ENVIRONMENT,
sampleRate: env.NEXT_PUBLIC_SENTRY_ENVIRONMENT === 'development' ? 1.0 : 0.1,

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Dev sampling gate never matches

Medium Severity

The Sentry sampleRate in development environments defaults to 0.1 instead of 1.0. This occurs because the backend's Sentry configuration compares NEXT_PUBLIC_SENTRY_ENVIRONMENT to 'development', while the .env.development file sets it to 'dev', preventing full error capture.

Fix in CursorFix in Web

Reviewed by Cursor Bugbot for commit 5e991c4. Configure here.

@brendan-kellambrendan-kellam changed the title chore: reduce Sentry event sampling outside developmentchore: reduce Sentry span sampling outside developmentJul 21, 2026
@brendan-kellam
brendan-kellam merged commit e1ce46b into mainJul 21, 2026
12 checks passed
@github-actionsgithub-actionsBot mentioned this pull request Jul 21, 2026
@brendan-kellam
brendan-kellam deleted the brendan-kellam/sentry-event-sampling-SOU-1557 branch July 21, 2026 19:46

@cursorcursorBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes using high effort and found 2 potential issues.

There are 3 total unresolved issues (including 1 from previous review).

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit af8c811. Configure here.

Sentry.browserProfilingIntegration(),
],
tracesSampleRate: 1.0,
tracesSampleRate: process.env.NEXT_PUBLIC_SENTRY_ENVIRONMENT === 'development' ? 1.0 : 0.1,

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Wrong Sentry sampling option

High Severity

The change intended to sample Sentry error events at 10% outside development. Instead, tracesSampleRate was modified, leaving error capture at 100%. This samples web traces and associated profiling at 10% (instead of 100%) and newly enables backend performance tracing.

Fix in CursorFix in Web

Reviewed by Cursor Bugbot for commit af8c811. Configure here.

Sentry.browserProfilingIntegration(),
],
tracesSampleRate: 1.0,
tracesSampleRate: process.env.NEXT_PUBLIC_SENTRY_ENVIRONMENT === 'development' ? 1.0 : 0.1,

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Dev sampling env mismatch

Medium Severity

The tracesSampleRate condition expects NEXT_PUBLIC_SENTRY_ENVIRONMENT to be 'development' for full sampling. The .env.development example uses 'dev', which means development environments will get a reduced sampling rate (0.1) instead of 1.0.

Fix in CursorFix in Web

Reviewed by Cursor Bugbot for commit af8c811. Configure here.

Sign up for freeto 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

@brendan-kellam