Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support: Express v5 #4704

Open
vernak2539 opened this issue Sep 19, 2024 · 1 comment
Open

Support: Express v5 #4704

vernak2539 opened this issue Sep 19, 2024 · 1 comment

Comments

@vernak2539
Copy link

Hello there! Express v5 was just released. It'd be great if we could get support for this as we're encountering errors when running with dd-trace instrumented.

I've tried to put a bunch of information below, but let me know if more is needed.

I saw this old issue from a while ago, but felt it would be better to submit a new one as v5 is now out!

Extra Information

  • express: v5.0.0
  • dd-trace: v5.22.0 (tried also with 5.12.0 prior to upgrading)

We run our app using this command:

node -r ./.env/development.cjs --import ./src/node-instrumentation.mjs .
  • ./.env/development.cjs - uses dotenv-extended to load environment variables
  • ./src/node-instrumentation.mjs - imports our datadog tracing, more below
  • . runs the main file in the package.json

The ./src/node-instrumentation.mjs looks something like this:

import tracer from 'dd-trace';

const hostname = process.env.STATSD_HOST;

if (hostname) {
  tracer.init({
    hostname: process.env.STATSD_HOST,
    service: appName,
    debug: process.env.DATADOG_DEBUG_ENABLED === 'true',
  });
  tracer.use('express', {
    service: `${appName}/express`,
    hooks: {
        // hook stuff, nothing too interesting other than setting span tags
      },
    },
  });
  tracer.use('http', { service: `${appName}/http-client` });
  tracer.use('dns', { service: `${appName}/dns` });
  tracer.use('net', { service: `${appName}/tcp` });
}

This is the error we get when running the application.

TypeError: Cannot read properties of undefined (reading 'fast_star')
    at isFastStar (/Users/testuser/repo/node_modules/dd-trace/packages/datadog-instrumentations/src/router.js:124:22)
    at Object.test (/Users/testuser/repo/node_modules/dd-trace/packages/datadog-instrumentations/src/router.js:116:17)
    at errorMiddleware (/Users/testuser/repo/node_modules/dd-trace/packages/datadog-instrumentations/src/router.js:39:27)
    at errorMiddleware (/Users/testuser/repo/node_modules/dd-trace/packages/datadog-shimmer/src/shimmer.js:31:21)
    at Layer.handleError (/Users/testuser/repo/node_modules/router/lib/layer.js:113:17)
    at trimPrefix (/Users/testuser/repo/node_modules/router/index.js:335:13)
    at /Users/testuser/repo/node_modules/router/index.js:295:9
    at processParams (/Users/testuser/repo/node_modules/router/index.js:575:12)
    at next (/Users/testuser/repo/node_modules/router/index.js:289:5)
    at Layer.handleError (/Users/testuser/repo/node_modules/router/lib/layer.js:122:5)
    at trimPrefix (/Users/testuser/repo/node_modules/router/index.js:335:13)
    at /Users/testuser/repo/node_modules/router/index.js:295:9
    at processParams (/Users/testuser/repo/node_modules/router/index.js:575:12)
    at next (/Users/testuser/repo/node_modules/router/index.js:289:5)
    at Layer.handleError (/Users/testuser/repo/node_modules/router/lib/layer.js:108:12)
    at trimPrefix (/Users/testuser/repo/node_modules/router/index.js:335:13)
    at /Users/testuser/repo/node_modules/router/index.js:295:9
    at processParams (/Users/testuser/repo/node_modules/router/index.js:575:12)
    at next (/Users/testuser/repo/node_modules/router/index.js:289:5)
    at Layer.handleError (/Users/testuser/repo/node_modules/router/lib/layer.js:108:12)
    at trimPrefix (/Users/testuser/repo/node_modules/router/index.js:335:13)
    at /Users/testuser/repo/node_modules/router/index.js:295:9
    at processParams (/Users/testuser/repo/node_modules/router/index.js:575:12)
    at next (/Users/testuser/repo/node_modules/router/index.js:289:5)
    at Layer.handleError (/Users/testuser/repo/node_modules/router/lib/layer.js:108:12)
    at trimPrefix (/Users/testuser/repo/node_modules/router/index.js:335:13)
    at /Users/testuser/repo/node_modules/router/index.js:295:9
    at processParams (/Users/testuser/repo/node_modules/router/index.js:575:12)
    at next (/Users/testuser/repo/node_modules/router/index.js:289:5)
    at Layer.handleError (/Users/testuser/repo/node_modules/router/lib/layer.js:108:12)
    at trimPrefix (/Users/testuser/repo/node_modules/router/index.js:335:13)
    at /Users/testuser/repo/node_modules/router/index.js:295:9
    at processParams (/Users/testuser/repo/node_modules/router/index.js:575:12)
    at next (/Users/testuser/repo/node_modules/router/index.js:289:5)
    at Layer.handleError (/Users/testuser/repo/node_modules/router/lib/layer.js:108:12)
    at trimPrefix (/Users/testuser/repo/node_modules/router/index.js:335:13)
    at /Users/testuser/repo/node_modules/router/index.js:295:9
    at processParams (/Users/testuser/repo/node_modules/router/index.js:575:12)
    at next (/Users/testuser/repo/node_modules/router/index.js:289:5)
    at Layer.handleError (/Users/testuser/repo/node_modules/router/lib/layer.js:108:12)
    at trimPrefix (/Users/testuser/repo/node_modules/router/index.js:335:13)
    at /Users/testuser/repo/node_modules/router/index.js:295:9
    at processParams (/Users/testuser/repo/node_modules/router/index.js:575:12)
    at next (/Users/testuser/repo/node_modules/router/index.js:289:5)
    at Layer.handleError (/Users/testuser/repo/node_modules/router/lib/layer.js:108:12)
    at trimPrefix (/Users/testuser/repo/node_modules/router/index.js:335:13)
    at /Users/testuser/repo/node_modules/router/index.js:295:9
    at processParams (/Users/testuser/repo/node_modules/router/index.js:575:12)
    at next (/Users/testuser/repo/node_modules/router/index.js:289:5)
    at Layer.handleRequest (/Users/testuser/repo/node_modules/router/lib/layer.js:154:5)
@Vakintoshka
Copy link

Hey everyone,

Are there any updates or plans to include this in the roadmap? Our security audit requires us to move from express@5-beta to the stable express@5 release, but we’re currently facing compatibility issues with dd-trace.

Any guidance or updates would be greatly appreciated!

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

No branches or pull requests

4 participants
@vernak2539 @tlhunter @Vakintoshka and others