getsentry / getsentry/sentry-javascript

bun: Channel injection is unavailable under `bun run`, and only a debug log says so

Đang mở Phù hợp với người mới
#23,882 1 bình luận 0 reaction 0 người được giao Xem trên GitHub
Bun javascript
Ngôn ngữ chính
TypeScript
Star
8.7k
Fork
1.8k
Merge trung bình
1 ngày 17 giờ
Pull request đã merge (30 ngày)
515

Mô tả

`registerDiagnosticsChannelInjection` takes its fallback branch on Bun. `Module.registerHooks` is `undefined` in bun 1.3.14, and the `Module.register` branch is explicitly gated on `!globalAny.Bun` (`packages/server-utils/src/orchestrion/runtime/register.ts:126`).

```
$ bun run init-probe.mjs
ORCHESTRION MARKER: {"runtimeUnavailable":true}
INTEGRATIONS: 42 ... Graphql,Mongo,Mongoose,Mysql,Mysql2,Redis,Postgres,
Prisma,Tedious,GenericPool,Kafka,Amqplib,LruMemoizer,Aws,LangChain,LangGraph,
VercelAI,OpenAI,Anthropic_AI,Google_GenAI,PostgresJs,Firebase
Sentry Logger [warn]: [Sentry] No diagnostics-channel injection detected...
```

Twenty-two channel integrations report `Integration installed` and then never fire. The only signal is `debug.warn` inside `detectOrchestrionSetup`, which is off unless the user sets `debug: true`.

Note that these integrations also handle error capture, not only spans, so a Bun user running `bun run` loses Express/Fastify/Koa/Hapi error capture too.

**Work item.** Promote the "no injection detected" message to an always-on `consoleSandbox` warning on Bun (matching `warnRuntimeUnavailable`, which already exists for the failure path), and name the fix: build with `@sentry/bun/plugin`. Keep it debug-only on Node, where the runtime hook normally succeeds.

**Prior art ***(tracked)*. Two open issues describe the symptom without naming the cause: [#14202]() (open since 2024-11) "Integrations not working for Bun", and [#17779]() (open). [#19696]() (closed) "None of the AI auto-instrumentations work with Sentry Bun" is the same report for the AI integrations. The build-time fix shipped in getsentry/sentry-javascript#21410 (merged, the Bun build plugin). There is precedent for the always-on warning proposed here: getsentry/sentry-javascript#22379 (merged) warns when a bundler config externalizes an instrumented module. No issue covers promoting this particular warning.

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Hướng nghiên cứu

Start in packages/server-utils/src/orchestrion/runtime/register.ts around line 126 and trace detectOrchestrionSetup, registerDiagnosticsChannelInjection, and the existing warnRuntimeUnavailable path. Make the Bun no-injection warning always-on through consoleSandbox, identify @sentry/bun/plugin as the fix, and preserve debug-only behavior on Node.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Đánh giá

Công nghệ
bun, typescript
Lĩnh vực
backend, observability
Loại issue
Lỗi
Độ khó
2/5
Thời gian dự kiến
1-3 giờ
Mức độ hoạt động
Sôi nổi
Độ rõ ràng
Đặc tả rõ ràng
Mức phù hợp với người mới
84/100

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.