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
In Golang, we can use context.WithCancelCause(...) to cancel a hedge that didn't win. The winning hedge just looks like a normal Span that was successful.
When we are integrating some 3rd-party OTEL libraries, like otelpgx, it uses span.RecordError(err) liberally, and so we get Spans marked as "error", when they were really just cancelled. We can deal with some of this by changing our own software of course.
But when looking at semconv there didn't seem to even be a way to mark an RPC/Database operation as a "hedge" and to denote it was cancelled on purpose. We've been using some internal terminology like "winning hedge" and "lost hedge".
We have an internal request hedging system, similar in concept to what the gRPC team has talked about here:
https://grpc.io/docs/guides/request-hedging/
In Golang, we can use
context.WithCancelCause(...)
to cancel a hedge that didn't win. The winning hedge just looks like a normal Span that was successful.When we are integrating some 3rd-party OTEL libraries, like otelpgx, it uses
span.RecordError(err)
liberally, and so we get Spans marked as "error", when they were really just cancelled. We can deal with some of this by changing our own software of course.But when looking at semconv there didn't seem to even be a way to mark an RPC/Database operation as a "hedge" and to denote it was cancelled on purpose. We've been using some internal terminology like "winning hedge" and "lost hedge".
Has this been discussed before? I could only find minor references as it being out of scope previously:
https://github.com/open-telemetry/opentelemetry-specification/blob/d1c6aec6524f8c071d5fdef23d57ca5964fa6bb5/oteps/trace/0174-http-semantic-conventions.md?plain=1#L165-L167
The text was updated successfully, but these errors were encountered: