新增内容: - 创建基础项目结构。 - 添加 `.gitignore` 和 `.dockerignore` 文件。 - 编写 `pyproject.toml` 和依赖文件。 - 添加算法模块及示例算法。 - 实现核心功能模块(日志、错误处理、指标)。 - 添加开发和运行所需的相关脚本文件及文档。
115 lines
3.8 KiB
Bash
Executable File
115 lines
3.8 KiB
Bash
Executable File
#!/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 "=========================================="
|