Add safetyTags property to tracer exporters #1052
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
📝 Description
Option 1
A common problem is that developers or external modules send non-serializable parameters (e.g. http request, socket instance, stream instance...etc) in
ctx.params
orctx.meta
. If tracing is enabled, the tracer exporters try to convert these parameters inflattenTags
methods which is flattening the given object recursively, which causes maximum call stack error.To avoid it, we added a
safetyTags
option to the exporter options. If it istrue
, the exporters remove the cyclic properties before flattening the tags in the spans. This option is available in all built-in exporters.Option 2
To avoid that all action span tags will be converted because only just a few are affected by the problem, you can enable this function at action-level as well.
🎯 Relevant issues
Resolves #777, #908
💎 Type of change