Skip to content

feat(deno): redis diagnostics channel based integration for deno#21087

Open
isaacs wants to merge 1 commit into
developfrom
isaacs/deno-redis-dc
Open

feat(deno): redis diagnostics channel based integration for deno#21087
isaacs wants to merge 1 commit into
developfrom
isaacs/deno-redis-dc

Conversation

@isaacs
Copy link
Copy Markdown
Member

@isaacs isaacs commented May 20, 2026

Refactor the redis-dc integration logic into core/src/integrations, and create a Deno integration that uses the same patterns.

Instead of the @sentry/opentelemetry/tracing-channel, the Deno integration just adds _sentrySpan onto the data in a RedisTracingChannelFactory which is passed to the core utility.

@isaacs isaacs requested a review from a team as a code owner May 20, 2026 21:20
@isaacs isaacs requested review from andreiborza and mydea and removed request for a team May 20, 2026 21:20
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 20, 2026

size-limit report 📦

Path Size % Change Change
@sentry/browser 27.32 kB - -
@sentry/browser - with treeshaking flags 25.74 kB - -
@sentry/browser (incl. Tracing) 45.31 kB - -
@sentry/browser (incl. Tracing + Span Streaming) 47.55 kB - -
@sentry/browser (incl. Tracing, Profiling) 50.3 kB - -
@sentry/browser (incl. Tracing, Replay) 84.92 kB - -
@sentry/browser (incl. Tracing, Replay) - with treeshaking flags 74.43 kB - -
@sentry/browser (incl. Tracing, Replay with Canvas) 89.64 kB - -
@sentry/browser (incl. Tracing, Replay, Feedback) 102.24 kB - -
@sentry/browser (incl. Feedback) 44.51 kB - -
@sentry/browser (incl. sendFeedback) 32.13 kB - -
@sentry/browser (incl. FeedbackAsync) 37.25 kB - -
@sentry/browser (incl. Metrics) 28.41 kB - -
@sentry/browser (incl. Logs) 28.64 kB - -
@sentry/browser (incl. Metrics & Logs) 29.33 kB - -
@sentry/react 29.05 kB - -
@sentry/react (incl. Tracing) 47.55 kB - -
@sentry/vue 32.24 kB - -
@sentry/vue (incl. Tracing) 47.17 kB - -
@sentry/svelte 27.35 kB - -
CDN Bundle 29.73 kB - -
CDN Bundle (incl. Tracing) 47.84 kB - -
CDN Bundle (incl. Logs, Metrics) 31.21 kB - -
CDN Bundle (incl. Tracing, Logs, Metrics) 49.09 kB - -
CDN Bundle (incl. Replay, Logs, Metrics) 70.53 kB - -
CDN Bundle (incl. Tracing, Replay) 85.34 kB - -
CDN Bundle (incl. Tracing, Replay, Logs, Metrics) 86.5 kB - -
CDN Bundle (incl. Tracing, Replay, Feedback) 91.2 kB - -
CDN Bundle (incl. Tracing, Replay, Feedback, Logs, Metrics) 92.37 kB - -
CDN Bundle - uncompressed 87.8 kB - -
CDN Bundle (incl. Tracing) - uncompressed 144.29 kB - -
CDN Bundle (incl. Logs, Metrics) - uncompressed 92.29 kB - -
CDN Bundle (incl. Tracing, Logs, Metrics) - uncompressed 148.05 kB - -
CDN Bundle (incl. Replay, Logs, Metrics) - uncompressed 217.02 kB - -
CDN Bundle (incl. Tracing, Replay) - uncompressed 263.07 kB - -
CDN Bundle (incl. Tracing, Replay, Logs, Metrics) - uncompressed 266.81 kB - -
CDN Bundle (incl. Tracing, Replay, Feedback) - uncompressed 276.77 kB - -
CDN Bundle (incl. Tracing, Replay, Feedback, Logs, Metrics) - uncompressed 280.5 kB - -
@sentry/nextjs (client) 50.03 kB - -
@sentry/sveltekit (client) 45.8 kB - -
@sentry/core/server 77.4 kB +1.21% +923 B 🔺
@sentry/core/browser 63.23 kB - -
@sentry/node-core 62.59 kB - -
@sentry/node 131.27 kB +0.13% +163 B 🔺
@sentry/node - without tracing 75.02 kB - -
@sentry/aws-serverless 87.24 kB - -
@sentry/cloudflare (withSentry) - minified 173.13 kB - -
@sentry/cloudflare (withSentry) 432.43 kB - -

