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

OpenTelemetry - New Relic - Next.js setup #2534

Closed
sxurik opened this issue Sep 2, 2024 · 3 comments · Fixed by #2537
Closed

OpenTelemetry - New Relic - Next.js setup #2534

sxurik opened this issue Sep 2, 2024 · 3 comments · Fixed by #2537
Assignees
Labels
documentation Improvements or additions to documentation points: 3 A few days

Comments

@sxurik
Copy link

sxurik commented Sep 2, 2024

Description

We are trying to integrate New Relic with Next.js app using OpenTelemetry following the guide here - https://github.com/newrelic/node-newrelic/blob/main/documentation/nextjs/faqs/cloud-providers.md#opentelemetry-setup-with-new-relic.

There are several "Module not found" errors, that can be resolved by installing @opentelemetry/auto-instrumentations-node, @opentelemetry/winston-transport, and @opentelemetry/exporter-jaeger.

Running next after all "Module not found" errors are fixed results in Critical dependency: the request of a dependency is an expression errors:

   PS D:\with-opentelemetry-app> npm run dev

> dev
> next

  ▲ Next.js 14.2.7
  - Local:        http://localhost:3000
  - Experiments (use with caution):
    · instrumentationHook

 ✓ Starting...
 ○ Compiling /instrumentation ...
 ⚠ ./node_modules/@opentelemetry/instrumentation-aws-lambda/node_modules/@opentelemetry/instrumentation/build/esm/platform/node/instrumentation.js
Critical dependency: the request of a dependency is an expression

Import trace for requested module:
./node_modules/@opentelemetry/instrumentation-aws-lambda/node_modules/@opentelemetry/instrumentation/build/esm/platform/node/instrumentation.js
./node_modules/@opentelemetry/instrumentation-aws-lambda/node_modules/@opentelemetry/instrumentation/build/esm/platform/node/index.js
./node_modules/@opentelemetry/instrumentation-aws-lambda/node_modules/@opentelemetry/instrumentation/build/esm/platform/index.js
./node_modules/@opentelemetry/instrumentation-aws-lambda/node_modules/@opentelemetry/instrumentation/build/esm/index.js
./node_modules/@opentelemetry/instrumentation-aws-lambda/build/src/instrumentation.js
./node_modules/@opentelemetry/instrumentation-aws-lambda/build/src/index.js
./node_modules/@opentelemetry/auto-instrumentations-node/build/src/utils.js
./node_modules/@opentelemetry/auto-instrumentations-node/build/src/index.js
./new-relic-instrumentation.js

./node_modules/@opentelemetry/instrumentation-bunyan/node_modules/@opentelemetry/instrumentation/build/esm/platform/node/instrumentation.js
Critical dependency: the request of a dependency is an expression

Import trace for requested module:
./node_modules/@opentelemetry/instrumentation-bunyan/node_modules/@opentelemetry/instrumentation/build/esm/platform/node/instrumentation.js
./node_modules/@opentelemetry/instrumentation-bunyan/node_modules/@opentelemetry/instrumentation/build/esm/platform/node/index.js
./node_modules/@opentelemetry/instrumentation-bunyan/node_modules/@opentelemetry/instrumentation/build/esm/platform/index.js
./node_modules/@opentelemetry/instrumentation-bunyan/node_modules/@opentelemetry/instrumentation/build/esm/index.js
./node_modules/@opentelemetry/instrumentation-bunyan/build/src/instrumentation.js
./node_modules/@opentelemetry/instrumentation-bunyan/build/src/index.js
./node_modules/@opentelemetry/auto-instrumentations-node/build/src/utils.js
./node_modules/@opentelemetry/auto-instrumentations-node/build/src/index.js
./new-relic-instrumentation.js

./node_modules/@opentelemetry/instrumentation-connect/node_modules/@opentelemetry/instrumentation/build/esm/platform/node/instrumentation.js
Critical dependency: the request of a dependency is an expression

