ref(node): Streamline mongodb instrumentation - #21619

Merged
logaretm merged 1 commit into
developfrom
awad/js-2388-streamline-opentelemetryinstrumentation-mongodb
Jun 18, 2026
Merged

ref(node): Streamline mongodb instrumentation#21619
logaretm merged 1 commit into
developfrom
awad/js-2388-streamline-opentelemetryinstrumentation-mongodb

Conversation

@logaretm

@logaretmlogaretm commented Jun 17, 2026

Copy link
Copy Markdown
Member

Streamlines the vendored mongodb instrumentation to use Sentry's span APIs instead of the OpenTelemetry tracing APIs.

@linear-code

Copy link
Copy Markdown

JS-2388

@github-actions

github-actionsBot commented Jun 17, 2026

Copy link
Copy Markdown
Contributor

size-limit report 📦

PathSize% ChangeChange
@sentry/browser27.45 kB--
@sentry/browser - with treeshaking flags25.88 kB--
@sentry/browser (incl. Tracing)45.88 kB--
@sentry/browser (incl. Tracing + Span Streaming)48.11 kB--
@sentry/browser (incl. Tracing, Profiling)50.65 kB--
@sentry/browser (incl. Tracing, Replay)85.08 kB--
@sentry/browser (incl. Tracing, Replay) - with treeshaking flags74.68 kB--
@sentry/browser (incl. Tracing, Replay with Canvas)89.78 kB--
@sentry/browser (incl. Tracing, Replay, Feedback)102.44 kB--
@sentry/browser (incl. Feedback)44.62 kB--
@sentry/browser (incl. sendFeedback)32.25 kB--
@sentry/browser (incl. FeedbackAsync)37.38 kB--
@sentry/browser (incl. Metrics)28.52 kB--
@sentry/browser (incl. Logs)28.76 kB--
@sentry/browser (incl. Metrics & Logs)29.45 kB--
@sentry/react29.25 kB--
@sentry/react (incl. Tracing)48.17 kB--
@sentry/vue32.56 kB--
@sentry/vue (incl. Tracing)47.74 kB--
@sentry/svelte27.48 kB--
CDN Bundle29.86 kB--
CDN Bundle (incl. Tracing)48.28 kB--
CDN Bundle (incl. Logs, Metrics)31.4 kB--
CDN Bundle (incl. Tracing, Logs, Metrics)49.58 kB--
CDN Bundle (incl. Replay, Logs, Metrics)70.71 kB--
CDN Bundle (incl. Tracing, Replay)85.61 kB--
CDN Bundle (incl. Tracing, Replay, Logs, Metrics)86.88 kB--
CDN Bundle (incl. Tracing, Replay, Feedback)91.46 kB--
CDN Bundle (incl. Tracing, Replay, Feedback, Logs, Metrics)92.71 kB--
CDN Bundle - uncompressed88.8 kB--
CDN Bundle (incl. Tracing) - uncompressed146.04 kB--
CDN Bundle (incl. Logs, Metrics) - uncompressed93.5 kB--
CDN Bundle (incl. Tracing, Logs, Metrics) - uncompressed150.02 kB--
CDN Bundle (incl. Replay, Logs, Metrics) - uncompressed218.33 kB--
CDN Bundle (incl. Tracing, Replay) - uncompressed264.91 kB--
CDN Bundle (incl. Tracing, Replay, Logs, Metrics) - uncompressed268.87 kB--
CDN Bundle (incl. Tracing, Replay, Feedback) - uncompressed278.61 kB--
CDN Bundle (incl. Tracing, Replay, Feedback, Logs, Metrics) - uncompressed282.56 kB--
@sentry/nextjs (client)50.58 kB--
@sentry/sveltekit (client)46.27 kB--
@sentry/core/server76.16 kB--
@sentry/core/browser63.31 kB--
@sentry/node-core61.87 kB-0.01%-1 B 🔽
@sentry/node126.75 kB-0.74%-933 B 🔽
@sentry/node - without tracing74.26 kB--
@sentry/aws-serverless85.35 kB--
@sentry/cloudflare (withSentry) - minified174.48 kB--
@sentry/cloudflare (withSentry)436.52 kB--

View base workflow run

@logaretm
logaretmforce-pushed the awad/js-2388-streamline-opentelemetryinstrumentation-mongodb branch from 8c0b859 to d79e1cdCompareJune 17, 2026 18:29
@logaretm
logaretm marked this pull request as ready for review June 17, 2026 18:45
@logaretm
logaretm requested a review from a team as a code ownerJune 17, 2026 18:45
@logaretm
logaretm requested review from JPeer264, andreiborza, mydea and nicohrubec and removed request for a teamJune 17, 2026 18:45
@logaretm
logaretmforce-pushed the awad/js-2388-streamline-opentelemetryinstrumentation-mongodb branch from d79e1cd to d0846c8CompareJune 18, 2026 02:36
v4PatchConnectionPool,
v4UnpatchConnectionPool,
),
new InstrumentationNodeModuleFile(

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

q: Is there a specific reason why this is not needed anymore?

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

Those are metrics only, they don't do spans

@logaretm
logaretmforce-pushed the awad/js-2388-streamline-opentelemetryinstrumentation-mongodb branch from d0846c8 to ad2a160CompareJune 18, 2026 15:19
Streamlines the vendored `mongodb` instrumentation to use Sentry's span
APIs instead of the OpenTelemetry tracing APIs, following the
redis/pg/mongoose precedent.
- Replace `tracer.startSpan` with `startInactiveSpan`, the
`trace.getSpan(context.active())` + `requireParentSpan` guard with a
`getActiveSpan()` check, `SpanStatusCode.ERROR` with `SPAN_STATUS_ERROR`,
and the `context.with(...)`/`context.bind(...)` propagation with
`withActiveSpan` (result-handler re-activation and the pool `checkOut`
rebind). Drop `recordException` and the `_diag` logger.
- Drop the OTel connection-usage metrics: the SDK wires up no
`MeterProvider`, so `this.meter` is the no-op meter and every `add` was
dead. Also removes the session and connect patches that existed only to
feed those metrics (they create no spans, so span output is unchanged).
- Drop the `SemconvStability` dual-emission and keep the OLD semconv
attributes only (the STABLE path was env-gated behind
`OTEL_SEMCONV_STABILITY_OPT_IN` and never enabled by the SDK).
- Remove config the SDK never passes (`responseHook`, the configurable
`dbStatementSerializer`, `requireParentSpan`); move the always-on
statement serializer into the vendored code and bake the
`auto.db.otel.mongo` origin into the span attributes instead of an
`index.ts` responseHook.
- Drop the blanket eslint-disable, type the module, and split the helpers
(`utils.ts`) and wrap factories (`patches.ts`) out of the class to keep
each vendored file within `max-lines`.
Removes the config-passing `Mongo` unit test (its serializer logic is
covered end-to-end by the integration suite) and extends the real suite
with an error path: a server-rejected query asserts `status:
'internal_error'` with the origin and `db.statement` preserved.
@logaretm
logaretmforce-pushed the awad/js-2388-streamline-opentelemetryinstrumentation-mongodb branch from ad2a160 to c8f6e1aCompareJune 18, 2026 15:19

@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 and found 1 potential issue.

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 c8f6e1a. Configure here.

kind: SpanKind.CLIENT,
attributes,
});
}

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Missing db span metadata

High Severity

startMongoSpan creates native Sentry spans with name mongodb.${operation} and no sentry.op attribute. Finished spans expose description from that name and op from sentry.op in attributes, unlike the prior OTel exporter path that inferred op: db and a statement-based description from db.system / db.statement.

Fix in CursorFix in Web

Reviewed by Cursor Bugbot for commit c8f6e1a. Configure here.

@logaretm
logaretm merged commit 165ec27 into developJun 18, 2026
176 checks passed
@logaretm
logaretm deleted the awad/js-2388-streamline-opentelemetryinstrumentation-mongodb branch June 18, 2026 16:34
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.

2 participants

@logaretm@JPeer264
, '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

