Request Hedging #1712
Labels
area:rpc
enhancement
New feature or request
experts needed
This issue or pull request is outside an area where general approvers feel they can approve
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: