""" Performance monitoring API endpoints. """ from fastapi import APIRouter, HTTPException from typing import Dict, Any import logging from app.utils.performance_monitor import get_performance_report logger = logging.getLogger(__name__) router = APIRouter() @router.get("/performance/metrics", response_model=Dict[str, Any]) async def get_performance_metrics(): """ Get current performance metrics and recommendations. """ try: logger.info("Fetching performance metrics") report = get_performance_report() logger.info(f"Performance report generated: {report['metrics']['total_queries']} queries tracked") return { "status": "success", "data": report } except Exception as e: logger.error(f"Error fetching performance metrics: {e}") raise HTTPException( status_code=500, detail=f"Failed to fetch performance metrics: {str(e)}" ) @router.post("/performance/reset") async def reset_performance_metrics(): """ Reset performance metrics (useful for testing and monitoring). """ try: logger.info("Resetting performance metrics") from app.utils.performance_monitor import performance_metrics # Reset metrics performance_metrics.query_times = [] performance_metrics.slow_queries = [] performance_metrics.total_queries = 0 performance_metrics.total_time = 0.0 logger.info("Performance metrics reset successfully") return { "status": "success", "message": "Performance metrics reset successfully" } except Exception as e: logger.error(f"Error resetting performance metrics: {e}") raise HTTPException( status_code=500, detail=f"Failed to reset performance metrics: {str(e)}" )