Import trace for requested module:
./node_modules/@opentelemetry/instrumentation-connect/node_modules/@opentelemetry/instrumentation/build/esm/platform/node/instrumentation.js
./node_modules/@opentelemetry/instrumentation-connect/node_modules/@opentelemetry/instrumentation/build/esm/platform/node/index.js
./node_modules/@opentelemetry/instrumentation-connect/node_modules/@opentelemetry/instrumentation/build/esm/platform/index.js
./node_modules/@opentelemetry/instrumentation-connect/node_modules/@opentelemetry/instrumentation/build/esm/index.js
./node_modules/@opentelemetry/instrumentation-connect/build/src/instrumentation.js
./node_modules/@opentelemetry/instrumentation-connect/build/src/index.js
./node_modules/@opentelemetry/auto-instrumentations-node/build/src/utils.js
./node_modules/@opentelemetry/auto-instrumentations-node/build/src/index.js
./new-relic-instrumentation.js

./node_modules/@opentelemetry/instrumentation-dataloader/node_modules/@opentelemetry/instrumentation/build/esm/platform/node/instrumentation.js
Critical dependency: the request of a dependency is an expression

Import trace for requested module:
./node_modules/@opentelemetry/instrumentation-dataloader/node_modules/@opentelemetry/instrumentation/build/esm/platform/node/instrumentation.js
./node_modules/@opentelemetry/instrumentation-dataloader/node_modules/@opentelemetry/instrumentation/build/esm/platform/node/index.js
./node_modules/@opentelemetry/instrumentation-dataloader/node_modules/@opentelemetry/instrumentation/build/esm/platform/index.js
./node_modules/@opentelemetry/instrumentation-dataloader/node_modules/@opentelemetry/instrumentation/build/esm/index.js
./node_modules/@opentelemetry/instrumentation-dataloader/build/src/instrumentation.js
./node_modules/@opentelemetry/instrumentation-dataloader/build/src/index.js
./node_modules/@opentelemetry/auto-instrumentations-node/build/src/utils.js
./node_modules/@opentelemetry/auto-instrumentations-node/build/src/index.js
./new-relic-instrumentation.js

./node_modules/@opentelemetry/instrumentation-express/node_modules/@opentelemetry/instrumentation/build/esm/platform/node/instrumentation.js
Critical dependency: the request of a dependency is an expression

Import trace for requested module:
./node_modules/@opentelemetry/instrumentation-express/node_modules/@opentelemetry/instrumentation/build/esm/platform/node/instrumentation.js
./node_modules/@opentelemetry/instrumentation-express/node_modules/@opentelemetry/instrumentation/build/esm/platform/node/index.js
./node_modules/@opentelemetry/instrumentation-express/node_modules/@opentelemetry/instrumentation/build/esm/platform/index.js
./node_modules/@opentelemetry/instrumentation-express/node_modules/@opentelemetry/instrumentation/build/esm/index.js
./node_modules/@opentelemetry/instrumentation-express/build/src/instrumentation.js
./node_modules/@opentelemetry/instrumentation-express/build/src/index.js
./node_modules/@opentelemetry/auto-instrumentations-node/build/src/utils.js
./node_modules/@opentelemetry/auto-instrumentations-node/build/src/index.js
./new-relic-instrumentation.js

./node_modules/@opentelemetry/instrumentation-fs/node_modules/@opentelemetry/instrumentation/build/esm/platform/node/instrumentation.js
Critical dependency: the request of a dependency is an expression

Import trace for requested module:
./node_modules/@opentelemetry/instrumentation-fs/node_modules/@opentelemetry/instrumentation/build/esm/platform/node/instrumentation.js
./node_modules/@opentelemetry/instrumentation-fs/node_modules/@opentelemetry/instrumentation/build/esm/platform/node/index.js
./node_modules/@opentelemetry/instrumentation-fs/node_modules/@opentelemetry/instrumentation/build/esm/platform/index.js
./node_modules/@opentelemetry/instrumentation-fs/node_modules/@opentelemetry/instrumentation/build/esm/index.js
./node_modules/@opentelemetry/instrumentation-fs/build/src/instrumentation.js
./node_modules/@opentelemetry/instrumentation-fs/build/src/index.js
./node_modules/@opentelemetry/auto-instrumentations-node/build/src/utils.js
./node_modules/@opentelemetry/auto-instrumentations-node/build/src/index.js
./new-relic-instrumentation.js

./node_modules/@opentelemetry/instrumentation-graphql/node_modules/@opentelemetry/instrumentation/build/esm/platform/node/instrumentation.js
Critical dependency: the request of a dependency is an expression

Import trace for requested module:
./node_modules/@opentelemetry/instrumentation-graphql/node_modules/@opentelemetry/instrumentation/build/esm/platform/node/instrumentation.js
./node_modules/@opentelemetry/instrumentation-graphql/node_modules/@opentelemetry/instrumentation/build/esm/platform/node/index.js
./node_modules/@opentelemetry/instrumentation-graphql/node_modules/@opentelemetry/instrumentation/build/esm/platform/index.js
./node_modules/@opentelemetry/instrumentation-graphql/node_modules/@opentelemetry/instrumentation/build/esm/index.js
./node_modules/@opentelemetry/instrumentation-graphql/build/src/instrumentation.js
./node_modules/@opentelemetry/instrumentation-graphql/build/src/index.js
./node_modules/@opentelemetry/auto-instrumentations-node/build/src/utils.js
./node_modules/@opentelemetry/auto-instrumentations-node/build/src/index.js
./new-relic-instrumentation.js

./node_modules/@opentelemetry/instrumentation-hapi/node_modules/@opentelemetry/instrumentation/build/esm/platform/node/instrumentation.js
Critical dependency: the request of a dependency is an expression

Import trace for requested module:
./node_modules/@opentelemetry/instrumentation-hapi/node_modules/@opentelemetry/instrumentation/build/esm/platform/node/instrumentation.js
./node_modules/@opentelemetry/instrumentation-hapi/node_modules/@opentelemetry/instrumentation/build/esm/platform/node/index.js
./node_modules/@opentelemetry/instrumentation-hapi/node_modules/@opentelemetry/instrumentation/build/esm/platform/index.js
./node_modules/@opentelemetry/instrumentation-hapi/node_modules/@opentelemetry/instrumentation/build/esm/index.js
./node_modules/@opentelemetry/instrumentation-hapi/build/src/instrumentation.js
./node_modules/@opentelemetry/instrumentation-hapi/build/src/index.js
./node_modules/@opentelemetry/auto-instrumentations-node/build/src/utils.js
./node_modules/@opentelemetry/auto-instrumentations-node/build/src/index.js
./new-relic-instrumentation.js

./node_modules/@opentelemetry/instrumentation-ioredis/node_modules/@opentelemetry/instrumentation/build/esm/platform/node/instrumentation.js
Critical dependency: the request of a dependency is an expression

Import trace for requested module:
./node_modules/@opentelemetry/instrumentation-ioredis/node_modules/@opentelemetry/instrumentation/build/esm/platform/node/instrumentation.js
./node_modules/@opentelemetry/instrumentation-ioredis/node_modules/@opentelemetry/instrumentation/build/esm/platform/node/index.js
./node_modules/@opentelemetry/instrumentation-ioredis/node_modules/@opentelemetry/instrumentation/build/esm/platform/index.js
./node_modules/@opentelemetry/instrumentation-ioredis/node_modules/@opentelemetry/instrumentation/build/esm/index.js
./node_modules/@opentelemetry/instrumentation-ioredis/build/src/instrumentation.js
./node_modules/@opentelemetry/instrumentation-ioredis/build/src/index.js
./node_modules/@opentelemetry/auto-instrumentations-node/build/src/utils.js
./node_modules/@opentelemetry/auto-instrumentations-node/build/src/index.js
./new-relic-instrumentation.js

./node_modules/@opentelemetry/instrumentation-knex/node_modules/@opentelemetry/instrumentation/build/esm/platform/node/instrumentation.js
Critical dependency: the request of a dependency is an expression

Import trace for requested module:
./node_modules/@opentelemetry/instrumentation-knex/node_modules/@opentelemetry/instrumentation/build/esm/platform/node/instrumentation.js
./node_modules/@opentelemetry/instrumentation-knex/node_modules/@opentelemetry/instrumentation/build/esm/platform/node/index.js
./node_modules/@opentelemetry/instrumentation-knex/node_modules/@opentelemetry/instrumentation/build/esm/platform/index.js
./node_modules/@opentelemetry/instrumentation-knex/node_modules/@opentelemetry/instrumentation/build/esm/index.js
./node_modules/@opentelemetry/instrumentation-knex/build/src/instrumentation.js
./node_modules/@opentelemetry/instrumentation-knex/build/src/index.js
./node_modules/@opentelemetry/auto-instrumentations-node/build/src/utils.js
./node_modules/@opentelemetry/auto-instrumentations-node/build/src/index.js
./new-relic-instrumentation.js

./node_modules/@opentelemetry/instrumentation-lru-memoizer/node_modules/@opentelemetry/instrumentation/build/esm/platform/node/instrumentation.js
Critical dependency: the request of a dependency is an expression

Import trace for requested module:
./node_modules/@opentelemetry/instrumentation-lru-memoizer/node_modules/@opentelemetry/instrumentation/build/esm/platform/node/instrumentation.js
./node_modules/@opentelemetry/instrumentation-lru-memoizer/node_modules/@opentelemetry/instrumentation/build/esm/platform/node/index.js
./node_modules/@opentelemetry/instrumentation-lru-memoizer/node_modules/@opentelemetry/instrumentation/build/esm/platform/index.js
./node_modules/@opentelemetry/instrumentation-lru-memoizer/node_modules/@opentelemetry/instrumentation/build/esm/index.js
./node_modules/@opentelemetry/instrumentation-lru-memoizer/build/src/instrumentation.js
./node_modules/@opentelemetry/instrumentation-lru-memoizer/build/src/index.js
./node_modules/@opentelemetry/auto-instrumentations-node/build/src/utils.js
./node_modules/@opentelemetry/auto-instrumentations-node/build/src/index.js
./new-relic-instrumentation.js

./node_modules/@opentelemetry/instrumentation-mongodb/node_modules/@opentelemetry/instrumentation/build/esm/platform/node/instrumentation.js
Critical dependency: the request of a dependency is an expression

Import trace for requested module:
./node_modules/@opentelemetry/instrumentation-mongodb/node_modules/@opentelemetry/instrumentation/build/esm/platform/node/instrumentation.js
./node_modules/@opentelemetry/instrumentation-mongodb/node_modules/@opentelemetry/instrumentation/build/esm/platform/node/index.js
./node_modules/@opentelemetry/instrumentation-mongodb/node_modules/@opentelemetry/instrumentation/build/esm/platform/index.js
./node_modules/@opentelemetry/instrumentation-mongodb/node_modules/@opentelemetry/instrumentation/build/esm/index.js
./node_modules/@opentelemetry/instrumentation-mongodb/build/src/instrumentation.js
./node_modules/@opentelemetry/instrumentation-mongodb/build/src/index.js
./node_modules/@opentelemetry/auto-instrumentations-node/build/src/utils.js
./node_modules/@opentelemetry/auto-instrumentations-node/build/src/index.js
./new-relic-instrumentation.js

./node_modules/@opentelemetry/instrumentation-mysql/node_modules/@opentelemetry/instrumentation/build/esm/platform/node/instrumentation.js
Critical dependency: the request of a dependency is an expression

Import trace for requested module:
./node_modules/@opentelemetry/instrumentation-mysql/node_modules/@opentelemetry/instrumentation/build/esm/platform/node/instrumentation.js
./node_modules/@opentelemetry/instrumentation-mysql/node_modules/@opentelemetry/instrumentation/build/esm/platform/node/index.js
./node_modules/@opentelemetry/instrumentation-mysql/node_modules/@opentelemetry/instrumentation/build/esm/platform/index.js
./node_modules/@opentelemetry/instrumentation-mysql/node_modules/@opentelemetry/instrumentation/build/esm/index.js
./node_modules/@opentelemetry/instrumentation-mysql/build/src/instrumentation.js
./node_modules/@opentelemetry/instrumentation-mysql/build/src/index.js
./node_modules/@opentelemetry/auto-instrumentations-node/build/src/utils.js
./node_modules/@opentelemetry/auto-instrumentations-node/build/src/index.js
./new-relic-instrumentation.js

./node_modules/@opentelemetry/instrumentation-nestjs-core/node_modules/@opentelemetry/instrumentation/build/esm/platform/node/instrumentation.js
Critical dependency: the request of a dependency is an expression

