Skip to content

Commit 04f9ff1

Browse files
Merge pull request #14139 from mubashir1osmani/prometheus_missing_metrics
Prometheus missing metrics
2 parents 67450fe + 2626123 commit 04f9ff1

File tree

2 files changed

+49
-29
lines changed

2 files changed

+49
-29
lines changed

enterprise/litellm_enterprise/integrations/prometheus.py

Lines changed: 13 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -95,29 +95,22 @@ def __init__(
9595
self.litellm_llm_api_time_to_first_token_metric = self._histogram_factory(
9696
"litellm_llm_api_time_to_first_token_metric",
9797
"Time to first token for a models LLM API call",
98-
labelnames=[
99-
"model",
100-
"hashed_api_key",
101-
"api_key_alias",
102-
"team",
103-
"team_alias",
104-
],
98+
# labelnames=[
99+
# "model",
100+
# "hashed_api_key",
101+
# "api_key_alias",
102+
# "team",
103+
# "team_alias",
104+
# ],
105+
labelnames=self.get_labels_for_metric("litellm_llm_api_time_to_first_token_metric"),
105106
buckets=LATENCY_BUCKETS,
106107
)
107108

108109
# Counter for spend
109110
self.litellm_spend_metric = self._counter_factory(
110111
"litellm_spend_metric",
111112
"Total spend on LLM requests",
112-
labelnames=[
113-
"end_user",
114-
"hashed_api_key",
115-
"api_key_alias",
116-
"model",
117-
"team",
118-
"team_alias",
119-
"user",
120-
],
113+
labelnames=self.get_labels_for_metric("litellm_spend_metric"),
121114
)
122115

123116
# Counter for total_output_tokens
@@ -243,25 +236,18 @@ def __init__(
243236
labelnames=["api_provider"],
244237
)
245238

246-
# Get all keys
247-
_logged_llm_labels = [
248-
UserAPIKeyLabelNames.v2_LITELLM_MODEL_NAME.value,
249-
UserAPIKeyLabelNames.MODEL_ID.value,
250-
UserAPIKeyLabelNames.API_BASE.value,
251-
UserAPIKeyLabelNames.API_PROVIDER.value,
252-
]
253-
254239
# Metric for deployment state
255240
self.litellm_deployment_state = self._gauge_factory(
256241
"litellm_deployment_state",
257242
"LLM Deployment Analytics - The state of the deployment: 0 = healthy, 1 = partial outage, 2 = complete outage",
258-
labelnames=_logged_llm_labels,
243+
labelnames=self.get_labels_for_metric("litellm_deployment_state")
259244
)
260245

261246
self.litellm_deployment_cooled_down = self._counter_factory(
262247
"litellm_deployment_cooled_down",
263248
"LLM Deployment Analytics - Number of times a deployment has been cooled down by LiteLLM load balancing logic. exception_status is the status of the exception that caused the deployment to be cooled down",
264-
labelnames=_logged_llm_labels + [EXCEPTION_STATUS],
249+
# labelnames=_logged_llm_labels + [EXCEPTION_STATUS],
250+
labelnames=self.get_labels_for_metric("litellm_deployment_cooled_down")
265251
)
266252

267253
self.litellm_deployment_success_responses = self._counter_factory(
@@ -327,6 +313,7 @@ def __init__(
327313
documentation="deprecated - use litellm_proxy_total_requests_metric. Total number of LLM calls to litellm - track total per API Key, team, user",
328314
labelnames=self.get_labels_for_metric("litellm_requests_metric"),
329315
)
316+
330317
except Exception as e:
331318
print_verbose(f"Got exception on init prometheus client {str(e)}")
332319
raise e

litellm/types/integrations/prometheus.py

Lines changed: 36 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -154,6 +154,7 @@ class UserAPIKeyLabelNames(Enum):
154154

155155
DEFINED_PROMETHEUS_METRICS = Literal[
156156
"litellm_llm_api_latency_metric",
157+
"litellm_llm_api_time_to_first_token_metric",
157158
"litellm_request_total_latency_metric",
158159
"litellm_overhead_latency_metric",
159160
"litellm_remaining_requests_metric",
@@ -162,6 +163,7 @@ class UserAPIKeyLabelNames(Enum):
162163
"litellm_proxy_failed_requests_metric",
163164
"litellm_deployment_latency_per_output_token",
164165
"litellm_requests_metric",
166+
"litellm_spend_metric",
165167
"litellm_total_tokens_metric",
166168
"litellm_input_tokens_metric",
167169
"litellm_output_tokens_metric",
@@ -173,9 +175,11 @@ class UserAPIKeyLabelNames(Enum):
173175
"litellm_remaining_api_key_budget_metric",
174176
"litellm_api_key_max_budget_metric",
175177
"litellm_api_key_budget_remaining_hours_metric",
178+
"litellm_deployment_state",
176179
"litellm_deployment_failure_responses",
177180
"litellm_deployment_total_requests",
178181
"litellm_deployment_success_responses",
182+
"litellm_deployment_cooled_down",
179183
"litellm_pod_lock_manager_size",
180184
"litellm_in_memory_daily_spend_update_queue_size",
181185
"litellm_redis_daily_spend_update_queue_size",
@@ -191,9 +195,14 @@ class PrometheusMetricLabels:
191195
UserAPIKeyLabelNames.API_KEY_ALIAS.value,
192196
UserAPIKeyLabelNames.TEAM.value,
193197
UserAPIKeyLabelNames.TEAM_ALIAS.value,
194-
UserAPIKeyLabelNames.REQUESTED_MODEL.value,
195-
UserAPIKeyLabelNames.END_USER.value,
196-
UserAPIKeyLabelNames.USER.value,
198+
]
199+
200+
litellm_llm_api_time_to_first_token_metric = [
201+
UserAPIKeyLabelNames.v1_LITELLM_MODEL_NAME.value,
202+
UserAPIKeyLabelNames.API_KEY_HASH.value,
203+
UserAPIKeyLabelNames.API_KEY_ALIAS.value,
204+
UserAPIKeyLabelNames.TEAM.value,
205+
UserAPIKeyLabelNames.TEAM_ALIAS.value,
197206
]
198207

199208
litellm_request_total_latency_metric = [
@@ -282,6 +291,16 @@ class PrometheusMetricLabels:
282291
UserAPIKeyLabelNames.USER_EMAIL.value,
283292
]
284293

294+
litellm_spend_metric = [
295+
UserAPIKeyLabelNames.END_USER.value,
296+
UserAPIKeyLabelNames.API_KEY_HASH.value,
297+
UserAPIKeyLabelNames.API_KEY_ALIAS.value,
298+
UserAPIKeyLabelNames.v1_LITELLM_MODEL_NAME.value,
299+
UserAPIKeyLabelNames.TEAM.value,
300+
UserAPIKeyLabelNames.TEAM_ALIAS.value,
301+
UserAPIKeyLabelNames.USER.value,
302+
]
303+
285304
litellm_input_tokens_metric = [
286305
UserAPIKeyLabelNames.END_USER.value,
287306
UserAPIKeyLabelNames.API_KEY_HASH.value,
@@ -315,6 +334,20 @@ class PrometheusMetricLabels:
315334
UserAPIKeyLabelNames.REQUESTED_MODEL.value,
316335
]
317336

337+
litellm_deployment_state = [
338+
UserAPIKeyLabelNames.v2_LITELLM_MODEL_NAME.value,
339+
UserAPIKeyLabelNames.MODEL_ID.value,
340+
UserAPIKeyLabelNames.API_BASE.value,
341+
UserAPIKeyLabelNames.API_PROVIDER.value,
342+
]
343+
344+
litellm_deployment_cooled_down = [
345+
UserAPIKeyLabelNames.v2_LITELLM_MODEL_NAME.value,
346+
UserAPIKeyLabelNames.MODEL_ID.value,
347+
UserAPIKeyLabelNames.API_BASE.value,
348+
UserAPIKeyLabelNames.API_PROVIDER.value,
349+
]
350+
318351
litellm_deployment_successful_fallbacks = [
319352
UserAPIKeyLabelNames.REQUESTED_MODEL.value,
320353
UserAPIKeyLabelNames.FALLBACK_MODEL.value,

0 commit comments

Comments
 (0)