# 性能监控指南 ## 📊 概述 小虾 SaaS 内置了完整的性能监控系统,帮助识别和优化性能瓶颈。 --- ## 🔍 监控指标 ### 1. 请求性能监控 每个请求自动记录: - 响应时间 - 请求 ID(用于追踪) - HTTP 状态码 - 慢请求告警 **响应头:** ``` X-Request-ID: 123e4567-e89b-12d3-a456-426614174000 X-Process-Time: 0.123 ``` ### 2. 数据库查询监控 自动监控: - 查询次数 - 查询耗时 - 慢查询(>100ms) ### 3. 连接池监控 实时监控: - 活跃连接数 - 空闲连接数 - 连接池使用率 --- ## 🚨 慢请求告警 ### 配置阈值 ```python # apps/api/main.py app.add_middleware( PerformanceMonitoringMiddleware, slow_request_threshold=1.0, # 1 秒 ) ``` ### 日志示例 ``` WARNING: Slow request detected: GET /api/v1/projects took 2.456s (threshold: 1.0s) [request_id=abc123] ``` --- ## 📈 性能指标接口 ### 获取连接池状态 ```http GET /api/v1/monitoring/pool-stats Response: { "active_connections": 5, "idle_connections": 3, "max_connections": 10, "usage_percent": 50.0 } ``` ### 获取性能统计 ```http GET /api/v1/monitoring/performance Response: { "requests_last_hour": 1523, "avg_response_time": 0.045, "slow_requests": 12, "error_rate": 0.02 } ``` --- ## 🔧 性能优化建议 ### 1. 识别慢请求 查看日志找出慢请求: ```bash grep "Slow request" logs/app.log ``` ### 2. 分析数据库查询 查看慢查询: ```bash grep "Slow query" logs/app.log ``` ### 3. 优化策略 **慢请求优化:** - 添加缓存(Redis) - 优化业务逻辑 - 使用异步处理 **慢查询优化:** - 添加数据库索引 - 优化 SQL 查询 - 减少 N+1 查询 **连接池优化:** - 调整 `maxconn` 配置 - 检查连接泄漏 - 优化连接复用 --- ## 📊 监控最佳实践 ### 1. 设置告警 ```python # 慢请求告警 if process_time > 1.0: send_alert(f"Slow request: {request.url}") # 错误率告警 if error_rate > 0.05: # 5% send_alert(f"High error rate: {error_rate}") ``` ### 2. 定期审查 - 每日检查慢请求日志 - 每周审查性能趋势 - 每月优化瓶颈 ### 3. 压力测试 ```bash # 使用 Apache Bench ab -n 1000 -c 10 http://localhost:8000/api/v1/workspaces # 使用 wrk wrk -t4 -c100 -d30s http://localhost:8000/api/v1/workspaces ``` --- ## 🎯 性能目标 | 指标 | 目标 | 优秀 | |------|------|------| | API 平均响应时间 | <200ms | <50ms | | 数据库查询平均时间 | <50ms | <10ms | | 慢请求比例 | <5% | <1% | | 错误率 | <1% | <0.1% | | 连接池使用率 | <80% | <60% | --- ## 🔗 相关工具 **APM 工具(推荐):** - New Relic - Datadog - Sentry **开源方案:** - Prometheus + Grafana - ELK Stack - Jaeger (分布式追踪) --- **最后更新:** 2026-06-17