Import trace for requested module:
./node_modules/@opentelemetry/instrumentation-nestjs-core/node_modules/@opentelemetry/instrumentation/build/esm/platform/node/instrumentation.js
./node_modules/@opentelemetry/instrumentation-nestjs-core/node_modules/@opentelemetry/instrumentation/build/esm/platform/node/index.js
./node_modules/@opentelemetry/instrumentation-nestjs-core/node_modules/@opentelemetry/instrumentation/build/esm/platform/index.js
./node_modules/@opentelemetry/instrumentation-nestjs-core/node_modules/@opentelemetry/instrumentation/build/esm/index.js
./node_modules/@opentelemetry/instrumentation-nestjs-core/build/src/instrumentation.js
./node_modules/@opentelemetry/instrumentation-nestjs-core/build/src/index.js
./node_modules/@opentelemetry/auto-instrumentations-node/build/src/utils.js
./node_modules/@opentelemetry/auto-instrumentations-node/build/src/index.js
./new-relic-instrumentation.js

./node_modules/@opentelemetry/instrumentation-pg/node_modules/@opentelemetry/instrumentation/build/esm/platform/node/instrumentation.js
Critical dependency: the request of a dependency is an expression

Import trace for requested module:
./node_modules/@opentelemetry/instrumentation-pg/node_modules/@opentelemetry/instrumentation/build/esm/platform/node/instrumentation.js
./node_modules/@opentelemetry/instrumentation-pg/node_modules/@opentelemetry/instrumentation/build/esm/platform/node/index.js
./node_modules/@opentelemetry/instrumentation-pg/node_modules/@opentelemetry/instrumentation/build/esm/platform/index.js
./node_modules/@opentelemetry/instrumentation-pg/node_modules/@opentelemetry/instrumentation/build/esm/index.js
./node_modules/@opentelemetry/instrumentation-pg/build/src/instrumentation.js
./node_modules/@opentelemetry/instrumentation-pg/build/src/index.js
./node_modules/@opentelemetry/auto-instrumentations-node/build/src/utils.js
./node_modules/@opentelemetry/auto-instrumentations-node/build/src/index.js
./new-relic-instrumentation.js

./node_modules/@opentelemetry/instrumentation-redis-4/node_modules/@opentelemetry/instrumentation/build/esm/platform/node/instrumentation.js
Critical dependency: the request of a dependency is an expression

Import trace for requested module:
./node_modules/@opentelemetry/instrumentation-redis-4/node_modules/@opentelemetry/instrumentation/build/esm/platform/node/instrumentation.js
./node_modules/@opentelemetry/instrumentation-redis-4/node_modules/@opentelemetry/instrumentation/build/esm/platform/node/index.js
./node_modules/@opentelemetry/instrumentation-redis-4/node_modules/@opentelemetry/instrumentation/build/esm/platform/index.js
./node_modules/@opentelemetry/instrumentation-redis-4/node_modules/@opentelemetry/instrumentation/build/esm/index.js
./node_modules/@opentelemetry/instrumentation-redis-4/build/src/instrumentation.js
./node_modules/@opentelemetry/instrumentation-redis-4/build/src/index.js
./node_modules/@opentelemetry/auto-instrumentations-node/build/src/utils.js
./node_modules/@opentelemetry/auto-instrumentations-node/build/src/index.js
./new-relic-instrumentation.js

./node_modules/@opentelemetry/instrumentation-restify/node_modules/@opentelemetry/instrumentation/build/esm/platform/node/instrumentation.js
Critical dependency: the request of a dependency is an expression

Import trace for requested module:
./node_modules/@opentelemetry/instrumentation-restify/node_modules/@opentelemetry/instrumentation/build/esm/platform/node/instrumentation.js
./node_modules/@opentelemetry/instrumentation-restify/node_modules/@opentelemetry/instrumentation/build/esm/platform/node/index.js
./node_modules/@opentelemetry/instrumentation-restify/node_modules/@opentelemetry/instrumentation/build/esm/platform/index.js
./node_modules/@opentelemetry/instrumentation-restify/node_modules/@opentelemetry/instrumentation/build/esm/index.js
./node_modules/@opentelemetry/instrumentation-restify/build/src/instrumentation.js
./node_modules/@opentelemetry/instrumentation-restify/build/src/index.js
./node_modules/@opentelemetry/auto-instrumentations-node/build/src/utils.js
./node_modules/@opentelemetry/auto-instrumentations-node/build/src/index.js
./new-relic-instrumentation.js

