Skip to content
This repository was archived by the owner on Aug 17, 2020. It is now read-only.

Conversation

@tonyredondo
Copy link
Contributor

This PR is for avoiding Complex objects on Span tags and enables a new api for that UnsafeSetTag.

The complex objects are transformed by the new GetValidValue func.

@ghost ghost assigned tonyredondo Jun 4, 2020
Copy link
Contributor

@drodriguezhdez drodriguezhdez left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have some doubts about when span is checked if it is instance of our span.

coverage.RestoreCoverageCounters()
} else if cov := coverage.EndCoverage(); cov != nil {
test.span.SetTag(tags.Coverage, *cov)
if sp, ok := test.span.(tracer.Span); ok {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Here it is checked if the span is our span, tag is gonna be set using unsafe, which means tag is not gonna be escaped?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That's right the idea is that we know the coverage object is "safe" so if we detect our span, we ensure that we write the object without any modification. But if we are using other tracer we call the normal opentracing Api, that should be followed by the tracer.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is there any case where we should use the "escaped" mode in our spans? Or only it is needed when the user is adding custom spans?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

When the user is adding custom spans, but we fallback to the Unescape mode if we don't detect a complex object, so its safe call the "escaped" version. Also there are some "helper" methods inside the api, that call directly to the api version of the SetTag (in our case the "escaped" version) so we need to play nice with the api.

@tonyredondo tonyredondo merged commit 2a91310 into master Jun 5, 2020
@tonyredondo tonyredondo deleted the complex-objects branch June 5, 2020 15:37
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants