This commit is contained in:
logan committed 2026-05-24 14:08:45 +08:00
1 parent c7fccf99c7
commit 8471f368eb
33 files changed
+444 -2095

No files matched your search

@@ -217,42 +217,6 @@ async def show_grants(
raise HTTPException(status_code=500, detail="查询权限失败: " + str(e))
# ---- Slow Queries ----
@router.get("/{instance_id}/detail/slow-queries")
async def slow_queries(
instance_id: int,
database: Optional[str] = Query(None, description="数据库名"),
db: AsyncSession = Depends(get_db),
current_user: User = Depends(require_role("admin", "dba")),
):
instance = await _get_decrypted_instance(db, instance_id)
# P0: 权限检查
await check_instance_access(current_user, instance, db)
if instance.db_type != "mysql":
raise HTTPException(status_code=400, detail="仅支持MySQL实例")
try:
# Try querying mysql.slow_log table first
try:
sql = (
"SELECT start_time, user_host, query_time, lock_time, "
"rows_sent, rows_examined, sql_text "
"FROM mysql.slow_log ORDER BY start_time DESC LIMIT 100"
)
rows = await _mysql_query(instance, sql, database=database)
return rows
except Exception:
# Fallback: show slow query variables
rows = await _mysql_query(
instance,
"SHOW VARIABLES LIKE 'slow%'",
database=database,
)
return rows
except Exception as e:
raise HTTPException(status_code=500, detail="查询慢查询失败: " + str(e))
# ---- Processlist ----
@router.get("/{instance_id}/detail/processlist")