ref(node): Streamline mongodb instrumentation - #21619

Merged
logaretm merged 1 commit into
developfrom
awad/js-2388-streamline-opentelemetryinstrumentation-mongodb
Jun 18, 2026
Merged

ref(node): Streamline mongodb instrumentation#21619
logaretm merged 1 commit into
developfrom
awad/js-2388-streamline-opentelemetryinstrumentation-mongodb

Conversation

@logaretm

@logaretmlogaretm commented Jun 17, 2026

Copy link
Copy Markdown
Member

Streamlines the vendored mongodb instrumentation to use Sentry's span APIs instead of the OpenTelemetry tracing APIs.

@linear-code

Copy link
Copy Markdown

JS-2388

@github-actions

github-actionsBot commented Jun 17, 2026

Copy link
Copy Markdown
Contributor

size-limit report 📦

PathSize% ChangeChange
@sentry/browser27.45 kB--
@sentry/browser - with treeshaking flags25.88 kB--
@sentry/browser (incl. Tracing)45.88 kB--
@sentry/browser (incl. Tracing + Span Streaming)48.11 kB--
@sentry/browser (incl. Tracing, Profiling)50.65 kB--
@sentry/browser (incl. Tracing, Replay)85.08 kB--
@sentry/browser (incl. Tracing, Replay) - with treeshaking flags74.68 kB--
@sentry/browser (incl. Tracing, Replay with Canvas)89.78 kB--
@sentry/browser (incl. Tracing, Replay, Feedback)102.44 kB--
@sentry/browser (incl. Feedback)44.62 kB--
@sentry/browser (incl. sendFeedback)32.25 kB--
@sentry/browser (incl. FeedbackAsync)37.38 kB--
@sentry/browser (incl. Metrics)28.52 kB--
@sentry/browser (incl. Logs)28.76 kB--
@sentry/browser (incl. Metrics & Logs)29.45 kB--
@sentry/react29.25 kB--
@sentry/react (incl. Tracing)48.17 kB--
@sentry/vue32.56 kB--
@sentry/vue (incl. Tracing)47.74 kB--
@sentry/svelte27.48 kB--
CDN Bundle29.86 kB--
CDN Bundle (incl. Tracing)48.28 kB--
CDN Bundle (incl. Logs, Metrics)31.4 kB--
CDN Bundle (incl. Tracing, Logs, Metrics)49.58 kB--
CDN Bundle (incl. Replay, Logs, Metrics)70.71 kB--
CDN Bundle (incl. Tracing, Replay)85.61 kB--
CDN Bundle (incl. Tracing, Replay, Logs, Metrics)86.88 kB--
CDN Bundle (incl. Tracing, Replay, Feedback)91.46 kB--
CDN Bundle (incl. Tracing, Replay, Feedback, Logs, Metrics)92.71 kB--
CDN Bundle - uncompressed88.8 kB--
CDN Bundle (incl. Tracing) - uncompressed146.04 kB--
CDN Bundle (incl. Logs, Metrics) - uncompressed93.5 kB--
CDN Bundle (incl. Tracing, Logs, Metrics) - uncompressed150.02 kB--
CDN Bundle (incl. Replay, Logs, Metrics) - uncompressed218.33 kB--
CDN Bundle (incl. Tracing, Replay) - uncompressed264.91 kB--
CDN Bundle (incl. Tracing, Replay, Logs, Metrics) - uncompressed268.87 kB--
CDN Bundle (incl. Tracing, Replay, Feedback) - uncompressed278.61 kB--
CDN Bundle (incl. Tracing, Replay, Feedback, Logs, Metrics) - uncompressed282.56 kB--
@sentry/nextjs (client)50.58 kB--
@sentry/sveltekit (client)46.27 kB--
@sentry/core/server76.16 kB--
@sentry/core/browser63.31 kB--
@sentry/node-core61.87 kB-0.01%-1 B 🔽
@sentry/node126.75 kB-0.74%-933 B 🔽
@sentry/node - without tracing74.26 kB--
@sentry/aws-serverless85.35 kB--
@sentry/cloudflare (withSentry) - minified174.48 kB--
@sentry/cloudflare (withSentry)436.52 kB--

View base workflow run

@logaretm
logaretmforce-pushed the awad/js-2388-streamline-opentelemetryinstrumentation-mongodb branch from 8c0b859 to d79e1cdCompareJune 17, 2026 18:29
@logaretm
logaretm marked this pull request as ready for review June 17, 2026 18:45
@logaretm
logaretm requested a review from a team as a code ownerJune 17, 2026 18:45
@logaretm
logaretm requested review from JPeer264, andreiborza, mydea and nicohrubec and removed request for a teamJune 17, 2026 18:45
@logaretm
logaretmforce-pushed the awad/js-2388-streamline-opentelemetryinstrumentation-mongodb branch from d79e1cd to d0846c8CompareJune 18, 2026 02:36
v4PatchConnectionPool,
v4UnpatchConnectionPool,
),
new InstrumentationNodeModuleFile(

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

q: Is there a specific reason why this is not needed anymore?

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

Those are metrics only, they don't do spans

@logaretm
logaretmforce-pushed the awad/js-2388-streamline-opentelemetryinstrumentation-mongodb branch from d0846c8 to ad2a160CompareJune 18, 2026 15:19
Streamlines the vendored `mongodb` instrumentation to use Sentry's span
APIs instead of the OpenTelemetry tracing APIs, following the
redis/pg/mongoose precedent.
- Replace `tracer.startSpan` with `startInactiveSpan`, the
`trace.getSpan(context.active())` + `requireParentSpan` guard with a
`getActiveSpan()` check, `SpanStatusCode.ERROR` with `SPAN_STATUS_ERROR`,
and the `context.with(...)`/`context.bind(...)` propagation with
`withActiveSpan` (result-handler re-activation and the pool `checkOut`
rebind). Drop `recordException` and the `_diag` logger.
- Drop the OTel connection-usage metrics: the SDK wires up no
`MeterProvider`, so `this.meter` is the no-op meter and every `add` was
dead. Also removes the session and connect patches that existed only to
feed those metrics (they create no spans, so span output is unchanged).
- Drop the `SemconvStability` dual-emission and keep the OLD semconv
attributes only (the STABLE path was env-gated behind
`OTEL_SEMCONV_STABILITY_OPT_IN` and never enabled by the SDK).
- Remove config the SDK never passes (`responseHook`, the configurable
`dbStatementSerializer`, `requireParentSpan`); move the always-on
statement serializer into the vendored code and bake the
`auto.db.otel.mongo` origin into the span attributes instead of an
`index.ts` responseHook.
- Drop the blanket eslint-disable, type the module, and split the helpers
(`utils.ts`) and wrap factories (`patches.ts`) out of the class to keep
each vendored file within `max-lines`.
Removes the config-passing `Mongo` unit test (its serializer logic is
covered end-to-end by the integration suite) and extends the real suite
with an error path: a server-rejected query asserts `status:
'internal_error'` with the origin and `db.statement` preserved.
@logaretm
logaretmforce-pushed the awad/js-2388-streamline-opentelemetryinstrumentation-mongodb branch from ad2a160 to c8f6e1aCompareJune 18, 2026 15:19

@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 and found 1 potential issue.

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 c8f6e1a. Configure here.

kind: SpanKind.CLIENT,
attributes,
});
}

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Missing db span metadata

High Severity

startMongoSpan creates native Sentry spans with name mongodb.${operation} and no sentry.op attribute. Finished spans expose description from that name and op from sentry.op in attributes, unlike the prior OTel exporter path that inferred op: db and a statement-based description from db.system / db.statement.

Fix in CursorFix in Web

Reviewed by Cursor Bugbot for commit c8f6e1a. Configure here.

@logaretm
logaretm merged commit 165ec27 into developJun 18, 2026
176 checks passed
@logaretm
logaretm deleted the awad/js-2388-streamline-opentelemetryinstrumentation-mongodb branch June 18, 2026 16:34
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.

2 participants

@logaretm@JPeer264
, '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

ref(node): Streamline mongodb instrumentation - #21619

Merged
logaretm merged 1 commit into
developfrom
awad/js-2388-streamline-opentelemetryinstrumentation-mongodb
Jun 18, 2026
Merged

ref(node): Streamline mongodb instrumentation#21619
logaretm merged 1 commit into
developfrom
awad/js-2388-streamline-opentelemetryinstrumentation-mongodb

Conversation

@logaretm

@logaretmlogaretm commented Jun 17, 2026

Copy link
Copy Markdown
Member

Streamlines the vendored mongodb instrumentation to use Sentry's span APIs instead of the OpenTelemetry tracing APIs.

@linear-code

Copy link
Copy Markdown

JS-2388

@github-actions

github-actionsBot commented Jun 17, 2026

Copy link
Copy Markdown
Contributor

size-limit report 📦

PathSize% ChangeChange
@sentry/browser27.45 kB--
@sentry/browser - with treeshaking flags25.88 kB--
@sentry/browser (incl. Tracing)45.88 kB--
@sentry/browser (incl. Tracing + Span Streaming)48.11 kB--
@sentry/browser (incl. Tracing, Profiling)50.65 kB--
@sentry/browser (incl. Tracing, Replay)85.08 kB--
@sentry/browser (incl. Tracing, Replay) - with treeshaking flags74.68 kB--
@sentry/browser (incl. Tracing, Replay with Canvas)89.78 kB--
@sentry/browser (incl. Tracing, Replay, Feedback)102.44 kB--
@sentry/browser (incl. Feedback)44.62 kB--
@sentry/browser (incl. sendFeedback)32.25 kB--
@sentry/browser (incl. FeedbackAsync)37.38 kB--
@sentry/browser (incl. Metrics)28.52 kB--
@sentry/browser (incl. Logs)28.76 kB--
@sentry/browser (incl. Metrics & Logs)29.45 kB--
@sentry/react29.25 kB--
@sentry/react (incl. Tracing)48.17 kB--
@sentry/vue32.56 kB--
@sentry/vue (incl. Tracing)47.74 kB--
@sentry/svelte27.48 kB--
CDN Bundle29.86 kB--
CDN Bundle (incl. Tracing)48.28 kB--
CDN Bundle (incl. Logs, Metrics)31.4 kB--
CDN Bundle (incl. Tracing, Logs, Metrics)49.58 kB--
CDN Bundle (incl. Replay, Logs, Metrics)70.71 kB--
CDN Bundle (incl. Tracing, Replay)85.61 kB--
CDN Bundle (incl. Tracing, Replay, Logs, Metrics)86.88 kB--
CDN Bundle (incl. Tracing, Replay, Feedback)91.46 kB--
CDN Bundle (incl. Tracing, Replay, Feedback, Logs, Metrics)92.71 kB--
CDN Bundle - uncompressed88.8 kB--
CDN Bundle (incl. Tracing) - uncompressed146.04 kB--
CDN Bundle (incl. Logs, Metrics) - uncompressed93.5 kB--
CDN Bundle (incl. Tracing, Logs, Metrics) - uncompressed150.02 kB--
CDN Bundle (incl. Replay, Logs, Metrics) - uncompressed218.33 kB--
CDN Bundle (incl. Tracing, Replay) - uncompressed264.91 kB--
CDN Bundle (incl. Tracing, Replay, Logs, Metrics) - uncompressed268.87 kB--
CDN Bundle (incl. Tracing, Replay, Feedback) - uncompressed278.61 kB--
CDN Bundle (incl. Tracing, Replay, Feedback, Logs, Metrics) - uncompressed282.56 kB--
@sentry/nextjs (client)50.58 kB--
@sentry/sveltekit (client)46.27 kB--
@sentry/core/server76.16 kB--
@sentry/core/browser63.31 kB--
@sentry/node-core61.87 kB-0.01%-1 B 🔽
@sentry/node126.75 kB-0.74%-933 B 🔽
@sentry/node - without tracing74.26 kB--
@sentry/aws-serverless85.35 kB--
@sentry/cloudflare (withSentry) - minified174.48 kB--
@sentry/cloudflare (withSentry)436.52 kB--

View base workflow run

@logaretm
logaretmforce-pushed the awad/js-2388-streamline-opentelemetryinstrumentation-mongodb branch from 8c0b859 to d79e1cdCompareJune 17, 2026 18:29
@logaretm
logaretm marked this pull request as ready for review June 17, 2026 18:45
@logaretm
logaretm requested a review from a team as a code ownerJune 17, 2026 18:45
@logaretm
logaretm requested review from JPeer264, andreiborza, mydea and nicohrubec and removed request for a teamJune 17, 2026 18:45
@logaretm
logaretmforce-pushed the awad/js-2388-streamline-opentelemetryinstrumentation-mongodb branch from d79e1cd to d0846c8CompareJune 18, 2026 02:36
v4PatchConnectionPool,
v4UnpatchConnectionPool,
),
new InstrumentationNodeModuleFile(

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

q: Is there a specific reason why this is not needed anymore?

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

Those are metrics only, they don't do spans

@logaretm
logaretmforce-pushed the awad/js-2388-streamline-opentelemetryinstrumentation-mongodb branch from d0846c8 to ad2a160CompareJune 18, 2026 15:19
Streamlines the vendored `mongodb` instrumentation to use Sentry's span
APIs instead of the OpenTelemetry tracing APIs, following the
redis/pg/mongoose precedent.
- Replace `tracer.startSpan` with `startInactiveSpan`, the
`trace.getSpan(context.active())` + `requireParentSpan` guard with a
`getActiveSpan()` check, `SpanStatusCode.ERROR` with `SPAN_STATUS_ERROR`,
and the `context.with(...)`/`context.bind(...)` propagation with
`withActiveSpan` (result-handler re-activation and the pool `checkOut`
rebind). Drop `recordException` and the `_diag` logger.
- Drop the OTel connection-usage metrics: the SDK wires up no
`MeterProvider`, so `this.meter` is the no-op meter and every `add` was
dead. Also removes the session and connect patches that existed only to
feed those metrics (they create no spans, so span output is unchanged).
- Drop the `SemconvStability` dual-emission and keep the OLD semconv
attributes only (the STABLE path was env-gated behind
`OTEL_SEMCONV_STABILITY_OPT_IN` and never enabled by the SDK).
- Remove config the SDK never passes (`responseHook`, the configurable
`dbStatementSerializer`, `requireParentSpan`); move the always-on
statement serializer into the vendored code and bake the
`auto.db.otel.mongo` origin into the span attributes instead of an
`index.ts` responseHook.
- Drop the blanket eslint-disable, type the module, and split the helpers
(`utils.ts`) and wrap factories (`patches.ts`) out of the class to keep
each vendored file within `max-lines`.
Removes the config-passing `Mongo` unit test (its serializer logic is
covered end-to-end by the integration suite) and extends the real suite
with an error path: a server-rejected query asserts `status:
'internal_error'` with the origin and `db.statement` preserved.
@logaretm
logaretmforce-pushed the awad/js-2388-streamline-opentelemetryinstrumentation-mongodb branch from ad2a160 to c8f6e1aCompareJune 18, 2026 15:19

@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 and found 1 potential issue.

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 c8f6e1a. Configure here.

kind: SpanKind.CLIENT,
attributes,
});
}

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Missing db span metadata

High Severity

startMongoSpan creates native Sentry spans with name mongodb.${operation} and no sentry.op attribute. Finished spans expose description from that name and op from sentry.op in attributes, unlike the prior OTel exporter path that inferred op: db and a statement-based description from db.system / db.statement.

Fix in CursorFix in Web

Reviewed by Cursor Bugbot for commit c8f6e1a. Configure here.

@logaretm
logaretm merged commit 165ec27 into developJun 18, 2026
176 checks passed
@logaretm
logaretm deleted the awad/js-2388-streamline-opentelemetryinstrumentation-mongodb branch June 18, 2026 16:34
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.

2 participants

@logaretm@JPeer264
, '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

ref(node): Streamline mongodb instrumentation - #21619

Merged
logaretm merged 1 commit into
developfrom
awad/js-2388-streamline-opentelemetryinstrumentation-mongodb
Jun 18, 2026
Merged

ref(node): Streamline mongodb instrumentation#21619
logaretm merged 1 commit into
developfrom
awad/js-2388-streamline-opentelemetryinstrumentation-mongodb

Conversation

@logaretm

@logaretmlogaretm commented Jun 17, 2026

Copy link
Copy Markdown
Member

Streamlines the vendored mongodb instrumentation to use Sentry's span APIs instead of the OpenTelemetry tracing APIs.

@linear-code

Copy link
Copy Markdown

JS-2388

@github-actions

github-actionsBot commented Jun 17, 2026

Copy link
Copy Markdown
Contributor

size-limit report 📦

PathSize% ChangeChange
@sentry/browser27.45 kB--
@sentry/browser - with treeshaking flags25.88 kB--
@sentry/browser (incl. Tracing)45.88 kB--
@sentry/browser (incl. Tracing + Span Streaming)48.11 kB--
@sentry/browser (incl. Tracing, Profiling)50.65 kB--
@sentry/browser (incl. Tracing, Replay)85.08 kB--
@sentry/browser (incl. Tracing, Replay) - with treeshaking flags74.68 kB--
@sentry/browser (incl. Tracing, Replay with Canvas)89.78 kB--
@sentry/browser (incl. Tracing, Replay, Feedback)102.44 kB--
@sentry/browser (incl. Feedback)44.62 kB--
@sentry/browser (incl. sendFeedback)32.25 kB--
@sentry/browser (incl. FeedbackAsync)37.38 kB--
@sentry/browser (incl. Metrics)28.52 kB--
@sentry/browser (incl. Logs)28.76 kB--
@sentry/browser (incl. Metrics & Logs)29.45 kB--
@sentry/react29.25 kB--
@sentry/react (incl. Tracing)48.17 kB--
@sentry/vue32.56 kB--
@sentry/vue (incl. Tracing)47.74 kB--
@sentry/svelte27.48 kB--
CDN Bundle29.86 kB--
CDN Bundle (incl. Tracing)48.28 kB--
CDN Bundle (incl. Logs, Metrics)31.4 kB--
CDN Bundle (incl. Tracing, Logs, Metrics)49.58 kB--
CDN Bundle (incl. Replay, Logs, Metrics)70.71 kB--
CDN Bundle (incl. Tracing, Replay)85.61 kB--
CDN Bundle (incl. Tracing, Replay, Logs, Metrics)86.88 kB--
CDN Bundle (incl. Tracing, Replay, Feedback)91.46 kB--
CDN Bundle (incl. Tracing, Replay, Feedback, Logs, Metrics)92.71 kB--
CDN Bundle - uncompressed88.8 kB--
CDN Bundle (incl. Tracing) - uncompressed146.04 kB--
CDN Bundle (incl. Logs, Metrics) - uncompressed93.5 kB--
CDN Bundle (incl. Tracing, Logs, Metrics) - uncompressed150.02 kB--
CDN Bundle (incl. Replay, Logs, Metrics) - uncompressed218.33 kB--
CDN Bundle (incl. Tracing, Replay) - uncompressed264.91 kB--
CDN Bundle (incl. Tracing, Replay, Logs, Metrics) - uncompressed268.87 kB--
CDN Bundle (incl. Tracing, Replay, Feedback) - uncompressed278.61 kB--
CDN Bundle (incl. Tracing, Replay, Feedback, Logs, Metrics) - uncompressed282.56 kB--
@sentry/nextjs (client)50.58 kB--
@sentry/sveltekit (client)46.27 kB--
@sentry/core/server76.16 kB--
@sentry/core/browser63.31 kB--
@sentry/node-core61.87 kB-0.01%-1 B 🔽
@sentry/node126.75 kB-0.74%-933 B 🔽
@sentry/node - without tracing74.26 kB--
@sentry/aws-serverless85.35 kB--
@sentry/cloudflare (withSentry) - minified174.48 kB--
@sentry/cloudflare (withSentry)436.52 kB--

View base workflow run

@logaretm
logaretmforce-pushed the awad/js-2388-streamline-opentelemetryinstrumentation-mongodb branch from 8c0b859 to d79e1cdCompareJune 17, 2026 18:29
@logaretm
logaretm marked this pull request as ready for review June 17, 2026 18:45
@logaretm
logaretm requested a review from a team as a code ownerJune 17, 2026 18:45
@logaretm
logaretm requested review from JPeer264, andreiborza, mydea and nicohrubec and removed request for a teamJune 17, 2026 18:45
@logaretm
logaretmforce-pushed the awad/js-2388-streamline-opentelemetryinstrumentation-mongodb branch from d79e1cd to d0846c8CompareJune 18, 2026 02:36
v4PatchConnectionPool,
v4UnpatchConnectionPool,
),
new InstrumentationNodeModuleFile(

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

q: Is there a specific reason why this is not needed anymore?

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

Those are metrics only, they don't do spans

@logaretm
logaretmforce-pushed the awad/js-2388-streamline-opentelemetryinstrumentation-mongodb branch from d0846c8 to ad2a160CompareJune 18, 2026 15:19
Streamlines the vendored `mongodb` instrumentation to use Sentry's span
APIs instead of the OpenTelemetry tracing APIs, following the
redis/pg/mongoose precedent.
- Replace `tracer.startSpan` with `startInactiveSpan`, the
`trace.getSpan(context.active())` + `requireParentSpan` guard with a
`getActiveSpan()` check, `SpanStatusCode.ERROR` with `SPAN_STATUS_ERROR`,
and the `context.with(...)`/`context.bind(...)` propagation with
`withActiveSpan` (result-handler re-activation and the pool `checkOut`
rebind). Drop `recordException` and the `_diag` logger.
- Drop the OTel connection-usage metrics: the SDK wires up no
`MeterProvider`, so `this.meter` is the no-op meter and every `add` was
dead. Also removes the session and connect patches that existed only to
feed those metrics (they create no spans, so span output is unchanged).
- Drop the `SemconvStability` dual-emission and keep the OLD semconv
attributes only (the STABLE path was env-gated behind
`OTEL_SEMCONV_STABILITY_OPT_IN` and never enabled by the SDK).
- Remove config the SDK never passes (`responseHook`, the configurable
`dbStatementSerializer`, `requireParentSpan`); move the always-on
statement serializer into the vendored code and bake the
`auto.db.otel.mongo` origin into the span attributes instead of an
`index.ts` responseHook.
- Drop the blanket eslint-disable, type the module, and split the helpers
(`utils.ts`) and wrap factories (`patches.ts`) out of the class to keep
each vendored file within `max-lines`.
Removes the config-passing `Mongo` unit test (its serializer logic is
covered end-to-end by the integration suite) and extends the real suite
with an error path: a server-rejected query asserts `status:
'internal_error'` with the origin and `db.statement` preserved.
@logaretm
logaretmforce-pushed the awad/js-2388-streamline-opentelemetryinstrumentation-mongodb branch from ad2a160 to c8f6e1aCompareJune 18, 2026 15:19

@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 and found 1 potential issue.

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 c8f6e1a. Configure here.

kind: SpanKind.CLIENT,
attributes,
});
}

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Missing db span metadata

High Severity

startMongoSpan creates native Sentry spans with name mongodb.${operation} and no sentry.op attribute. Finished spans expose description from that name and op from sentry.op in attributes, unlike the prior OTel exporter path that inferred op: db and a statement-based description from db.system / db.statement.

Fix in CursorFix in Web

Reviewed by Cursor Bugbot for commit c8f6e1a. Configure here.

@logaretm
logaretm merged commit 165ec27 into developJun 18, 2026
176 checks passed
@logaretm
logaretm deleted the awad/js-2388-streamline-opentelemetryinstrumentation-mongodb branch June 18, 2026 16:34
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.

2 participants

@logaretm@JPeer264
, '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

ref(node): Streamline mongodb instrumentation - #21619

Merged
logaretm merged 1 commit into
developfrom
awad/js-2388-streamline-opentelemetryinstrumentation-mongodb
Jun 18, 2026
Merged

ref(node): Streamline mongodb instrumentation#21619
logaretm merged 1 commit into
developfrom
awad/js-2388-streamline-opentelemetryinstrumentation-mongodb

Conversation

@logaretm

@logaretmlogaretm commented Jun 17, 2026

Copy link
Copy Markdown
Member

Streamlines the vendored mongodb instrumentation to use Sentry's span APIs instead of the OpenTelemetry tracing APIs.

@linear-code

Copy link
Copy Markdown

JS-2388

@github-actions

github-actionsBot commented Jun 17, 2026

Copy link
Copy Markdown
Contributor

size-limit report 📦

PathSize% ChangeChange
@sentry/browser27.45 kB--
@sentry/browser - with treeshaking flags25.88 kB--
@sentry/browser (incl. Tracing)45.88 kB--
@sentry/browser (incl. Tracing + Span Streaming)48.11 kB--
@sentry/browser (incl. Tracing, Profiling)50.65 kB--
@sentry/browser (incl. Tracing, Replay)85.08 kB--
@sentry/browser (incl. Tracing, Replay) - with treeshaking flags74.68 kB--
@sentry/browser (incl. Tracing, Replay with Canvas)89.78 kB--
@sentry/browser (incl. Tracing, Replay, Feedback)102.44 kB--
@sentry/browser (incl. Feedback)44.62 kB--
@sentry/browser (incl. sendFeedback)32.25 kB--
@sentry/browser (incl. FeedbackAsync)37.38 kB--
@sentry/browser (incl. Metrics)28.52 kB--
@sentry/browser (incl. Logs)28.76 kB--
@sentry/browser (incl. Metrics & Logs)29.45 kB--
@sentry/react29.25 kB--
@sentry/react (incl. Tracing)48.17 kB--
@sentry/vue32.56 kB--
@sentry/vue (incl. Tracing)47.74 kB--
@sentry/svelte27.48 kB--
CDN Bundle29.86 kB--
CDN Bundle (incl. Tracing)48.28 kB--
CDN Bundle (incl. Logs, Metrics)31.4 kB--
CDN Bundle (incl. Tracing, Logs, Metrics)49.58 kB--
CDN Bundle (incl. Replay, Logs, Metrics)70.71 kB--
CDN Bundle (incl. Tracing, Replay)85.61 kB--
CDN Bundle (incl. Tracing, Replay, Logs, Metrics)86.88 kB--
CDN Bundle (incl. Tracing, Replay, Feedback)91.46 kB--
CDN Bundle (incl. Tracing, Replay, Feedback, Logs, Metrics)92.71 kB--
CDN Bundle - uncompressed88.8 kB--
CDN Bundle (incl. Tracing) - uncompressed146.04 kB--
CDN Bundle (incl. Logs, Metrics) - uncompressed93.5 kB--
CDN Bundle (incl. Tracing, Logs, Metrics) - uncompressed150.02 kB--
CDN Bundle (incl. Replay, Logs, Metrics) - uncompressed218.33 kB--
CDN Bundle (incl. Tracing, Replay) - uncompressed264.91 kB--
CDN Bundle (incl. Tracing, Replay, Logs, Metrics) - uncompressed268.87 kB--
CDN Bundle (incl. Tracing, Replay, Feedback) - uncompressed278.61 kB--
CDN Bundle (incl. Tracing, Replay, Feedback, Logs, Metrics) - uncompressed282.56 kB--
@sentry/nextjs (client)50.58 kB--
@sentry/sveltekit (client)46.27 kB--
@sentry/core/server76.16 kB--
@sentry/core/browser63.31 kB--
@sentry/node-core61.87 kB-0.01%-1 B 🔽
@sentry/node126.75 kB-0.74%-933 B 🔽
@sentry/node - without tracing74.26 kB--
@sentry/aws-serverless85.35 kB--
@sentry/cloudflare (withSentry) - minified174.48 kB--
@sentry/cloudflare (withSentry)436.52 kB--

View base workflow run

@logaretm
logaretmforce-pushed the awad/js-2388-streamline-opentelemetryinstrumentation-mongodb branch from 8c0b859 to d79e1cdCompareJune 17, 2026 18:29
@logaretm
logaretm marked this pull request as ready for review June 17, 2026 18:45
@logaretm
logaretm requested a review from a team as a code ownerJune 17, 2026 18:45
@logaretm
logaretm requested review from JPeer264, andreiborza, mydea and nicohrubec and removed request for a teamJune 17, 2026 18:45
@logaretm
logaretmforce-pushed the awad/js-2388-streamline-opentelemetryinstrumentation-mongodb branch from d79e1cd to d0846c8CompareJune 18, 2026 02:36
v4PatchConnectionPool,
v4UnpatchConnectionPool,
),
new InstrumentationNodeModuleFile(

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

q: Is there a specific reason why this is not needed anymore?

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

Those are metrics only, they don't do spans

@logaretm
logaretmforce-pushed the awad/js-2388-streamline-opentelemetryinstrumentation-mongodb branch from d0846c8 to ad2a160CompareJune 18, 2026 15:19
Streamlines the vendored `mongodb` instrumentation to use Sentry's span
APIs instead of the OpenTelemetry tracing APIs, following the
redis/pg/mongoose precedent.
- Replace `tracer.startSpan` with `startInactiveSpan`, the
`trace.getSpan(context.active())` + `requireParentSpan` guard with a
`getActiveSpan()` check, `SpanStatusCode.ERROR` with `SPAN_STATUS_ERROR`,
and the `context.with(...)`/`context.bind(...)` propagation with
`withActiveSpan` (result-handler re-activation and the pool `checkOut`
rebind). Drop `recordException` and the `_diag` logger.
- Drop the OTel connection-usage metrics: the SDK wires up no
`MeterProvider`, so `this.meter` is the no-op meter and every `add` was
dead. Also removes the session and connect patches that existed only to
feed those metrics (they create no spans, so span output is unchanged).
- Drop the `SemconvStability` dual-emission and keep the OLD semconv
attributes only (the STABLE path was env-gated behind
`OTEL_SEMCONV_STABILITY_OPT_IN` and never enabled by the SDK).
- Remove config the SDK never passes (`responseHook`, the configurable
`dbStatementSerializer`, `requireParentSpan`); move the always-on
statement serializer into the vendored code and bake the
`auto.db.otel.mongo` origin into the span attributes instead of an
`index.ts` responseHook.
- Drop the blanket eslint-disable, type the module, and split the helpers
(`utils.ts`) and wrap factories (`patches.ts`) out of the class to keep
each vendored file within `max-lines`.
Removes the config-passing `Mongo` unit test (its serializer logic is
covered end-to-end by the integration suite) and extends the real suite
with an error path: a server-rejected query asserts `status:
'internal_error'` with the origin and `db.statement` preserved.
@logaretm
logaretmforce-pushed the awad/js-2388-streamline-opentelemetryinstrumentation-mongodb branch from ad2a160 to c8f6e1aCompareJune 18, 2026 15:19

@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 and found 1 potential issue.

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 c8f6e1a. Configure here.

kind: SpanKind.CLIENT,
attributes,
});
}

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Missing db span metadata

High Severity

startMongoSpan creates native Sentry spans with name mongodb.${operation} and no sentry.op attribute. Finished spans expose description from that name and op from sentry.op in attributes, unlike the prior OTel exporter path that inferred op: db and a statement-based description from db.system / db.statement.

Fix in CursorFix in Web

Reviewed by Cursor Bugbot for commit c8f6e1a. Configure here.

@logaretm
logaretm merged commit 165ec27 into developJun 18, 2026
176 checks passed
@logaretm
logaretm deleted the awad/js-2388-streamline-opentelemetryinstrumentation-mongodb branch June 18, 2026 16:34
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.

2 participants

@logaretm@JPeer264
, '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

ref(node): Streamline mongodb instrumentation - #21619

Merged
logaretm merged 1 commit into
developfrom
awad/js-2388-streamline-opentelemetryinstrumentation-mongodb
Jun 18, 2026
Merged

ref(node): Streamline mongodb instrumentation#21619
logaretm merged 1 commit into
developfrom
awad/js-2388-streamline-opentelemetryinstrumentation-mongodb

Conversation

@logaretm

@logaretmlogaretm commented Jun 17, 2026

Copy link
Copy Markdown
Member

Streamlines the vendored mongodb instrumentation to use Sentry's span APIs instead of the OpenTelemetry tracing APIs.

@linear-code

Copy link
Copy Markdown

JS-2388

@github-actions

github-actionsBot commented Jun 17, 2026

Copy link
Copy Markdown
Contributor

size-limit report 📦

PathSize% ChangeChange
@sentry/browser27.45 kB--
@sentry/browser - with treeshaking flags25.88 kB--
@sentry/browser (incl. Tracing)45.88 kB--
@sentry/browser (incl. Tracing + Span Streaming)48.11 kB--
@sentry/browser (incl. Tracing, Profiling)50.65 kB--
@sentry/browser (incl. Tracing, Replay)85.08 kB--
@sentry/browser (incl. Tracing, Replay) - with treeshaking flags74.68 kB--
@sentry/browser (incl. Tracing, Replay with Canvas)89.78 kB--
@sentry/browser (incl. Tracing, Replay, Feedback)102.44 kB--
@sentry/browser (incl. Feedback)44.62 kB--
@sentry/browser (incl. sendFeedback)32.25 kB--
@sentry/browser (incl. FeedbackAsync)37.38 kB--
@sentry/browser (incl. Metrics)28.52 kB--
@sentry/browser (incl. Logs)28.76 kB--
@sentry/browser (incl. Metrics & Logs)29.45 kB--
@sentry/react29.25 kB--
@sentry/react (incl. Tracing)48.17 kB--
@sentry/vue32.56 kB--
@sentry/vue (incl. Tracing)47.74 kB--
@sentry/svelte27.48 kB--
CDN Bundle29.86 kB--
CDN Bundle (incl. Tracing)48.28 kB--
CDN Bundle (incl. Logs, Metrics)31.4 kB--
CDN Bundle (incl. Tracing, Logs, Metrics)49.58 kB--
CDN Bundle (incl. Replay, Logs, Metrics)70.71 kB--
CDN Bundle (incl. Tracing, Replay)85.61 kB--
CDN Bundle (incl. Tracing, Replay, Logs, Metrics)86.88 kB--
CDN Bundle (incl. Tracing, Replay, Feedback)91.46 kB--
CDN Bundle (incl. Tracing, Replay, Feedback, Logs, Metrics)92.71 kB--
CDN Bundle - uncompressed88.8 kB--
CDN Bundle (incl. Tracing) - uncompressed146.04 kB--
CDN Bundle (incl. Logs, Metrics) - uncompressed93.5 kB--
CDN Bundle (incl. Tracing, Logs, Metrics) - uncompressed150.02 kB--
CDN Bundle (incl. Replay, Logs, Metrics) - uncompressed218.33 kB--
CDN Bundle (incl. Tracing, Replay) - uncompressed264.91 kB--
CDN Bundle (incl. Tracing, Replay, Logs, Metrics) - uncompressed268.87 kB--
CDN Bundle (incl. Tracing, Replay, Feedback) - uncompressed278.61 kB--
CDN Bundle (incl. Tracing, Replay, Feedback, Logs, Metrics) - uncompressed282.56 kB--
@sentry/nextjs (client)50.58 kB--
@sentry/sveltekit (client)46.27 kB--
@sentry/core/server76.16 kB--
@sentry/core/browser63.31 kB--
@sentry/node-core61.87 kB-0.01%-1 B 🔽
@sentry/node126.75 kB-0.74%-933 B 🔽
@sentry/node - without tracing74.26 kB--
@sentry/aws-serverless85.35 kB--
@sentry/cloudflare (withSentry) - minified174.48 kB--
@sentry/cloudflare (withSentry)436.52 kB--

View base workflow run

@logaretm
logaretmforce-pushed the awad/js-2388-streamline-opentelemetryinstrumentation-mongodb branch from 8c0b859 to d79e1cdCompareJune 17, 2026 18:29
@logaretm
logaretm marked this pull request as ready for review June 17, 2026 18:45
@logaretm
logaretm requested a review from a team as a code ownerJune 17, 2026 18:45
@logaretm
logaretm requested review from JPeer264, andreiborza, mydea and nicohrubec and removed request for a teamJune 17, 2026 18:45
@logaretm
logaretmforce-pushed the awad/js-2388-streamline-opentelemetryinstrumentation-mongodb branch from d79e1cd to d0846c8CompareJune 18, 2026 02:36
v4PatchConnectionPool,
v4UnpatchConnectionPool,
),
new InstrumentationNodeModuleFile(

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

q: Is there a specific reason why this is not needed anymore?

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

Those are metrics only, they don't do spans

@logaretm
logaretmforce-pushed the awad/js-2388-streamline-opentelemetryinstrumentation-mongodb branch from d0846c8 to ad2a160CompareJune 18, 2026 15:19
Streamlines the vendored `mongodb` instrumentation to use Sentry's span
APIs instead of the OpenTelemetry tracing APIs, following the
redis/pg/mongoose precedent.
- Replace `tracer.startSpan` with `startInactiveSpan`, the
`trace.getSpan(context.active())` + `requireParentSpan` guard with a
`getActiveSpan()` check, `SpanStatusCode.ERROR` with `SPAN_STATUS_ERROR`,
and the `context.with(...)`/`context.bind(...)` propagation with
`withActiveSpan` (result-handler re-activation and the pool `checkOut`
rebind). Drop `recordException` and the `_diag` logger.
- Drop the OTel connection-usage metrics: the SDK wires up no
`MeterProvider`, so `this.meter` is the no-op meter and every `add` was
dead. Also removes the session and connect patches that existed only to
feed those metrics (they create no spans, so span output is unchanged).
- Drop the `SemconvStability` dual-emission and keep the OLD semconv
attributes only (the STABLE path was env-gated behind
`OTEL_SEMCONV_STABILITY_OPT_IN` and never enabled by the SDK).
- Remove config the SDK never passes (`responseHook`, the configurable
`dbStatementSerializer`, `requireParentSpan`); move the always-on
statement serializer into the vendored code and bake the
`auto.db.otel.mongo` origin into the span attributes instead of an
`index.ts` responseHook.
- Drop the blanket eslint-disable, type the module, and split the helpers
(`utils.ts`) and wrap factories (`patches.ts`) out of the class to keep
each vendored file within `max-lines`.
Removes the config-passing `Mongo` unit test (its serializer logic is
covered end-to-end by the integration suite) and extends the real suite
with an error path: a server-rejected query asserts `status:
'internal_error'` with the origin and `db.statement` preserved.
@logaretm
logaretmforce-pushed the awad/js-2388-streamline-opentelemetryinstrumentation-mongodb branch from ad2a160 to c8f6e1aCompareJune 18, 2026 15:19

@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 and found 1 potential issue.

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 c8f6e1a. Configure here.

kind: SpanKind.CLIENT,
attributes,
});
}

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Missing db span metadata

High Severity

startMongoSpan creates native Sentry spans with name mongodb.${operation} and no sentry.op attribute. Finished spans expose description from that name and op from sentry.op in attributes, unlike the prior OTel exporter path that inferred op: db and a statement-based description from db.system / db.statement.

Fix in CursorFix in Web

Reviewed by Cursor Bugbot for commit c8f6e1a. Configure here.

@logaretm
logaretm merged commit 165ec27 into developJun 18, 2026
176 checks passed
@logaretm
logaretm deleted the awad/js-2388-streamline-opentelemetryinstrumentation-mongodb branch June 18, 2026 16:34
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.

2 participants

@logaretm@JPeer264
, '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

ref(node): Streamline mongodb instrumentation - #21619

Merged
logaretm merged 1 commit into
developfrom
awad/js-2388-streamline-opentelemetryinstrumentation-mongodb
Jun 18, 2026
Merged

ref(node): Streamline mongodb instrumentation#21619
logaretm merged 1 commit into
developfrom
awad/js-2388-streamline-opentelemetryinstrumentation-mongodb

Conversation

@logaretm

@logaretmlogaretm commented Jun 17, 2026

Copy link
Copy Markdown
Member

Streamlines the vendored mongodb instrumentation to use Sentry's span APIs instead of the OpenTelemetry tracing APIs.

@linear-code

Copy link
Copy Markdown

JS-2388

@github-actions

github-actionsBot commented Jun 17, 2026

Copy link
Copy Markdown
Contributor

size-limit report 📦

PathSize% ChangeChange
@sentry/browser27.45 kB--
@sentry/browser - with treeshaking flags25.88 kB--
@sentry/browser (incl. Tracing)45.88 kB--
@sentry/browser (incl. Tracing + Span Streaming)48.11 kB--
@sentry/browser (incl. Tracing, Profiling)50.65 kB--
@sentry/browser (incl. Tracing, Replay)85.08 kB--
@sentry/browser (incl. Tracing, Replay) - with treeshaking flags74.68 kB--
@sentry/browser (incl. Tracing, Replay with Canvas)89.78 kB--
@sentry/browser (incl. Tracing, Replay, Feedback)102.44 kB--
@sentry/browser (incl. Feedback)44.62 kB--
@sentry/browser (incl. sendFeedback)32.25 kB--
@sentry/browser (incl. FeedbackAsync)37.38 kB--
@sentry/browser (incl. Metrics)28.52 kB--
@sentry/browser (incl. Logs)28.76 kB--
@sentry/browser (incl. Metrics & Logs)29.45 kB--
@sentry/react29.25 kB--
@sentry/react (incl. Tracing)48.17 kB--
@sentry/vue32.56 kB--
@sentry/vue (incl. Tracing)47.74 kB--
@sentry/svelte27.48 kB--
CDN Bundle29.86 kB--
CDN Bundle (incl. Tracing)48.28 kB--
CDN Bundle (incl. Logs, Metrics)31.4 kB--
CDN Bundle (incl. Tracing, Logs, Metrics)49.58 kB--
CDN Bundle (incl. Replay, Logs, Metrics)70.71 kB--
CDN Bundle (incl. Tracing, Replay)85.61 kB--
CDN Bundle (incl. Tracing, Replay, Logs, Metrics)86.88 kB--
CDN Bundle (incl. Tracing, Replay, Feedback)91.46 kB--
CDN Bundle (incl. Tracing, Replay, Feedback, Logs, Metrics)92.71 kB--
CDN Bundle - uncompressed88.8 kB--
CDN Bundle (incl. Tracing) - uncompressed146.04 kB--
CDN Bundle (incl. Logs, Metrics) - uncompressed93.5 kB--
CDN Bundle (incl. Tracing, Logs, Metrics) - uncompressed150.02 kB--
CDN Bundle (incl. Replay, Logs, Metrics) - uncompressed218.33 kB--
CDN Bundle (incl. Tracing, Replay) - uncompressed264.91 kB--
CDN Bundle (incl. Tracing, Replay, Logs, Metrics) - uncompressed268.87 kB--
CDN Bundle (incl. Tracing, Replay, Feedback) - uncompressed278.61 kB--
CDN Bundle (incl. Tracing, Replay, Feedback, Logs, Metrics) - uncompressed282.56 kB--
@sentry/nextjs (client)50.58 kB--
@sentry/sveltekit (client)46.27 kB--
@sentry/core/server76.16 kB--
@sentry/core/browser63.31 kB--
@sentry/node-core61.87 kB-0.01%-1 B 🔽
@sentry/node126.75 kB-0.74%-933 B 🔽
@sentry/node - without tracing74.26 kB--
@sentry/aws-serverless85.35 kB--
@sentry/cloudflare (withSentry) - minified174.48 kB--
@sentry/cloudflare (withSentry)436.52 kB--

View base workflow run

@logaretm
logaretmforce-pushed the awad/js-2388-streamline-opentelemetryinstrumentation-mongodb branch from 8c0b859 to d79e1cdCompareJune 17, 2026 18:29
@logaretm
logaretm marked this pull request as ready for review June 17, 2026 18:45
@logaretm
logaretm requested a review from a team as a code ownerJune 17, 2026 18:45
@logaretm
logaretm requested review from JPeer264, andreiborza, mydea and nicohrubec and removed request for a teamJune 17, 2026 18:45
@logaretm
logaretmforce-pushed the awad/js-2388-streamline-opentelemetryinstrumentation-mongodb branch from d79e1cd to d0846c8CompareJune 18, 2026 02:36
v4PatchConnectionPool,
v4UnpatchConnectionPool,
),
new InstrumentationNodeModuleFile(

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

q: Is there a specific reason why this is not needed anymore?

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

Those are metrics only, they don't do spans

@logaretm
logaretmforce-pushed the awad/js-2388-streamline-opentelemetryinstrumentation-mongodb branch from d0846c8 to ad2a160CompareJune 18, 2026 15:19
Streamlines the vendored `mongodb` instrumentation to use Sentry's span
APIs instead of the OpenTelemetry tracing APIs, following the
redis/pg/mongoose precedent.
- Replace `tracer.startSpan` with `startInactiveSpan`, the
`trace.getSpan(context.active())` + `requireParentSpan` guard with a
`getActiveSpan()` check, `SpanStatusCode.ERROR` with `SPAN_STATUS_ERROR`,
and the `context.with(...)`/`context.bind(...)` propagation with
`withActiveSpan` (result-handler re-activation and the pool `checkOut`
rebind). Drop `recordException` and the `_diag` logger.
- Drop the OTel connection-usage metrics: the SDK wires up no
`MeterProvider`, so `this.meter` is the no-op meter and every `add` was
dead. Also removes the session and connect patches that existed only to
feed those metrics (they create no spans, so span output is unchanged).
- Drop the `SemconvStability` dual-emission and keep the OLD semconv
attributes only (the STABLE path was env-gated behind
`OTEL_SEMCONV_STABILITY_OPT_IN` and never enabled by the SDK).
- Remove config the SDK never passes (`responseHook`, the configurable
`dbStatementSerializer`, `requireParentSpan`); move the always-on
statement serializer into the vendored code and bake the
`auto.db.otel.mongo` origin into the span attributes instead of an
`index.ts` responseHook.
- Drop the blanket eslint-disable, type the module, and split the helpers
(`utils.ts`) and wrap factories (`patches.ts`) out of the class to keep
each vendored file within `max-lines`.
Removes the config-passing `Mongo` unit test (its serializer logic is
covered end-to-end by the integration suite) and extends the real suite
with an error path: a server-rejected query asserts `status:
'internal_error'` with the origin and `db.statement` preserved.
@logaretm
logaretmforce-pushed the awad/js-2388-streamline-opentelemetryinstrumentation-mongodb branch from ad2a160 to c8f6e1aCompareJune 18, 2026 15:19

@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 and found 1 potential issue.

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 c8f6e1a. Configure here.

kind: SpanKind.CLIENT,
attributes,
});
}

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Missing db span metadata

High Severity

startMongoSpan creates native Sentry spans with name mongodb.${operation} and no sentry.op attribute. Finished spans expose description from that name and op from sentry.op in attributes, unlike the prior OTel exporter path that inferred op: db and a statement-based description from db.system / db.statement.

Fix in CursorFix in Web

Reviewed by Cursor Bugbot for commit c8f6e1a. Configure here.

@logaretm
logaretm merged commit 165ec27 into developJun 18, 2026
176 checks passed
@logaretm
logaretm deleted the awad/js-2388-streamline-opentelemetryinstrumentation-mongodb branch June 18, 2026 16:34
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.

2 participants

@logaretm@JPeer264
, '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

