_should_run_auth_on_metrics_endpoint

This commit is contained in:
Ishaan Jaff 2025-04-04 20:32:04 -07:00
parent c4c2d4c40e
commit dea96e17bb
2 changed files with 22 additions and 7 deletions

View file

@ -5,6 +5,7 @@ from fastapi import Request
from starlette.middleware.base import BaseHTTPMiddleware
import litellm
from litellm.proxy._types import SpecialHeaders
from litellm.proxy.auth.user_api_key_auth import user_api_key_auth
@ -13,9 +14,14 @@ class PrometheusAuthMiddleware(BaseHTTPMiddleware):
# Check if this is a request to the metrics endpoint
if self._is_prometheus_metrics_endpoint(request):
if self._should_run_auth_on_metrics_endpoint() is True:
try:
await user_api_key_auth(
request=request, api_key=request.headers.get("Authorization") or ""
request=request,
api_key=request.headers.get(
SpecialHeaders.openai_authorization.value
)
or "",
)
except Exception as e:
raise e
@ -36,4 +42,14 @@ class PrometheusAuthMiddleware(BaseHTTPMiddleware):
@staticmethod
def _should_run_auth_on_metrics_endpoint():
"""
Returns True if auth should be run on the metrics endpoint
False by default, set to True in proxy_config.yaml to enable
```yaml
litellm_settings:
require_auth_for_metrics_endpoint: true
```
"""
return litellm.require_auth_for_metrics_endpoint

View file

@ -10,6 +10,5 @@ model_list:
api_key: fake-key
litellm_settings:
require_auth_for_metrics_endpoint: true
callbacks: ["prometheus"]
service_callback: ["prometheus_system"]