Skip to content

Auto-instrumentation doesn't work when using Yarn 2 with PnP #1412

@schickling

Description

@schickling

What version of OpenTelemetry are you using?

    "@opentelemetry/api": "^0.10.2",
    "@opentelemetry/exporter-collector": "^0.10.2",
    "@opentelemetry/exporter-jaeger": "^0.10.2",
    "@opentelemetry/node": "^0.10.2",
    "@opentelemetry/plugin-grpc": "^0.10.2",
    "@opentelemetry/plugin-http": "^0.10.2",
    "@opentelemetry/plugin-https": "^0.10.2",
    "@opentelemetry/tracing": "^0.10.2",

What version of Node are you using?

v14.7.0

What did you do?

When using Yarn 2 with PnP enabled (which is on by default), the plugin-based auto-instrumentation doesn't seem to work.

What did you expect to see?

It should work as when not using PnP (i.e. node_modules being present).

What did you see instead?

PluginLoader#load: trying to load [email protected]
PluginLoader#load: could not load plugin @opentelemetry/plugin-http of module http. Error: @opentelemetry/node tried to access @opentelemetry/plugin-http, but it isn't declared in its dependencies; this makes the require call ambiguous and unsound.

Required package: @opentelemetry/plugin-http (via "@opentelemetry/plugin-http")
Required by: @opentelemetry/node@npm:0.10.2 (via /home/schickling/code/my-project/.yarn/cache/@opentelemetry-node-npm-0.10.2-4554cb7ee1-d2e66e9307.zip/node_modules/@opentelemetry/node/build/src/instrumentation/)

Require stack:
- /home/schickling/code/my-project/.yarn/cache/@opentelemetry-node-npm-0.10.2-4554cb7ee1-d2e66e9307.zip/node_modules/@opentelemetry/node/build/src/instrumentation/PluginLoader.js
- /home/schickling/code/my-project/.yarn/cache/@opentelemetry-node-npm-0.10.2-4554cb7ee1-d2e66e9307.zip/node_modules/@opentelemetry/node/build/src/NodeTracerProvider.js
- /home/schickling/code/my-project/.yarn/cache/@opentelemetry-node-npm-0.10.2-4554cb7ee1-d2e66e9307.zip/node_modules/@opentelemetry/node/build/src/index.js
- /home/schickling/code/my-project/packages/my-project-service/src/index.ts
PluginLoader#load: trying to load [email protected]
PluginLoader#load: could not load plugin @opentelemetry/plugin-https of module https. Error: @opentelemetry/node tried to access @opentelemetry/plugin-https, but it isn't declared in its dependencies; this makes the require call ambiguous and unsound.

Required package: @opentelemetry/plugin-https (via "@opentelemetry/plugin-https")
Required by: @opentelemetry/node@npm:0.10.2 (via /home/schickling/code/my-project/.yarn/cache/@opentelemetry-node-npm-0.10.2-4554cb7ee1-d2e66e9307.zip/node_modules/@opentelemetry/node/build/src/instrumentation/)

Require stack:
- /home/schickling/code/my-project/.yarn/cache/@opentelemetry-node-npm-0.10.2-4554cb7ee1-d2e66e9307.zip/node_modules/@opentelemetry/node/build/src/instrumentation/PluginLoader.js
- /home/schickling/code/my-project/.yarn/cache/@opentelemetry-node-npm-0.10.2-4554cb7ee1-d2e66e9307.zip/node_modules/@opentelemetry/node/build/src/NodeTracerProvider.js
- /home/schickling/code/my-project/.yarn/cache/@opentelemetry-node-npm-0.10.2-4554cb7ee1-d2e66e9307.zip/node_modules/@opentelemetry/node/build/src/index.js
- /home/schickling/code/my-project/packages/my-project-service/src/index.ts

Metadata

Metadata

Assignees

No one assigned

    Labels

    DiscussionIssue or PR that needs/is extended discussion.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions