Skip to content

feat: add diagnostics_channel support for app initialization#7041

Open
DemianParkhomenko wants to merge 2 commits intoexpressjs:masterfrom
DemianParkhomenko:diagnostics-channel
Open

feat: add diagnostics_channel support for app initialization#7041
DemianParkhomenko wants to merge 2 commits intoexpressjs:masterfrom
DemianParkhomenko:diagnostics-channel

Conversation

@DemianParkhomenko
Copy link

Publishes express.initialization channel when an Express app is created,
allowing instrumentation libraries to attach middleware and hooks before
any request arrives.

Route-level tracing (start/end/error per request with matched route pattern)
will be implemented in the router module using TracingChannel API.

Refs: #6353 https://github.com/pillarjs/router/pull/96/changes

@DemianParkhomenko DemianParkhomenko marked this pull request as ready for review February 20, 2026 10:19
Copilot AI review requested due to automatic review settings February 20, 2026 10:19
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR adds support for Node.js diagnostics_channel to Express, specifically implementing an express.initialization channel that publishes when an Express application is created. This allows instrumentation libraries (like OpenTelemetry) to hook into the app lifecycle before any requests are handled, enabling better observability and monitoring capabilities.

Changes:

  • Added a new lib/diagnostics.js module that creates and exports the express.initialization diagnostics channel
  • Modified lib/express.js to publish to the initialization channel after app.init() is called
  • Added comprehensive tests for the diagnostics channel functionality

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 2 comments.

File Description
lib/diagnostics.js New module that creates the express.initialization diagnostics channel
lib/express.js Imports diagnostics module and publishes initialization event when app is created
test/diagnostics-channel.js Test suite verifying channel publishes correctly and handles no-subscriber case

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

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.

2 participants