main:删除指标脚本并优化指标记录逻辑
变更内容: - 删除 `start_metrics.sh` 脚本,精简项目结构,移除不再需要的启动逻辑。 - 优化 HTTP 请求指标记录,新增健康检查端点过滤和路径参数规范化功能。 - 更新文档,添加指标过滤及路径规范化的详细说明。 - 提高 Prometheus 指标的性能和可维护性,避免标签基数爆炸。
This commit is contained in:
@@ -1,114 +0,0 @@
|
||||
#!/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 "=========================================="
|
||||
Reference in New Issue
Block a user