fn status_for(r: Rejected) -> StatusExpand description
Map a rejection onto a gRPC status.
Overload is never a partial success: the OTLP spec says the client MUST NOT
retry a partial success, so using it for backpressure destroys the data and
records the failure as the sender’s fault. It is always a status code, and
always with RetryInfo attached — grpc-retry-pushback-ms alone is only
honoured by clients that configured a gRPC retry policy, which OTLP
exporters do not.
The retryable set is closed and INTERNAL is not in it, so it is reserved
for the one refusal that really is permanent. A write that failed on a full
disk answered INTERNAL would have the exporter drop the batch it is holding
rather than send it again a second later, which is data loss chosen by a
status code.