You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository has been archived by the owner on Jun 11, 2021. It is now read-only.
The Knative Channel Specification specifies the expected behavior of handling W3C Tracecontext headers. The current implementation does NOT meet these requirements in that the traceparent and tracestate headers are lost in transmission. A completely new traceparent value is instead sent to the subscriber.
Currently, the Knative In-Memory Channel reference implementation DOES adhere to the specification, but the eventing-contrib/kafka implementation does not. Similar to this implementation the latter has the intermediate step of persisting to/from a Kafka Topic. There is currently confusion and a debate around the best way to handle this persistence, how it relates to the potential use of ce-traceparent and ce-tracestate, and where in the Knative / CloudEvent stack to handle this. Further, it is unclear whether the CloudEvents DTE Extension is useful or not.
See the following Github Issues/PRs for the history...
Therefore, we are going to wait until this is resolved before attempting to implement a solution that complies with the expected specification.
There are also larger tracing issue to be dealt with within the Knative Eventing ecosystem such as how to integrate Istio B3 Header usage with the current OpenTelemetry Headers. See knative/eventing#2581.
W3C Tracecontext Notes
The traceparent field is composed of the following values...
<version> - <traceid> - <parentid> - <flags>
...where the <version> (usually 00) specifies the format of the following data fields, and the <traceid> is the end-to-end ID of the entire trace through a distributed system. The <parentid> is also referred to as the <spanid>, and can/should change with each new HTTP Client Request being made. Therefore the expectation is that when the Channel receives an HTTP request with a traceparent header, that it is forwarded to the Subscriber with the same traceparent header, albeit with a new <parentid>.
The text was updated successfully, but these errors were encountered:
The Knative Channel Specification specifies the expected behavior of handling W3C Tracecontext headers. The current implementation does NOT meet these requirements in that the
traceparent
andtracestate
headers are lost in transmission. A completely newtraceparent
value is instead sent to the subscriber.Currently, the Knative In-Memory Channel reference implementation DOES adhere to the specification, but the eventing-contrib/kafka implementation does not. Similar to this implementation the latter has the intermediate step of persisting to/from a Kafka Topic. There is currently confusion and a debate around the best way to handle this persistence, how it relates to the potential use of
ce-traceparent
andce-tracestate
, and where in the Knative / CloudEvent stack to handle this. Further, it is unclear whether the CloudEvents DTE Extension is useful or not.See the following Github Issues/PRs for the history...
Therefore, we are going to wait until this is resolved before attempting to implement a solution that complies with the expected specification.
There are also larger tracing issue to be dealt with within the Knative Eventing ecosystem such as how to integrate Istio B3 Header usage with the current OpenTelemetry Headers. See knative/eventing#2581.
W3C Tracecontext Notes
The traceparent field is composed of the following values...
<version> - <traceid> - <parentid> - <flags>
...where the <version> (usually 00) specifies the format of the following data fields, and the <traceid> is the end-to-end ID of the entire trace through a distributed system. The <parentid> is also referred to as the <spanid>, and can/should change with each new HTTP Client Request being made. Therefore the expectation is that when the Channel receives an HTTP request with a
traceparent
header, that it is forwarded to the Subscriber with the sametraceparent
header, albeit with a new <parentid>.The text was updated successfully, but these errors were encountered: