Skip to content

Commit 64b5bed

Browse files
order availability reasons by request stage
1 parent f27d69c commit 64b5bed

1 file changed

Lines changed: 19 additions & 19 deletions

File tree

src/mlpa/core/prometheus_metrics.py

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)