Closed
Description
express@5.0.0 was released recently (2024-09-10). We will need to do some work on our instrumentation to support it.
Just attempting to instrument v5 with the current instrumentation results in tests crashing:
diff --git a/lib/instrumentation/modules/express.js b/lib/instrumentation/modules/express.js
index d7784cfa..417e27de 100644
--- a/lib/instrumentation/modules/express.js
+++ b/lib/instrumentation/modules/express.js
@@ -17,9 +17,9 @@ module.exports = function (express, agent, { version, enabled }) {
agent.setFramework({ name: 'express', version, overwrite: false });
- if (!semver.satisfies(version, '^4.0.0')) {
+ if (!semver.satisfies(version, '>=4.0.0 <6.0.0')) {
agent.logger.debug(
- 'express version %s not supported - aborting...',
+ 'instrumenting express@%s is not supported, skipping',
version,
);
return express;
Test crash:
% node test/instrumentation/modules/express/basic.test.js
...
# expose app.use handle properties
TypeError: Cannot read properties of undefined (reading 'stack')
at handle (/Users/trentm/el/apm-agent-nodejs3/test/instrumentation/modules/express/basic.test.js:512:35)
at handle (/Users/trentm/el/apm-agent-nodejs3/lib/instrumentation/modules/express.js:80:25)
at Layer.handleRequest (/Users/trentm/el/apm-agent-nodejs3/node_modules/router/lib/layer.js:145:17)
at trimPrefix (/Users/trentm/el/apm-agent-nodejs3/node_modules/router/index.js:337:13)
at /Users/trentm/el/apm-agent-nodejs3/node_modules/router/index.js:295:9
at processParams (/Users/trentm/el/apm-agent-nodejs3/node_modules/router/index.js:575:12)
at next (/Users/trentm/el/apm-agent-nodejs3/node_modules/router/index.js:289:5)
at Function.handle (/Users/trentm/el/apm-agent-nodejs3/node_modules/router/index.js:183:3)
at router (/Users/trentm/el/apm-agent-nodejs3/node_modules/router/index.js:59:12)
at handle (/Users/trentm/el/apm-agent-nodejs3/lib/instrumentation/modules/express.js:80:25)
at Layer.handleRequest (/Users/trentm/el/apm-agent-nodejs3/node_modules/router/lib/layer.js:145:17)
at trimPrefix (/Users/trentm/el/apm-agent-nodejs3/node_modules/router/index.js:337:13)
at /Users/trentm/el/apm-agent-nodejs3/node_modules/router/index.js:295:9
at processParams (/Users/trentm/el/apm-agent-nodejs3/node_modules/router/index.js:575:12)
at next (/Users/trentm/el/apm-agent-nodejs3/node_modules/router/index.js:289:5)
at Function.handle (/Users/trentm/el/apm-agent-nodejs3/node_modules/router/index.js:183:3)
at Function.handle (/Users/trentm/el/apm-agent-nodejs3/node_modules/express/lib/application.js:179:15)
at Server.app (/Users/trentm/el/apm-agent-nodejs3/node_modules/express/lib/express.js:38:9)
at Server.emit (node:events:517:28)
at Server.emit (/Users/trentm/el/apm-agent-nodejs3/lib/instrumentation/http-shared.js:162:19)
at parserOnIncoming (node:_http_server:1130:12)
at HTTPParser.parserOnHeadersComplete (node:_http_common:119:17) {
[Symbol(ElasticAPMErrorReported)]: true
}
/Users/trentm/el/apm-agent-nodejs3/test/instrumentation/modules/express/basic.test.js:562
throw err;
^
TypeError: Cannot read properties of undefined (reading 'stack')
at handle (/Users/trentm/el/apm-agent-nodejs3/test/instrumentation/modules/express/basic.test.js:512:35)
at handle (/Users/trentm/el/apm-agent-nodejs3/lib/instrumentation/modules/express.js:80:25)
at Layer.handleRequest (/Users/trentm/el/apm-agent-nodejs3/node_modules/router/lib/layer.js:145:17)
at trimPrefix (/Users/trentm/el/apm-agent-nodejs3/node_modules/router/index.js:337:13)
at /Users/trentm/el/apm-agent-nodejs3/node_modules/router/index.js:295:9
at processParams (/Users/trentm/el/apm-agent-nodejs3/node_modules/router/index.js:575:12)
at next (/Users/trentm/el/apm-agent-nodejs3/node_modules/router/index.js:289:5)
at Function.handle (/Users/trentm/el/apm-agent-nodejs3/node_modules/router/index.js:183:3)
at router (/Users/trentm/el/apm-agent-nodejs3/node_modules/router/index.js:59:12)
at handle (/Users/trentm/el/apm-agent-nodejs3/lib/instrumentation/modules/express.js:80:25)
at Layer.handleRequest (/Users/trentm/el/apm-agent-nodejs3/node_modules/router/lib/layer.js:145:17)
at trimPrefix (/Users/trentm/el/apm-agent-nodejs3/node_modules/router/index.js:337:13)
at /Users/trentm/el/apm-agent-nodejs3/node_modules/router/index.js:295:9
at processParams (/Users/trentm/el/apm-agent-nodejs3/node_modules/router/index.js:575:12)
at next (/Users/trentm/el/apm-agent-nodejs3/node_modules/router/index.js:289:5)
at Function.handle (/Users/trentm/el/apm-agent-nodejs3/node_modules/router/index.js:183:3)
at Function.handle (/Users/trentm/el/apm-agent-nodejs3/node_modules/express/lib/application.js:179:15)
at Server.app (/Users/trentm/el/apm-agent-nodejs3/node_modules/express/lib/express.js:38:9)
at Server.emit (node:events:517:28)
at Server.emit (/Users/trentm/el/apm-agent-nodejs3/lib/instrumentation/http-shared.js:162:19)
at parserOnIncoming (node:_http_server:1130:12)
at HTTPParser.parserOnHeadersComplete (node:_http_common:119:17) {
[Symbol(ElasticAPMErrorReported)]: true
}
Node.js v18.20.4
Full test run output
% node test/instrumentation/modules/express/basic.test.js
{"log.level":"info","@timestamp":"2024-09-16T21:39:38.787Z","log.logger":"elastic-apm-node","ecs.version":"8.10.0","agentVersion":"4.7.3","env":{"pid":74532,"proctitle":"node","os":"darwin 23.6.0","arch":"arm64","host":"peach.local","timezone":"UTC-0700","runtime":"Node.js v18.20.4"},"config":{"captureExceptions":{"source":"start","value":true},"centralConfig":{"source":"start","value":false},"logLevel":{"source":"default","value":"info","commonName":"log_level"},"metricsInterval":{"source":"start","value":0},"serverUrl":{"source":"default","value":"http://127.0.0.1:8200/","commonName":"server_url"},"secretToken":{"source":"start","value":"[REDACTED]","commonName":"secret_token"},"serviceName":{"source":"start","value":"test","commonName":"service_name"},"serviceVersion":{"source":"default","value":"4.7.3","commonName":"service_version"}},"activationMethod":"require","message":"Elastic APM Node.js Agent v4.7.3"}
{"log.level":"error","@timestamp":"2024-09-16T21:39:38.919Z","log.logger":"elastic-apm-node","ecs.version":"8.10.0","message":"APM Server transport error: error fetching APM Server version: connect ECONNREFUSED 127.0.0.1:8200"}
TAP version 13
# app.use('/') - GET /
ok 1 has a transaction
ok 2 transaction name is GET unknown route
ok 3 transaction type is request
ok 4 null
ok 5 should have expected response body
# app.use('/') - POST /
ok 6 has a transaction
ok 7 transaction name is POST unknown route
ok 8 transaction type is request
ok 9 null
ok 10 should have expected response body
# app.get('/') - GET /
ok 11 has a transaction
ok 12 transaction name is GET /
ok 13 transaction type is request
ok 14 null
ok 15 should have expected response body
# app.post('/') - POST /
ok 16 has a transaction
ok 17 transaction name is POST /
ok 18 transaction type is request
ok 19 null
ok 20 should have expected response body
# app.head('/') - HEAD /
ok 21 has a transaction
ok 22 transaction name is HEAD /
ok 23 transaction type is request
ok 24 null
ok 25 should have expected response body
# app.use('/foo/:id') - GET /foo/42
ok 26 has a transaction
ok 27 transaction name is GET /foo/:id
ok 28 transaction type is request
ok 29 null
ok 30 should have expected response body
# app.use('/foo/:id') - POST /foo/42
ok 31 has a transaction
ok 32 transaction name is POST /foo/:id
ok 33 transaction type is request
ok 34 null
ok 35 should have expected response body
# app.get('/foo/:id') - GET /foo/42
ok 36 has a transaction
ok 37 transaction name is GET /foo/:id
ok 38 transaction type is request
ok 39 null
ok 40 should have expected response body
# app.post('/foo/:id') - POST /foo/42
ok 41 has a transaction
ok 42 transaction name is POST /foo/:id
ok 43 transaction type is request
ok 44 null
ok 45 should have expected response body
# app.head('/foo/:id') - HEAD /foo/42
ok 46 has a transaction
ok 47 transaction name is HEAD /foo/:id
ok 48 transaction type is request
ok 49 null
ok 50 should have expected response body
# app.use('/') => app.use('/') - GET /
ok 51 has a transaction
ok 52 transaction name is GET unknown route
ok 53 transaction type is request
ok 54 null
ok 55 should have expected response body
# app.use('/') => app.use('/') - POST /
ok 56 has a transaction
ok 57 transaction name is POST unknown route
ok 58 transaction type is request
ok 59 null
ok 60 should have expected response body
# app.use('/') => app.get('/') - GET /
ok 61 has a transaction
ok 62 transaction name is GET /
ok 63 transaction type is request
ok 64 null
ok 65 should have expected response body
# app.use('/') => app.post('/') - POST /
ok 66 has a transaction
ok 67 transaction name is POST /
ok 68 transaction type is request
ok 69 null
ok 70 should have expected response body
# app.use('/') => app.head('/') - HEAD /
ok 71 has a transaction
ok 72 transaction name is HEAD /
ok 73 transaction type is request
ok 74 null
ok 75 should have expected response body
# app.use('/') => app.use('/foo/:id') - GET /foo/42
ok 76 has a transaction
ok 77 transaction name is GET /foo/:id
ok 78 transaction type is request
ok 79 null
ok 80 should have expected response body
# app.use('/') => app.use('/foo/:id') - POST /foo/42
ok 81 has a transaction
ok 82 transaction name is POST /foo/:id
ok 83 transaction type is request
ok 84 null
ok 85 should have expected response body
# app.use('/') => app.get('/foo/:id') - GET /foo/42
ok 86 has a transaction
ok 87 transaction name is GET /foo/:id
ok 88 transaction type is request
ok 89 null
ok 90 should have expected response body
# app.use('/') => app.post('/foo/:id') - POST /foo/42
ok 91 has a transaction
ok 92 transaction name is POST /foo/:id
ok 93 transaction type is request
ok 94 null
ok 95 should have expected response body
# app.use('/') => app.head('/foo/:id') - HEAD /foo/42
ok 96 has a transaction
ok 97 transaction name is HEAD /foo/:id
ok 98 transaction type is request
ok 99 null
ok 100 should have expected response body
# app.use('/sub') => app.use('/') - GET /sub
ok 101 has a transaction
ok 102 transaction name is GET /sub
ok 103 transaction type is request
ok 104 null
ok 105 should have expected response body
# app.use('/sub') => app.use('/') - POST /sub
ok 106 has a transaction
ok 107 transaction name is POST /sub
ok 108 transaction type is request
ok 109 null
ok 110 should have expected response body
# app.use('/sub') => app.get('/') - GET /sub
ok 111 has a transaction
ok 112 transaction name is GET /sub
ok 113 transaction type is request
ok 114 null
ok 115 should have expected response body
# app.use('/sub') => app.post('/') - POST /sub
ok 116 has a transaction
ok 117 transaction name is POST /sub
ok 118 transaction type is request
ok 119 null
ok 120 should have expected response body
# app.use('/sub') => app.head('/') - HEAD /sub
ok 121 has a transaction
ok 122 transaction name is HEAD /sub
ok 123 transaction type is request
ok 124 null
ok 125 should have expected response body
# app.use('/sub') => app.use('/foo/:id') - GET /sub/foo/42
ok 126 has a transaction
ok 127 transaction name is GET /sub/foo/:id
ok 128 transaction type is request
ok 129 null
ok 130 should have expected response body
# app.use('/sub') => app.use('/foo/:id') - POST /sub/foo/42
ok 131 has a transaction
ok 132 transaction name is POST /sub/foo/:id
ok 133 transaction type is request
ok 134 null
ok 135 should have expected response body
# app.use('/sub') => app.get('/foo/:id') - GET /sub/foo/42
ok 136 has a transaction
ok 137 transaction name is GET /sub/foo/:id
ok 138 transaction type is request
ok 139 null
ok 140 should have expected response body
# app.use('/sub') => app.post('/foo/:id') - POST /sub/foo/42
ok 141 has a transaction
ok 142 transaction name is POST /sub/foo/:id
ok 143 transaction type is request
ok 144 null
ok 145 should have expected response body
# app.use('/sub') => app.head('/foo/:id') - HEAD /sub/foo/42
ok 146 has a transaction
ok 147 transaction name is HEAD /sub/foo/:id
ok 148 transaction type is request
ok 149 null
ok 150 should have expected response body
# app.use('/sub/:id') => app.use('/') - GET /sub/42
ok 151 has a transaction
ok 152 transaction name is GET /sub/:id
ok 153 transaction type is request
ok 154 null
ok 155 should have expected response body
# app.use('/sub/:id') => app.use('/') - POST /sub/42
ok 156 has a transaction
ok 157 transaction name is POST /sub/:id
ok 158 transaction type is request
ok 159 null
ok 160 should have expected response body
# app.use('/sub/:id') => app.get('/') - GET /sub/42
ok 161 has a transaction
ok 162 transaction name is GET /sub/:id
ok 163 transaction type is request
ok 164 null
ok 165 should have expected response body
# app.use('/sub/:id') => app.post('/') - POST /sub/42
ok 166 has a transaction
ok 167 transaction name is POST /sub/:id
ok 168 transaction type is request
ok 169 null
ok 170 should have expected response body
# app.use('/sub/:id') => app.head('/') - HEAD /sub/42
ok 171 has a transaction
ok 172 transaction name is HEAD /sub/:id
ok 173 transaction type is request
ok 174 null
ok 175 should have expected response body
# app.use('/sub/:id') => app.use('/foo/:id') - GET /sub/42/foo/42
ok 176 has a transaction
ok 177 transaction name is GET /sub/:id/foo/:id
ok 178 transaction type is request
ok 179 null
ok 180 should have expected response body
# app.use('/sub/:id') => app.use('/foo/:id') - POST /sub/42/foo/42
ok 181 has a transaction
ok 182 transaction name is POST /sub/:id/foo/:id
ok 183 transaction type is request
ok 184 null
ok 185 should have expected response body
# app.use('/sub/:id') => app.get('/foo/:id') - GET /sub/42/foo/42
ok 186 has a transaction
ok 187 transaction name is GET /sub/:id/foo/:id
ok 188 transaction type is request
ok 189 null
ok 190 should have expected response body
# app.use('/sub/:id') => app.post('/foo/:id') - POST /sub/42/foo/42
ok 191 has a transaction
ok 192 transaction name is POST /sub/:id/foo/:id
ok 193 transaction type is request
ok 194 null
ok 195 should have expected response body
# app.use('/sub/:id') => app.head('/foo/:id') - HEAD /sub/42/foo/42
ok 196 has a transaction
ok 197 transaction name is HEAD /sub/:id/foo/:id
ok 198 transaction type is request
ok 199 null
ok 200 should have expected response body
# error intercept
ok 201 has the expected error
ok 202 captured data with error
ok 203 captured data has the request object
ok 204 has a transaction
ok 205 transaction name is GET /
ok 206 transaction type is request
ok 207 null
ok 208 got correct body from error handler middleware
# ignore 404 errors
ok 209 has a transaction
ok 210 transaction name is GET unknown route
ok 211 transaction type is request
ok 212 null
ok 213 got correct body from error handler middleware
# ignore invalid errors
ok 214 has a transaction
ok 215 transaction name is GET /
ok 216 transaction type is request
ok 217 null
ok 218 got correct body from error handler middleware
# do not inherit past route names
ok 219 has a transaction
ok 220 transaction name is GET /
ok 221 transaction type is request
ok 222 null
ok 223 got correct body from error handler middleware
# sub-routers include base path
ok 224 has a transaction
ok 225 transaction name is GET /hello/:name
ok 226 transaction type is request
ok 227 null
ok 228 got correct body
# sub-routers throw exception
ok 229 has a transaction
ok 230 transaction name is GET /api/:name
ok 231 transaction type is request
ok 232 null
Error: hello
at Test.<anonymous> (/Users/trentm/el/apm-agent-nodejs3/test/instrumentation/modules/express/basic.test.js:357:15)
at Test.run (/Users/trentm/el/apm-agent-nodejs3/node_modules/tape/lib/test.js:126:28)
at Immediate.next (/Users/trentm/el/apm-agent-nodejs3/node_modules/tape/lib/results.js:158:7)
at process.processImmediate (node:internal/timers:476:21)
at process.callbackTrampoline (node:internal/async_hooks:128:17)
# sub-router handler calls next(exception)
ok 233 has a transaction
ok 234 transaction name is GET /api/:name
ok 235 transaction type is request
ok 236 null
Error: boom
at /Users/trentm/el/apm-agent-nodejs3/test/instrumentation/modules/express/basic.test.js:405:10
at Layer.handleRequest (/Users/trentm/el/apm-agent-nodejs3/node_modules/router/lib/layer.js:145:17)
at next (/Users/trentm/el/apm-agent-nodejs3/node_modules/router/lib/route.js:159:13)
at Route.dispatch (/Users/trentm/el/apm-agent-nodejs3/node_modules/router/lib/route.js:119:3)
at handle (/Users/trentm/el/apm-agent-nodejs3/node_modules/router/index.js:428:11)
at handle (/Users/trentm/el/apm-agent-nodejs3/lib/instrumentation/modules/express.js:80:25)
at Layer.handleRequest (/Users/trentm/el/apm-agent-nodejs3/node_modules/router/lib/layer.js:145:17)
at /Users/trentm/el/apm-agent-nodejs3/node_modules/router/index.js:293:15
at param (/Users/trentm/el/apm-agent-nodejs3/node_modules/router/index.js:593:14)
at param (/Users/trentm/el/apm-agent-nodejs3/node_modules/router/index.js:603:14)
at processParams (/Users/trentm/el/apm-agent-nodejs3/node_modules/router/index.js:653:3)
at next (/Users/trentm/el/apm-agent-nodejs3/node_modules/router/index.js:289:5)
at Function.handle (/Users/trentm/el/apm-agent-nodejs3/node_modules/router/index.js:183:3)
at router (/Users/trentm/el/apm-agent-nodejs3/node_modules/router/index.js:59:12)
at handle (/Users/trentm/el/apm-agent-nodejs3/lib/instrumentation/modules/express.js:80:25)
at Layer.handleRequest (/Users/trentm/el/apm-agent-nodejs3/node_modules/router/lib/layer.js:145:17)
at trimPrefix (/Users/trentm/el/apm-agent-nodejs3/node_modules/router/index.js:337:13)
at /Users/trentm/el/apm-agent-nodejs3/node_modules/router/index.js:295:9
at processParams (/Users/trentm/el/apm-agent-nodejs3/node_modules/router/index.js:575:12)
at next (/Users/trentm/el/apm-agent-nodejs3/node_modules/router/index.js:289:5)
at Function.handle (/Users/trentm/el/apm-agent-nodejs3/node_modules/router/index.js:183:3)
at Function.handle (/Users/trentm/el/apm-agent-nodejs3/node_modules/express/lib/application.js:179:15)
at Server.app (/Users/trentm/el/apm-agent-nodejs3/node_modules/express/lib/express.js:38:9)
at Server.emit (node:events:517:28)
at Server.emit (/Users/trentm/el/apm-agent-nodejs3/lib/instrumentation/http-shared.js:162:19)
at parserOnIncoming (node:_http_server:1130:12)
at HTTPParser.parserOnHeadersComplete (node:_http_common:119:17)
# sub-router handler calls next(non-exception)
ok 237 has a transaction
ok 238 transaction name is GET /api/:name
ok 239 transaction type is request
ok 240 null
this is some truthy value that is not "route" or "router"
# sub-router handler calls next("route")
ok 241 has a transaction
ok 242 transaction name is GET /api/other-endpoint
ok 243 transaction type is request
ok 244 null
ok 245 got correct body
# expose app.use handle properties
TypeError: Cannot read properties of undefined (reading 'stack')
at handle (/Users/trentm/el/apm-agent-nodejs3/test/instrumentation/modules/express/basic.test.js:512:35)
at handle (/Users/trentm/el/apm-agent-nodejs3/lib/instrumentation/modules/express.js:80:25)
at Layer.handleRequest (/Users/trentm/el/apm-agent-nodejs3/node_modules/router/lib/layer.js:145:17)
at trimPrefix (/Users/trentm/el/apm-agent-nodejs3/node_modules/router/index.js:337:13)
at /Users/trentm/el/apm-agent-nodejs3/node_modules/router/index.js:295:9
at processParams (/Users/trentm/el/apm-agent-nodejs3/node_modules/router/index.js:575:12)
at next (/Users/trentm/el/apm-agent-nodejs3/node_modules/router/index.js:289:5)
at Function.handle (/Users/trentm/el/apm-agent-nodejs3/node_modules/router/index.js:183:3)
at router (/Users/trentm/el/apm-agent-nodejs3/node_modules/router/index.js:59:12)
at handle (/Users/trentm/el/apm-agent-nodejs3/lib/instrumentation/modules/express.js:80:25)
at Layer.handleRequest (/Users/trentm/el/apm-agent-nodejs3/node_modules/router/lib/layer.js:145:17)
at trimPrefix (/Users/trentm/el/apm-agent-nodejs3/node_modules/router/index.js:337:13)
at /Users/trentm/el/apm-agent-nodejs3/node_modules/router/index.js:295:9
at processParams (/Users/trentm/el/apm-agent-nodejs3/node_modules/router/index.js:575:12)
at next (/Users/trentm/el/apm-agent-nodejs3/node_modules/router/index.js:289:5)
at Function.handle (/Users/trentm/el/apm-agent-nodejs3/node_modules/router/index.js:183:3)
at Function.handle (/Users/trentm/el/apm-agent-nodejs3/node_modules/express/lib/application.js:179:15)
at Server.app (/Users/trentm/el/apm-agent-nodejs3/node_modules/express/lib/express.js:38:9)
at Server.emit (node:events:517:28)
at Server.emit (/Users/trentm/el/apm-agent-nodejs3/lib/instrumentation/http-shared.js:162:19)
at parserOnIncoming (node:_http_server:1130:12)
at HTTPParser.parserOnHeadersComplete (node:_http_common:119:17) {
[Symbol(ElasticAPMErrorReported)]: true
}
/Users/trentm/el/apm-agent-nodejs3/test/instrumentation/modules/express/basic.test.js:562
throw err;
^
TypeError: Cannot read properties of undefined (reading 'stack')
at handle (/Users/trentm/el/apm-agent-nodejs3/test/instrumentation/modules/express/basic.test.js:512:35)
at handle (/Users/trentm/el/apm-agent-nodejs3/lib/instrumentation/modules/express.js:80:25)
at Layer.handleRequest (/Users/trentm/el/apm-agent-nodejs3/node_modules/router/lib/layer.js:145:17)
at trimPrefix (/Users/trentm/el/apm-agent-nodejs3/node_modules/router/index.js:337:13)
at /Users/trentm/el/apm-agent-nodejs3/node_modules/router/index.js:295:9
at processParams (/Users/trentm/el/apm-agent-nodejs3/node_modules/router/index.js:575:12)
at next (/Users/trentm/el/apm-agent-nodejs3/node_modules/router/index.js:289:5)
at Function.handle (/Users/trentm/el/apm-agent-nodejs3/node_modules/router/index.js:183:3)
at router (/Users/trentm/el/apm-agent-nodejs3/node_modules/router/index.js:59:12)
at handle (/Users/trentm/el/apm-agent-nodejs3/lib/instrumentation/modules/express.js:80:25)
at Layer.handleRequest (/Users/trentm/el/apm-agent-nodejs3/node_modules/router/lib/layer.js:145:17)
at trimPrefix (/Users/trentm/el/apm-agent-nodejs3/node_modules/router/index.js:337:13)
at /Users/trentm/el/apm-agent-nodejs3/node_modules/router/index.js:295:9
at processParams (/Users/trentm/el/apm-agent-nodejs3/node_modules/router/index.js:575:12)
at next (/Users/trentm/el/apm-agent-nodejs3/node_modules/router/index.js:289:5)
at Function.handle (/Users/trentm/el/apm-agent-nodejs3/node_modules/router/index.js:183:3)
at Function.handle (/Users/trentm/el/apm-agent-nodejs3/node_modules/express/lib/application.js:179:15)
at Server.app (/Users/trentm/el/apm-agent-nodejs3/node_modules/express/lib/express.js:38:9)
at Server.emit (node:events:517:28)
at Server.emit (/Users/trentm/el/apm-agent-nodejs3/lib/instrumentation/http-shared.js:162:19)
at parserOnIncoming (node:_http_server:1130:12)
at HTTPParser.parserOnHeadersComplete (node:_http_common:119:17) {
[Symbol(ElasticAPMErrorReported)]: true
}
Node.js v18.20.4
Metadata
Metadata
Assignees
Labels
No labels