What version of Bun is running?
1.3.13+bf2e2cecf
What platform is your computer?
Darwin 25.3.0 arm64 arm
What steps can reproduce the bug?
Problem
node:http server does not publish to HTTP server diagnostics_channel channels
Description
Bun implements the node:diagnostics_channel module, but its node:http
server does not publish to the standard Node.js HTTP server diagnostic channels.
This silently breaks any observability library that relies on these channels
for instrumentation (metrics, tracing, APM).
Note: HTTP client-side channels are being worked on in #24375. This issue
specifically tracks the missing server-side channels.
What is the expected behavior?
Node.js instruments its HTTP server internally by publishing to named
diagnostic channels at key points in the request/response lifecycle. This allows
libraries to subscribe and collect metrics or traces without wrapping or patching
any code.
HTTP Server channels
| Channel |
When |
http.server.request.start |
Server receives a request |
http.server.response.created |
Server creates a response object |
http.server.response.finish |
Server finishes sending a response |
What do you see instead?
Subscribers to all of the above channels are never called. The diagnostics_channel
API itself works (subscribe/publish/channel), but node:http server never publishes
to any of these channels.
Additional information
Impact
Any observability library using diagnostics_channel for HTTP server instrumentation
does not work on Bun. Notable examples:
- OpenTelemetry Node.js HTTP instrumentation
- Any Prometheus HTTP metrics library following the Node.js diagnostics_channel spec
Notes
I could not find any mentions of these channel names in the Bun codebase.
What version of Bun is running?
1.3.13+bf2e2cecf
What platform is your computer?
Darwin 25.3.0 arm64 arm
What steps can reproduce the bug?
Problem
node:http server does not publish to HTTP server diagnostics_channel channels
Description
Bun implements the
node:diagnostics_channelmodule, but itsnode:httpserver does not publish to the standard Node.js HTTP server diagnostic channels.
This silently breaks any observability library that relies on these channels
for instrumentation (metrics, tracing, APM).
Note: HTTP client-side channels are being worked on in #24375. This issue
specifically tracks the missing server-side channels.
What is the expected behavior?
Node.js instruments its HTTP server internally by publishing to named
diagnostic channels at key points in the request/response lifecycle. This allows
libraries to subscribe and collect metrics or traces without wrapping or patching
any code.
HTTP Server channels
http.server.request.starthttp.server.response.createdhttp.server.response.finishWhat do you see instead?
Subscribers to all of the above channels are never called. The
diagnostics_channelAPI itself works (subscribe/publish/channel), but
node:httpserver never publishesto any of these channels.
Additional information
Impact
Any observability library using diagnostics_channel for HTTP server instrumentation
does not work on Bun. Notable examples:
Notes
I could not find any mentions of these channel names in the Bun codebase.