./node_modules/@opentelemetry/instrumentation-socket.io/node_modules/@opentelemetry/instrumentation/build/esm/platform/node/instrumentation.js
Critical dependency: the request of a dependency is an expression

Import trace for requested module:
./node_modules/@opentelemetry/instrumentation-socket.io/node_modules/@opentelemetry/instrumentation/build/esm/platform/node/instrumentation.js
./node_modules/@opentelemetry/instrumentation-socket.io/node_modules/@opentelemetry/instrumentation/build/esm/platform/node/index.js
./node_modules/@opentelemetry/instrumentation-socket.io/node_modules/@opentelemetry/instrumentation/build/esm/platform/index.js
./node_modules/@opentelemetry/instrumentation-socket.io/node_modules/@opentelemetry/instrumentation/build/esm/index.js
./node_modules/@opentelemetry/instrumentation-socket.io/build/src/socket.io.js
./node_modules/@opentelemetry/instrumentation-socket.io/build/src/index.js
./node_modules/@opentelemetry/auto-instrumentations-node/build/src/utils.js
./node_modules/@opentelemetry/auto-instrumentations-node/build/src/index.js
./new-relic-instrumentation.js

./node_modules/@opentelemetry/instrumentation-undici/node_modules/@opentelemetry/instrumentation/build/esm/platform/node/instrumentation.js
Critical dependency: the request of a dependency is an expression

Import trace for requested module:
./node_modules/@opentelemetry/instrumentation-undici/node_modules/@opentelemetry/instrumentation/build/esm/platform/node/instrumentation.js
./node_modules/@opentelemetry/instrumentation-undici/node_modules/@opentelemetry/instrumentation/build/esm/platform/node/index.js
./node_modules/@opentelemetry/instrumentation-undici/node_modules/@opentelemetry/instrumentation/build/esm/platform/index.js
./node_modules/@opentelemetry/instrumentation-undici/node_modules/@opentelemetry/instrumentation/build/esm/index.js
./node_modules/@opentelemetry/instrumentation-undici/build/src/undici.js
./node_modules/@opentelemetry/instrumentation-undici/build/src/index.js
./node_modules/@opentelemetry/auto-instrumentations-node/build/src/utils.js
./node_modules/@opentelemetry/auto-instrumentations-node/build/src/index.js
./new-relic-instrumentation.js

./node_modules/@opentelemetry/instrumentation/build/esm/platform/node/instrumentation.js
Critical dependency: the request of a dependency is an expression

Import trace for requested module:
./node_modules/@opentelemetry/instrumentation/build/esm/platform/node/instrumentation.js
./node_modules/@opentelemetry/instrumentation/build/esm/platform/node/index.js
./node_modules/@opentelemetry/instrumentation/build/esm/platform/index.js
./node_modules/@opentelemetry/instrumentation/build/esm/index.js
./node_modules/@opentelemetry/sdk-node/build/src/sdk.js
./node_modules/@opentelemetry/sdk-node/build/src/index.js
./new-relic-instrumentation.js

Expected Behavior

It's possible to set up OpenTelemetry - New Relic - Next.js integration using this guide.

Troubleshooting or NR Diag results

N/A

Steps to Reproduce

  1. Clone this repo where the issue is reproduced.
  2. Run npm run dev script.

Environment

Node.js v18.20.4
npm v10.7.0
Windows 11

@workato-integration
Copy link

@bizob2828 bizob2828 added documentation Improvements or additions to documentation and removed bug labels Sep 3, 2024
@kmudduluru kmudduluru added points: 3 A few days and removed needs-triage labels Sep 3, 2024
@bizob2828 bizob2828 self-assigned this Sep 3, 2024
@bizob2828
Copy link
Member

Thanks for the report @sxurik. I'll update the docs to include the missing deps

@bizob2828
Copy link
Member

@sxurik take a look at the updated FAQ. I verified that it will work properly

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Improvements or additions to documentation points: 3 A few days
Projects
Status: Done: Issues recently completed
Development

Successfully merging a pull request may close this issue.

3 participants