ref(node): Streamline mongodb instrumentation - #21619

Merged
logaretm merged 1 commit into
developfrom
awad/js-2388-streamline-opentelemetryinstrumentation-mongodb
Jun 18, 2026
Merged

ref(node): Streamline mongodb instrumentation#21619
logaretm merged 1 commit into
developfrom
awad/js-2388-streamline-opentelemetryinstrumentation-mongodb

Conversation

@logaretm

@logaretmlogaretm commented Jun 17, 2026

Copy link
Copy Markdown
Member

Streamlines the vendored mongodb instrumentation to use Sentry's span APIs instead of the OpenTelemetry tracing APIs.

@linear-code

Copy link
Copy Markdown

JS-2388

@github-actions

github-actionsBot commented Jun 17, 2026

Copy link
Copy Markdown
Contributor

size-limit report 📦

PathSize% ChangeChange
@sentry/browser27.45 kB--
@sentry/browser - with treeshaking flags25.88 kB--
@sentry/browser (incl. Tracing)45.88 kB--
@sentry/browser (incl. Tracing + Span Streaming)48.11 kB--
@sentry/browser (incl. Tracing, Profiling)50.65 kB--
@sentry/browser (incl. Tracing, Replay)85.08 kB--
@sentry/browser (incl. Tracing, Replay) - with treeshaking flags74.68 kB--
@sentry/browser (incl. Tracing, Replay with Canvas)89.78 kB--
@sentry/browser (incl. Tracing, Replay, Feedback)102.44 kB--
@sentry/browser (incl. Feedback)44.62 kB--
@sentry/browser (incl. sendFeedback)32.25 kB--
@sentry/browser (incl. FeedbackAsync)37.38 kB--
@sentry/browser (incl. Metrics)28.52 kB--
@sentry/browser (incl. Logs)28.76 kB--
@sentry/browser (incl. Metrics & Logs)29.45 kB--
@sentry/react29.25 kB--
@sentry/react (incl. Tracing)48.17 kB--
@sentry/vue32.56 kB--
@sentry/vue (incl. Tracing)47.74 kB--
@sentry/svelte27.48 kB--
CDN Bundle29.86 kB--
CDN Bundle (incl. Tracing)48.28 kB--
CDN Bundle (incl. Logs, Metrics)31.4 kB--
CDN Bundle (incl. Tracing, Logs, Metrics)49.58 kB--
CDN Bundle (incl. Replay, Logs, Metrics)70.71 kB--
CDN Bundle (incl. Tracing, Replay)85.61 kB--
CDN Bundle (incl. Tracing, Replay, Logs, Metrics)86.88 kB--
CDN Bundle (incl. Tracing, Replay, Feedback)91.46 kB--
CDN Bundle (incl. Tracing, Replay, Feedback, Logs, Metrics)92.71 kB--
CDN Bundle - uncompressed88.8 kB--
CDN Bundle (incl. Tracing) - uncompressed146.04 kB--
CDN Bundle (incl. Logs, Metrics) - uncompressed93.5 kB--
CDN Bundle (incl. Tracing, Logs, Metrics) - uncompressed150.02 kB--
CDN Bundle (incl. Replay, Logs, Metrics) - uncompressed218.33 kB--
CDN Bundle (incl. Tracing, Replay) - uncompressed264.91 kB--
CDN Bundle (incl. Tracing, Replay, Logs, Metrics) - uncompressed268.87 kB--
CDN Bundle (incl. Tracing, Replay, Feedback) - uncompressed278.61 kB--
CDN Bundle (incl. Tracing, Replay, Feedback, Logs, Metrics) - uncompressed282.56 kB--
@sentry/nextjs (client)50.58 kB--
@sentry/sveltekit (client)46.27 kB--
@sentry/core/server76.16 kB--
@sentry/core/browser63.31 kB--
@sentry/node-core61.87 kB-0.01%-1 B 🔽
@sentry/node126.75 kB-0.74%-933 B 🔽
@sentry/node - without tracing74.26 kB--
@sentry/aws-serverless85.35 kB--
@sentry/cloudflare (withSentry) - minified174.48 kB--
@sentry/cloudflare (withSentry)436.52 kB--

View base workflow run

@logaretm
logaretmforce-pushed the awad/js-2388-streamline-opentelemetryinstrumentation-mongodb branch from 8c0b859 to d79e1cdCompareJune 17, 2026 18:29
@logaretm
logaretm marked this pull request as ready for review June 17, 2026 18:45
@logaretm
logaretm requested a review from a team as a code ownerJune 17, 2026 18:45
@logaretm
logaretm requested review from JPeer264, andreiborza, mydea and nicohrubec and removed request for a teamJune 17, 2026 18:45
@logaretm
logaretmforce-pushed the awad/js-2388-streamline-opentelemetryinstrumentation-mongodb branch from d79e1cd to d0846c8CompareJune 18, 2026 02:36
v4PatchConnectionPool,
v4UnpatchConnectionPool,
),
new InstrumentationNodeModuleFile(

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

q: Is there a specific reason why this is not needed anymore?

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

Those are metrics only, they don't do spans

@logaretm
logaretmforce-pushed the awad/js-2388-streamline-opentelemetryinstrumentation-mongodb branch from d0846c8 to ad2a160CompareJune 18, 2026 15:19
Streamlines the vendored `mongodb` instrumentation to use Sentry's span
APIs instead of the OpenTelemetry tracing APIs, following the
redis/pg/mongoose precedent.
- Replace `tracer.startSpan` with `startInactiveSpan`, the
`trace.getSpan(context.active())` + `requireParentSpan` guard with a
`getActiveSpan()` check, `SpanStatusCode.ERROR` with `SPAN_STATUS_ERROR`,
and the `context.with(...)`/`context.bind(...)` propagation with
`withActiveSpan` (result-handler re-activation and the pool `checkOut`
rebind). Drop `recordException` and the `_diag` logger.
- Drop the OTel connection-usage metrics: the SDK wires up no
`MeterProvider`, so `this.meter` is the no-op meter and every `add` was
dead. Also removes the session and connect patches that existed only to
feed those metrics (they create no spans, so span output is unchanged).
- Drop the `SemconvStability` dual-emission and keep the OLD semconv
attributes only (the STABLE path was env-gated behind
`OTEL_SEMCONV_STABILITY_OPT_IN` and never enabled by the SDK).
- Remove config the SDK never passes (`responseHook`, the configurable
`dbStatementSerializer`, `requireParentSpan`); move the always-on
statement serializer into the vendored code and bake the
`auto.db.otel.mongo` origin into the span attributes instead of an
`index.ts` responseHook.
- Drop the blanket eslint-disable, type the module, and split the helpers
(`utils.ts`) and wrap factories (`patches.ts`) out of the class to keep
each vendored file within `max-lines`.
Removes the config-passing `Mongo` unit test (its serializer logic is
covered end-to-end by the integration suite) and extends the real suite
with an error path: a server-rejected query asserts `status:
'internal_error'` with the origin and `db.statement` preserved.
@logaretm
logaretmforce-pushed the awad/js-2388-streamline-opentelemetryinstrumentation-mongodb branch from ad2a160 to c8f6e1aCompareJune 18, 2026 15:19

@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 and found 1 potential issue.

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 c8f6e1a. Configure here.

kind: SpanKind.CLIENT,
attributes,
});
}

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Missing db span metadata

High Severity

startMongoSpan creates native Sentry spans with name mongodb.${operation} and no sentry.op attribute. Finished spans expose description from that name and op from sentry.op in attributes, unlike the prior OTel exporter path that inferred op: db and a statement-based description from db.system / db.statement.

Fix in CursorFix in Web

Reviewed by Cursor Bugbot for commit c8f6e1a. Configure here.

@logaretm
logaretm merged commit 165ec27 into developJun 18, 2026
176 checks passed
@logaretm
logaretm deleted the awad/js-2388-streamline-opentelemetryinstrumentation-mongodb branch June 18, 2026 16:34
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.

2 participants

@logaretm@JPeer264