Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove Span.Status #134

Closed
wants to merge 8 commits into from
Closed

Remove Span.Status #134

wants to merge 8 commits into from

Conversation

iNikem
Copy link
Contributor

@iNikem iNikem commented Aug 19, 2020

@iNikem iNikem marked this pull request as ready for review August 19, 2020 10:46
@iNikem iNikem requested a review from a team August 19, 2020 10:46
text/0134-remove-span-status.md Outdated Show resolved Hide resolved
text/0134-remove-span-status.md Outdated Show resolved Hide resolved
text/0134-remove-span-status.md Outdated Show resolved Hide resolved

## Open questions

Neither OpenTelemetry Specification nor Protocol currently assigns any special meaning to the `error` attribute mentioned above
Copy link
Member

Choose a reason for hiding this comment

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

I am not quite sure what happens if Status is removed but we do not (yet) have the "error"-like attribute. How will the errors be indicated? Do we lose this capability? Or the intent is to wait until "error" indicator (whatever it is) is first added to the specification and only after that we remove Status?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Current proposal is to remove status right now, file a follow up issue and work with Errors WG to resolve it. Either via one of the already existing proposals, like open-telemetry/opentelemetry-specification#822, or a new one.

Copy link
Member

Choose a reason for hiding this comment

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

Got it. I see in this OTEP that you already thought through the transition process, which is great, but I need to mention this for visibility: we must be careful with Collector changes. There are people who use OpenTelemetry Collector in production already. All intermediate states of the Collector need to be fully functional.

Copy link
Contributor

Choose a reason for hiding this comment

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

@tigrannajaryan It seems open-telemetry/opentelemetry-specification#822 will be effectively merged soon (the error.hint Span attribute at least). Would that be enough for the Collector?

Copy link
Member

Choose a reason for hiding this comment

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

I am reluctant to give an approval until I clearly understand what we replace this by.

If open-telemetry/opentelemetry-specification#822 is the replacement can we wait for it be merged first and update this OTEP to make use of it? It is an open question in this OTEP and is one of the central problems that this OTEPs needs to solve, but remains partially unsolved for now.

Copy link
Member

Choose a reason for hiding this comment

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

I think the otep may change as a result of resolving any open question, but that doesn't mean we should stop this. I think the main point of this otep is the removing of span status and an action item is required to think about if we need an equivalent of error.hint or not separately.

Trying to make progress so we don't get stuck, but I can see your point as well, if you suggest that we really need a way to signal error from the application (which I don't believe we need) then I understand why we should block this until we have that.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

@tigrannajaryan can you express your opinion in open-telemetry/opentelemetry-specification#822? If you think that it may resolve your hesitation about this PR

Copy link
Member

Choose a reason for hiding this comment

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

@bogdandrutu I think we do need a definitive way to signal errors on the span. Some products visualize this and OpenTracing has the convention for this, OpenCensus protocol has this built-in. I believe we need an equivalent in OpenTelemetry.

@iNikem I support "error.hint" and commented there and beleive the semantic conventions for it need to be merged asap to unblock this OTEP.

I am not against moving forward with this OTEP, but I believe it will have an important open question and will be unactionable in the Collector if it does not take into account either the existence of "error.hint" or the lack of whatever else needs to replace Span Status. IMO, it will mean we will need another OTEP to correct this OTEP once "error.hint" is merged or rejected.

Copy link
Member

Choose a reason for hiding this comment

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

I am not against moving forward with this OTEP, but I believe it will have an important open question and will be unactionable in the Collector if it does not take into account either the existence of "error.hint" or the lack of whatever else needs to replace Span Status. IMO, it will mean we will need another OTEP to correct this OTEP once "error.hint" is merged or rejected.

Not sure you need an OTEP for that, that is a semantic convention, and collector will use it.

Copy link
Member

Choose a reason for hiding this comment

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

@bogdandrutu sure, that probably works too.

@andrewhsu
Copy link
Member

@open-telemetry/specs-approvers @open-telemetry/specs-trace-approvers this PR is blocking open-telemetry/opentelemetry-specification#706 so if this is suitable, please leave a LGTM

@carlosalberto carlosalberto self-requested a review August 21, 2020 16:49
@iNikem
Copy link
Contributor Author

iNikem commented Aug 25, 2020

@open-telemetry/technical-committee Can this be merged now? Then I can proceed doing actual changes.

Copy link
Member

@Oberon00 Oberon00 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 questions about details, but all in all I agree to remove Status.

text/0134-remove-span-status.md Show resolved Hide resolved

* If incoming OTLP data has `Span.Status` present, that will NOT be removed and will be passed on as-is.
* If incoming OTLP data has `Span.Status` present and it is not equal to `OK`,
Collector will translate that to temporary semantic attributes as follows:
Copy link
Member

Choose a reason for hiding this comment

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

Is the previous point not enough? Do we need to duplicate the status as attributes?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Yes, because new OTLP receivers will not read status field from the wire. But we still may want to pass this information if it was available in the Collector.

Copy link
Member

Choose a reason for hiding this comment

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

Do we expect code behind new OTLP receivers that don't read (deprecated_)status anymore to still need status?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Don't know, that is way we leave it there for the time being. Collector maintainers may decide when they want to remove this translation.

The exact duration of this transition period will be left for Collector's maintainers to decide.

* If incoming OTLP data has `Span.Status` present, that will NOT be removed and will be passed on as-is.
* If incoming OTLP data has `Span.Status` present and it is not equal to `OK`,
Copy link
Member

Choose a reason for hiding this comment

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

Should a non-empty message also be translated independently of the status code?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Message is part of the Status, how can it be independent?

Copy link
Member

Choose a reason for hiding this comment

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

I mean, it makes sense to add deprecated_status when "incoming OTLP data has Span.Status present and it is not equal to OK", but it may make sense to independently set deprecated_message when "incoming OTLP data has Span.Status present and message non-empty`"

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I think having message without code will be confusing, because current state is exactly the opposite: you may have code without message.

Copy link
Member

Choose a reason for hiding this comment

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

But you may also have a message with an OK code. If you are worried about confusion, then set the status code additionally when the message is non-empty.

text/0134-remove-span-status.md Outdated Show resolved Hide resolved
text/0134-remove-span-status.md Outdated Show resolved Hide resolved
iNikem and others added 3 commits August 25, 2020 13:22
Co-authored-by: Christian Neumüller <christian+github@neumueller.me>
Better cross-reference
@carlosalberto
Copy link
Contributor

@open-telemetry/specs-approvers Please review this OTEP. We need one more approval to proceed (and it's possible some of you haven't had time to pay attention to check this OTEP out ;) )

@tigrannajaryan
Copy link
Member

All, I don't want to be the person who blocks this OTEP. My only worry is that "error.hint" PR is not going to be merged due to disagreements and we will remove the Span status without having a reasonable replacement.

If everyone else in this thread thinks that it is not a problem and we will find a solution to that I am happy to approve and go ahead with this OTEP.

Copy link
Member

@tigrannajaryan tigrannajaryan left a comment

Choose a reason for hiding this comment

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

Based on the spec SIG meeting discussion I am approving this with an expectation that we will have a resolution for what will replace this functionality after the Error WG meeting this Thursday.

@tedsuo
Copy link
Contributor

tedsuo commented Sep 17, 2020

@iNikem Now that OTEP 136 is merged, this PR may be closed.

@iNikem
Copy link
Contributor Author

iNikem commented Sep 17, 2020

Closed in favor of #136

@iNikem iNikem closed this Sep 17, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

9 participants