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 }}
Repository navigation
The router reports a shed request as unavailable after a full fleet #2127
On the router's atenet.router.route.duration histogram, the ate.router.outcome (ateattr.RouterOutcomeKey) attribute is computed by classifyOutcome(err) in cmd/atenet/internal/router/extproc/metrics.go.
Prior to PR #1929, classifyOutcome(err) mapped every envoy_type.StatusCode_ServiceUnavailable (HTTP 503) *extproc.ReqError without a wrapped gRPC status code to no_capacity (ateattr.RouterOutcomeNoCapacity). Because both the ingress and egress handlers record atenet.router.route.duration, non-capacity 503s (such as egress denials or policy/credential lookup failures) were falsely reported as no_capacity.
PR #1929 fixed that over-reporting by updating classifyOutcome so that no_capacity is reported only when status.Code(err) == codes.ResourceExhausted (unwrapping through ReqError.Cause), while bare 503 ReqErrors without a ResourceExhausted cause fall through to unavailable (ateattr.RouterOutcomeUnavailable).
Expected Behavior
A request that the router sheds while the resume of its actor is retrying because of ResourceExhausted reports no_capacity. A shed request with a different cause continues to report unavailable. The unavailable brief in docs/metrics/registry/metrics.yaml and the comment on the router outcome values in internal/ateattr/ateattr.go describe the new behavior.
TODO: Follow up after #2244 to map store.ErrVersionConflict to codes.Aborted before recordLifecycleOp so ate.actor.lifecycle.operation.duration reports error.type="Aborted" instead of "Internal" across resume/suspend/pause.
Activity
JeffLuoo commentedon Oct 6, 2026
TODO: Follow up after #2244 to map store.ErrVersionConflict to codes.Aborted before recordLifecycleOp so ate.actor.lifecycle.operation.duration reports error.type="Aborted" instead of "Internal" across resume/suspend/pause.
router: report a shed request as no_capacity after a full fleet (agen…