View base workflow run

isaacs added a commit that referenced this pull request May 20, 2026
)

Refactor the redis-dc integration logic into core/src/integrations, and
create a Deno integration that uses the same patterns.

Instead of the @sentry/opentelemetry/tracing-channel, the Deno
integration just adds `_sentrySpan` onto the data in a
RedisTracingChannelFactory which is passed to the core utility.

Add deno-redis e2e test.
@isaacs isaacs force-pushed the isaacs/deno-redis-dc branch from f176fd8 to 0fc320c Compare May 20, 2026 22:13
@isaacs isaacs force-pushed the isaacs/deno-redis-dc branch from 1048f32 to 72be1fa Compare May 20, 2026 22:18
Comment thread .github/workflows/build.yml
isaacs added a commit that referenced this pull request May 21, 2026
isaacs added a commit that referenced this pull request May 21, 2026
isaacs added a commit that referenced this pull request May 21, 2026
)

Refactor the redis-dc integration logic into core/src/integrations, and
create a Deno integration that uses the same patterns.

Instead of the @sentry/opentelemetry/tracing-channel, the Deno
integration just adds `_sentrySpan` onto the data in a
RedisTracingChannelFactory which is passed to the core utility.

Add deno-redis e2e test.
@isaacs isaacs force-pushed the isaacs/deno-redis-dc branch from 11525d8 to a8d3cb7 Compare May 21, 2026 17:31
Comment thread packages/deno/src/integrations/redis.ts Outdated
Comment thread packages/core/src/integrations/redis/redis-statement-serializer.ts
Comment thread packages/core/src/integrations/redis/redis-dc-subscriber.ts
Comment thread packages/node/src/integrations/tracing/redis/index.ts
isaacs added a commit that referenced this pull request May 21, 2026
Comment thread packages/node/src/utils/redisCache.ts
Comment thread packages/deno/src/sdk.ts Outdated
isaacs added a commit that referenced this pull request May 21, 2026
isaacs added a commit that referenced this pull request May 21, 2026
@isaacs isaacs force-pushed the isaacs/deno-redis-dc branch from 8226aaf to 5863e6c Compare May 21, 2026 21:54
@isaacs isaacs enabled auto-merge (squash) May 21, 2026 23:10
)

Refactor the redis-dc integration logic into core/src/integrations, and
create a Deno integration that uses the same patterns.

Instead of the @sentry/opentelemetry/tracing-channel, the Deno
integration just adds `_sentrySpan` onto the data in a
RedisTracingChannelFactory which is passed to the core utility.

Add deno-redis e2e test.
@isaacs isaacs force-pushed the isaacs/deno-redis-dc branch from 5863e6c to cd298fa Compare May 22, 2026 17:01
Copy link
Copy Markdown

@cursor cursor Bot left a comment

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

const budget = SERIALIZATION_SUBSETS.find(({ regex }) => regex.test(cmdName))?.args ?? 0;
const argsToSerialize: Array<string | number | unknown[]> = (
budget >= 0 ? cmdArgs.slice(0, budget) : cmdArgs.slice()
).map(a => (a instanceof Uint8Array ? '<binary>' : a));
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Buffer args become binary placeholder

Medium Severity

The new defaultDbStatementSerializer maps every Uint8Array argument to the literal &lt;binary&gt; in db.statement. On Node, Buffer is a Uint8Array subclass, so command arguments that used to appear as readable keys now show as &lt;binary&gt; instead of decoded text, unlike the prior vendored serializer used by the removed node DC subscriber.

Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit cd298fa. Configure here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant