-
-
Notifications
You must be signed in to change notification settings - Fork 1.8k
Closed
Labels
Description
Description
A user was reporting 2x-3x memory consumption when using the Node.js SDK. I had a chat with them and will summarize the setup and findings here.
- SDK setup is a very ordinary express setup with mostly SDK defaults (traces sample rate: 0.5, 0.1 - doesn't matter, leaks more or less equally)
- Requests to the service are transient
- No long-running requests or anything
- Large objects are stored on the
resobject (in particular large array of strings containing identifiers) - The memory snapshot shows that
NonRecordingSpans andSpans are holding references to theresobject via the_isolationScopefield. - The majority of these references seems to come from
NonRecordingSpans. - Interestingly, and I don't know if this is somehow relevant, the
NonRecordingSpans are held by very deep chains ofTimeoutobjects. The user does not define any timeouts manually.
My hypothesis: We are not cleaning up NonRecordingSpans "naturally" and keeping them in the exporter or somewhere and they end up being evicted by a timeout policy. This may be in our code, or this may be in OTELs code.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
Fields
Give feedbackNo fields configured for issues without a type.
Projects
Status
No status