Baida07 commited on
Commit
51ec2ae
·
1 Parent(s): d080ce8

sync: 193 file da Baida98/AI@bfa5fae8 (2026-08-28 07:20 UTC) [deploy-all] (#90)

Browse files

- sync: 193 file da Baida98/AI@bfa5fae8 (2026-08-28 07:20 UTC) [deploy-all] (b1a3f45b3f9b0e05c6a5884aca3471562eb6abc5)

Files changed (1) hide show
  1. api/performance_rum.py +31 -0
api/performance_rum.py CHANGED
@@ -18,6 +18,7 @@ import re
18
  import time
19
  from datetime import datetime, timezone
20
  from typing import Annotated, Any
 
21
 
22
  from fastapi import APIRouter, Depends, Header, HTTPException, Request, status
23
  from pydantic import BaseModel, ConfigDict, Field, field_validator
@@ -123,6 +124,29 @@ def _db_url() -> str:
123
  return value
124
 
125
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
126
  def _execute(sql: str, params: dict[str, Any], *, fetch: bool = False) -> list[dict[str, Any]]:
127
  import psycopg2
128
  import psycopg2.extras
@@ -200,6 +224,7 @@ async def debug_db_check(role: AuthRole = Depends(require_role(AuthRole.MACHINE)
200
  return {
201
  "ok": True,
202
  "db_now": rows[0].get("db_now") if rows else None,
 
203
  "latency_ms": elapsed_ms,
204
  "tls_required": True,
205
  "connect_timeout_s": 5,
@@ -221,10 +246,16 @@ async def debug_db_check(role: AuthRole = Depends(require_role(AuthRole.MACHINE)
221
  category = "database"
222
  pgcode = getattr(exc, "pgcode", None)
223
  _logger.error("RUM db probe failed type=%s category=%s elapsed_ms=%s", name, category, elapsed_ms)
 
 
 
 
 
224
  return {
225
  "ok": False,
226
  "error_category": category,
227
  "exception_type": name,
 
228
  "sqlstate": pgcode[:5] if isinstance(pgcode, str) else None,
229
  "latency_ms": elapsed_ms,
230
  "tls_required": True,
 
18
  import time
19
  from datetime import datetime, timezone
20
  from typing import Annotated, Any
21
+ from urllib.parse import parse_qs, urlsplit
22
 
23
  from fastapi import APIRouter, Depends, Header, HTTPException, Request, status
24
  from pydantic import BaseModel, ConfigDict, Field, field_validator
 
124
  return value
125
 
126
 
127
+ def _db_target_metadata() -> dict[str, Any]:
128
+ """Return only non-secret connection metadata for the temporary probe."""
129
+ raw = _db_url()
130
+ parsed = urlsplit(raw)
131
+ host = (parsed.hostname or "").lower()
132
+ port = parsed.port or 5432
133
+ query = parse_qs(parsed.query)
134
+ sslmode = query.get("sslmode", [None])[0]
135
+ if "pooler" in host or port in {6543, 6544}:
136
+ target = "pooler"
137
+ else:
138
+ target = "direct"
139
+ return {
140
+ "scheme": parsed.scheme,
141
+ "target": target,
142
+ "port": port,
143
+ "sslmode_in_url": sslmode or "not_explicit",
144
+ "has_database": bool(parsed.path and parsed.path != "/"),
145
+ "has_username": bool(parsed.username),
146
+ "has_password": bool(parsed.password),
147
+ }
148
+
149
+
150
  def _execute(sql: str, params: dict[str, Any], *, fetch: bool = False) -> list[dict[str, Any]]:
151
  import psycopg2
152
  import psycopg2.extras
 
224
  return {
225
  "ok": True,
226
  "db_now": rows[0].get("db_now") if rows else None,
227
+ "connection": _db_target_metadata(),
228
  "latency_ms": elapsed_ms,
229
  "tls_required": True,
230
  "connect_timeout_s": 5,
 
246
  category = "database"
247
  pgcode = getattr(exc, "pgcode", None)
248
  _logger.error("RUM db probe failed type=%s category=%s elapsed_ms=%s", name, category, elapsed_ms)
249
+ metadata: dict[str, Any]
250
+ try:
251
+ metadata = _db_target_metadata()
252
+ except Exception:
253
+ metadata = {"configuration": "invalid_or_unavailable"}
254
  return {
255
  "ok": False,
256
  "error_category": category,
257
  "exception_type": name,
258
+ "connection": metadata,
259
  "sqlstate": pgcode[:5] if isinstance(pgcode, str) else None,
260
  "latency_ms": elapsed_ms,
261
  "tls_required": True,