-
Notifications
You must be signed in to change notification settings - Fork 166
Conversation
|
||
## Open questions | ||
|
||
Neither OpenTelemetry Specification nor Protocol currently assigns any special meaning to the `error` attribute mentioned above |
There was a problem hiding this comment.
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?
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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?
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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.
@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 |
@open-telemetry/technical-committee Can this be merged now? Then I can proceed doing actual changes. |
There was a problem hiding this 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.
|
||
* 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: |
There was a problem hiding this comment.
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?
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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?
There was a problem hiding this comment.
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`, |
There was a problem hiding this comment.
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?
There was a problem hiding this comment.
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?
There was a problem hiding this comment.
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`"
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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.
Co-authored-by: Christian Neumüller <christian+github@neumueller.me>
Better cross-reference
@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 ;) ) |
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. |
There was a problem hiding this 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.
Closed in favor of #136 |
Addresses open-telemetry/opentelemetry-specification#706