#!/bin/bash # 指标方案快速启动脚本 set -e # 颜色定义 RED='\033[0;31m' GREEN='\033[0;32m' YELLOW='\033[1;33m' NC='\033[0m' # No Color echo "==========================================" echo "FunctionalScaffold 指标方案启动脚本" echo "==========================================" # 检查 docker-compose if ! command -v docker-compose &> /dev/null; then echo -e "${RED}错误: docker-compose 未安装${NC}" exit 1 fi # 选择方案 echo "" echo "请选择指标方案:" echo "1. Pushgateway(推荐,适合 Serverless)" echo "2. Redis + Exporter(适合高并发)" echo "3. 两者都启动(用于对比测试)" echo "" read -p "输入选项 (1/2/3): " choice cd "$(dirname "$0")/../deployment" case $choice in 1) echo -e "${GREEN}启动 Pushgateway 方案...${NC}" docker-compose up -d redis pushgateway prometheus grafana echo "" echo -e "${GREEN}✓ Pushgateway 方案已启动${NC}" echo "" echo "服务地址:" echo " - Pushgateway: http://localhost:9091" echo " - Prometheus: http://localhost:9090" echo " - Grafana: http://localhost:3000 (admin/admin)" echo "" echo "下一步:" echo " 1. 修改代码导入: from functional_scaffold.core.metrics_pushgateway import ..." echo " 2. 配置环境变量: PUSHGATEWAY_URL=localhost:9091" echo " 3. 启动应用: ./scripts/run_dev.sh" echo " 4. 运行测试: python scripts/test_metrics.py pushgateway" ;; 2) echo -e "${GREEN}启动 Redis 方案...${NC}" # 检查 redis 依赖 if ! python -c "import redis" 2>/dev/null; then echo -e "${YELLOW}警告: redis 库未安装${NC}" echo "正在安装 redis..." pip install redis fi docker-compose up -d redis redis-exporter prometheus grafana echo "" echo -e "${GREEN}✓ Redis 方案已启动${NC}" echo "" echo "服务地址:" echo " - Redis: localhost:6379" echo " - Redis Exporter: http://localhost:8001/metrics" echo " - Prometheus: http://localhost:9090" echo " - Grafana: http://localhost:3000 (admin/admin)" echo "" echo "下一步:" echo " 1. 修改代码导入: from functional_scaffold.core.metrics_redis import ..." echo " 2. 配置环境变量: REDIS_HOST=localhost REDIS_PORT=6379" echo " 3. 启动应用: ./scripts/run_dev.sh" echo " 4. 运行测试: python scripts/test_metrics.py redis" ;; 3) echo -e "${GREEN}启动所有服务...${NC}" # 检查 redis 依赖 if ! python -c "import redis" 2>/dev/null; then echo -e "${YELLOW}警告: redis 库未安装${NC}" echo "正在安装 redis..." pip install redis fi docker-compose up -d echo "" echo -e "${GREEN}✓ 所有服务已启动${NC}" echo "" echo "服务地址:" echo " - 应用: http://localhost:8000" echo " - Pushgateway: http://localhost:9091" echo " - Redis: localhost:6379" echo " - Redis Exporter: http://localhost:8001/metrics" echo " - Prometheus: http://localhost:9090" echo " - Grafana: http://localhost:3000 (admin/admin)" echo "" echo "下一步:" echo " 1. 查看文档: cat docs/metrics-guide.md" echo " 2. 运行测试: python scripts/test_metrics.py" ;; *) echo -e "${RED}无效的选项${NC}" exit 1 ;; esac echo "" echo "==========================================" echo "查看日志: docker-compose logs -f" echo "停止服务: docker-compose down" echo "查看文档: cat ../docs/metrics-guide.md" echo "=========================================="