Description
I am using mongoose which seems to have added a __parentArray, to an object that is part of an array. Hence there is a circular reference and so _scrubStatement then throws:
@opentelemetry/instrumentation-mongodb Error running dbStatementSerializer hook RangeError: Maximum call stack size exceeded at /Users/james/Library/CloudStorage/Dropbox/growthbookzip/growthbook/node_modules/@opentelemetry/instrumentation-mongodb/build/src/instrumentation.js:581:65 at Array.map (<anonymous>) at MongoDBInstrumentation._scrubStatement
This was introduced in instrumentation-mongodb.
You probably need to add a circular reference check. Or some hard coded check for __parentArray, since I'm assuming mongoose is pretty common.
What version of OpenTelemetry are you using?
"@opentelemetry/api": "^1.9.0",
"@opentelemetry/auto-instrumentations-node": "^0.47.1",
"@opentelemetry/exporter-metrics-otlp-proto": "^0.52.0",
"@opentelemetry/sdk-metrics": "^1.25.0"
What version of Node are you using?
v20.12.2
What did you do?
Ran some DB query that got automatically scrubbed.
My mongoose schema has a property phases
that is defined as:
phases: [
{
_id: false,
dateStarted: Date,
dateEnded: Date,
phase: String,
name: String,
reason: String,
coverage: Number,
condition: String,
savedGroups: [
{
_id: false,
ids: [String],
match: String,
},
],
prerequisites: [
{
_id: false,
id: String,
condition: String,
},
],
namespace: {},
seed: String,
variationWeights: [Number],
groups: [String],
},
],
It probably was a create statement.
What did you expect to see?
No Errors.
What did you see instead?
The maximum call stack error above.
Additional context
None