opentelemetry-js: crash when using aws-lambda instrumentation
I’ve been running into an exception where the JS auto-instrumentation attempts to load package.json
from the base path of a lambda handler. Is there a way to customize the path from /var/task/src/handlers/my-function-name/package.json
to a higher level /var/task/package.json
or /opt/my-extension/package.json
?
Copying the package.json into the expected locations causes the instrumentation to work as expected, it would just be painful for the project’s build process.
Setup:
- AWS managed Lambda Layer for ADOT JavaScript SDK and ADOT Collector
- OpenTelemetry JS v0.18.0
- OpenTelemetry JS Contrib v0.20b0,
- ADOT Collector for Lambda v0.9.1
- Node 12 runtimes
- Serverless framework builds and deploys
Exception:
2021-05-07T16:40:57.227Z undefined ERROR Uncaught Exception {"errorType":"Runtime.ImportModuleError",
"errorMessage":"Error: Cannot find module '/var/task/src/handlers/my-function-name/package.json'\n
Require stack:\n- /opt/nodejs/node_modules/@opentelemetry/instrumentation/build/src/platform/node/instrumentation.js\n-
/opt/nodejs/node_modules/@opentelemetry/instrumentation/build/src/platform/node/index.js\n-
/opt/nodejs/node_modules/@opentelemetry/instrumentation/build/src/platform/index.js\n-
/opt/nodejs/node_modules/@opentelemetry/instrumentation/build/src/autoLoader.js\n-
/opt/nodejs/node_modules/@opentelemetry/instrumentation/build/src/index.js\n-
/opt/nodejs/node_modules/@opentelemetry/instrumentation-aws-lambda/build/src/aws-lambda.js\n-
/opt/nodejs/node_modules/@opentelemetry/instrumentation-aws-lambda/build/src/index.js\n-
/opt/wrapper.js\n-
internal/preload","stack":["Runtime.ImportModuleError: Error: Cannot find module '/var/task/src/handlers/my-function-name/package.json'",
"Require stack:","- /opt/nodejs/node_modules/@opentelemetry/instrumentation/build/src/platform/node/instrumentation.js","-
/opt/nodejs/node_modules/@opentelemetry/instrumentation/build/src/platform/node/index.js","-
/opt/nodejs/node_modules/@opentelemetry/instrumentation/build/src/platform/index.js","-
/opt/nodejs/node_modules/@opentelemetry/instrumentation/build/src/autoLoader.js","-
/opt/nodejs/node_modules/@opentelemetry/instrumentation/build/src/index.js","-
/opt/nodejs/node_modules/@opentelemetry/instrumentation-aws-lambda/build/src/aws-lambda.js","-
/opt/nodejs/node_modules/@opentelemetry/instrumentation-aws-lambda/build/src/index.js","-
/opt/wrapper.js","- internal/preload"," at _loadUserApp (/var/runtime/UserFunction.js:100:13)","
at Object.module.exports.load (/var/runtime/UserFunction.js:140:17)"," at Object.<anonymous> (/var/runtime/index.js:43:30)",
" at Module._compile (internal/modules/cjs/loader.js:999:30)","
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1027:10)"," at Module.load (internal/modules/cjs/loader.js:863:32)","
at Function.Module._load (internal/modules/cjs/loader.js:708:14)","
at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:60:12)"," at internal/main/run_main_module.js:17:47"]}
_Originally posted by @adambartholomew in https://github.com/open-telemetry/opentelemetry-js/discussions/2192_
About this issue
- Original URL
- State: closed
- Created 3 years ago
- Reactions: 9
- Comments: 18 (14 by maintainers)
That’s what I was thinking. If the
supportedVersions.contains('*')
we shouldn’t have any reason to even attempt to find the package.jsonIs this released, because im getting this error with all latest versions
@vmarchaud The PR was merged (https://github.com/open-telemetry/opentelemetry-js/pull/2450) - should we close the ticket?