@@ -30,18 +30,6 @@ class AvailabilityReason(StrEnum):
3030 # Strings shared with PrometheusRejectionReason are kept identical so the
3131 # two counters reconcile. Keep them in sync when a rejection reason is added.
3232
33- # --- completion-stage reasons (recorded inside stream_completion / get_completion) ---
34- CLEAN_COMPLETION = "clean_completion" # success
35- UPSTREAM_ERROR = "upstream_error" # failure
36- EMPTY_RESPONSE = "empty_response" # failure
37- BUDGET_EXCEEDED = "budget_exceeded" # excluded
38- RATE_LIMITED_OWN = "rate_limited_own" # excluded
39- RATE_LIMITED_UPSTREAM = "rate_limited_upstream" # excluded
40- PAYLOAD_TOO_LARGE = "payload_too_large" # excluded
41- INVALID_MODEL_NAME = "invalid_model_name" # excluded
42- INVALID_REQUEST = "invalid_request" # excluded
43- CLIENT_DISCONNECT = "client_disconnect" # abort
44-
4533 # --- pre-completion reasons (recorded in the auth dependency and route body) ---
4634 AUTH_REJECTED = "auth_rejected" # excluded
4735 INVALID_AUTH_REQUEST = "invalid_auth_request" # excluded
@@ -55,8 +43,27 @@ class AvailabilityReason(StrEnum):
5543 # properly requires a follow-on change to the auth backends themselves.
5644 AUTH_SYSTEM_FAILURE = "auth_system_failure" # failure
5745
46+ # --- completion-stage reasons (recorded inside stream_completion / get_completion) ---
47+ CLEAN_COMPLETION = "clean_completion" # success
48+ UPSTREAM_ERROR = "upstream_error" # failure
49+ EMPTY_RESPONSE = "empty_response" # failure
50+ BUDGET_EXCEEDED = "budget_exceeded" # excluded
51+ RATE_LIMITED_OWN = "rate_limited_own" # excluded
52+ RATE_LIMITED_UPSTREAM = "rate_limited_upstream" # excluded
53+ PAYLOAD_TOO_LARGE = "payload_too_large" # excluded
54+ INVALID_MODEL_NAME = "invalid_model_name" # excluded
55+ INVALID_REQUEST = "invalid_request" # excluded
56+ CLIENT_DISCONNECT = "client_disconnect" # abort
57+
5858
5959_AVAILABILITY_OUTCOME_BY_REASON : dict [AvailabilityReason , AvailabilityOutcome ] = {
60+ AvailabilityReason .AUTH_REJECTED : AvailabilityOutcome .EXCLUDED ,
61+ AvailabilityReason .INVALID_AUTH_REQUEST : AvailabilityOutcome .EXCLUDED ,
62+ AvailabilityReason .INVALID_SERVICE_TYPE_FOR_MODEL : AvailabilityOutcome .EXCLUDED ,
63+ AvailabilityReason .SIGNUP_CAP_EXCEEDED : AvailabilityOutcome .EXCLUDED ,
64+ AvailabilityReason .BLOCKED : AvailabilityOutcome .EXCLUDED ,
65+ AvailabilityReason .PROVISIONING_FAILURE : AvailabilityOutcome .FAILURE ,
66+ AvailabilityReason .AUTH_SYSTEM_FAILURE : AvailabilityOutcome .FAILURE ,
6067 AvailabilityReason .CLEAN_COMPLETION : AvailabilityOutcome .SUCCESS ,
6168 AvailabilityReason .UPSTREAM_ERROR : AvailabilityOutcome .FAILURE ,
6269 AvailabilityReason .EMPTY_RESPONSE : AvailabilityOutcome .FAILURE ,
@@ -67,13 +74,6 @@ class AvailabilityReason(StrEnum):
6774 AvailabilityReason .INVALID_MODEL_NAME : AvailabilityOutcome .EXCLUDED ,
6875 AvailabilityReason .INVALID_REQUEST : AvailabilityOutcome .EXCLUDED ,
6976 AvailabilityReason .CLIENT_DISCONNECT : AvailabilityOutcome .ABORT ,
70- AvailabilityReason .AUTH_REJECTED : AvailabilityOutcome .EXCLUDED ,
71- AvailabilityReason .INVALID_AUTH_REQUEST : AvailabilityOutcome .EXCLUDED ,
72- AvailabilityReason .INVALID_SERVICE_TYPE_FOR_MODEL : AvailabilityOutcome .EXCLUDED ,
73- AvailabilityReason .SIGNUP_CAP_EXCEEDED : AvailabilityOutcome .EXCLUDED ,
74- AvailabilityReason .BLOCKED : AvailabilityOutcome .EXCLUDED ,
75- AvailabilityReason .PROVISIONING_FAILURE : AvailabilityOutcome .FAILURE ,
76- AvailabilityReason .AUTH_SYSTEM_FAILURE : AvailabilityOutcome .FAILURE ,
7777}
7878
7979
0 commit comments