Requirement - what kind of business use case are you trying to solve?
We are implementing a custom gRPC-based storage plugin as per this doc.
Problem - what in Jaeger blocks you from solving the requirement?
When searching in jaeger UI for a non-existing trace ID the GetTrace function in the storage plugin is expected to return spanstore.ErrTraceNotFound. However the error handling on the Jaeger side doesn't seem to handle this error correctly and treats it as a generic internal error:
{"level":"error","ts":1566246187.758402,"caller":"app/http_handler.go:409","msg":"HTTP handler, Internal Server Error","error":"grpc stream error: rpc error: code = Unknown desc = trace was not found", ...
UI displays:
HTTP Error: grpc stream error: rpc error: code = Unknown desc = trace was not found
You can easily reproduce this issue by running Jaeger with the example in-memory storage gRPC plugin and searching for a trace.
Impact: cosmetic in this case, but other expected error types returned by gRPC plugin may be affected as well.
Proposal - what do you suggest to solve the problem or improve the existing situation?
Any open questions to address
Requirement - what kind of business use case are you trying to solve?
We are implementing a custom gRPC-based storage plugin as per this doc.
Problem - what in Jaeger blocks you from solving the requirement?
When searching in jaeger UI for a non-existing trace ID the
GetTracefunction in the storage plugin is expected to returnspanstore.ErrTraceNotFound. However the error handling on the Jaeger side doesn't seem to handle this error correctly and treats it as a generic internal error:UI displays:
You can easily reproduce this issue by running Jaeger with the example in-memory storage gRPC plugin and searching for a trace.
Impact: cosmetic in this case, but other expected error types returned by gRPC plugin may be affected as well.
Proposal - what do you suggest to solve the problem or improve the existing situation?
Any open questions to address