diff --git a/backend/open_webui/utils/telemetry/metrics.py b/backend/open_webui/utils/telemetry/metrics.py index d935ddaafa..f129f5f002 100644 --- a/backend/open_webui/utils/telemetry/metrics.py +++ b/backend/open_webui/utils/telemetry/metrics.py @@ -141,9 +141,12 @@ def setup_metrics(app: FastAPI, resource: Resource) -> None: def observe_total_registered_users( options: metrics.CallbackOptions, ) -> Sequence[metrics.Observation]: + # IMPORTANT: Use get_num_users() for efficient COUNT(*) query. + # Do NOT use len(get_users()["users"]) - it loads ALL user records into memory, + # causing connection pool exhaustion on high-latency databases (e.g., Aurora). return [ metrics.Observation( - value=len(Users.get_users()["users"]), + value=Users.get_num_users() or 0, ) ]