nestjs-otel: Package broken with newest opentelemetry dependencies
When using the latest opentelementy packages (0.27.0), the Nest application fails to start with the following error:
/home/node/app/node_modules/nestjs-otel/src/metrics/metric-data.ts:27
const valueRecorder = meter.createValueRecorder(name, options);
^
TypeError: meter.createValueRecorder is not a function
at getOrCreateValueRecorder (/home/node/app/node_modules/nestjs-otel/src/metrics/metric-data.ts:27:35)
at MetricService.getOrCreateValueRecorder (/home/node/app/node_modules/nestjs-otel/src/metrics/metric.service.ts:26:36)
at MetricService.getValueRecorder (/home/node/app/node_modules/nestjs-otel/src/metrics/metric.service.ts:20:17)
at new ApiMetricsMiddleware (/home/node/app/node_modules/nestjs-otel/src/middleware/api-metrics.middleware.ts:90:47)
at Injector.instantiateClass (/home/node/app/node_modules/@nestjs/core/injector/injector.js:301:19)
at callback (/home/node/app/node_modules/@nestjs/core/injector/injector.js:48:41)
at processTicksAndRejections (node:internal/process/task_queues:96:5)
at async Injector.resolveConstructorParams (/home/node/app/node_modules/@nestjs/core/injector/injector.js:124:24)
at async Injector.loadInstance (/home/node/app/node_modules/@nestjs/core/injector/injector.js:52:9)
at async Injector.loadMiddleware (/home/node/app/node_modules/@nestjs/core/injector/injector.js:61:9)
About this issue
- Original URL
- State: closed
- Created 3 years ago
- Reactions: 8
- Comments: 18 (6 by maintainers)
Hello. I am also getting this error:
From what I understood this was fixed here in the
opentelemetry-node-metrics.. which is already the version on the main branch on this repo, but not in the latest released tag.@pragmaticivan Any chance to create a new release please?
That’s actually great news 😂 I will try to patch that up this weekend, It will require a major version though. I’ve been keeping track of this release for a while but some packages might be moved somewhere else FYI.
Ref: https://github.com/open-telemetry/opentelemetry-js/issues/2480
For me, the below worked.
It seems to be an issue with the old version(1.1.0) of
opentelemetry-node-metricspackage being used. Forcing the package manager to install the latest version ofopentelemetry-node-metricsdid the trick for me.add the following in
package.jsonbtw, I am using
yarn. This won’t work fornpm.npm users: https://stackoverflow.com/questions/15806152/how-do-i-override-nested-npm-dependency-versions yarn users: https://stackoverflow.com/questions/40226639/how-do-i-override-nested-dependencies-with-yarn
@pragmaticivan How can I help resolve this issue? Should I update the dependency and raise a pr, or do you have something else in mind?