
akiunlocks/ci-cd-stats轻量级Docker镜像,专注于CI/CD流程中的统计数据采集与处理。通过自动化方式从主流CI/CD平台收集关键指标,提供数据支持以监控流水线健康状态,助力团队优化构建效率与稳定性。
bashdocker run -d \ --name cicd-stats-collector \ -e CI_PROVIDER=github-actions \ -e DATA_STORAGE_PATH=/data \ -e COLLECTION_INTERVAL=30 \ -e API_KEY=your_github_pat \ -v /host/cicd-stats:/data \ -p 8080:8080 \ cicd-stats-collector:latest
yamlversion: '3.8' services: stats-collector: image: cicd-stats-collector:latest container_name: cicd-stats restart: always environment: - CI_PROVIDER=gitlab-ci - DB_CONNECTION_STRING=postgresql://stats_user:stats_pass@db:5432/cicd_stats - COLLECTION_INTERVAL=45 - LOG_LEVEL=info - API_KEY=your_gitlab_api_token - PROMETHEUS_EXPORTER=true volumes: - ./local-backup:/data/backup ports: - "8080:8080" # API端口 - "9090:9090" # Prometheus metrics端口 depends_on: - db db: image: postgres:15-alpine container_name: cicd-stats-db restart: always environment: - POSTGRES_USER=stats_user - POSTGRES_PASSWORD=stats_pass - POSTGRES_DB=cicd_stats volumes: - postgres-data:/var/lib/postgresql/data ports: - "5432:5432" volumes: postgres-data:
| 环境变量 | 描述 | 默认值 | 可选值 |
|---|---|---|---|
CI_PROVIDER | CI/CD平台类型指定 | gitlab-ci | jenkins, gitlab-ci, github-actions, azure-devops |
DATA_STORAGE_PATH | 本地存储路径(文件存储模式) | /data | 容器内绝对路径 |
COLLECTION_INTERVAL | 数据采集间隔(秒) | 60 | 10-3600(建议值) |
DB_CONNECTION_STRING | 数据库连接字符串(数据库存储模式) | 无 | PostgreSQL/MySQL/SQLite连接串 |
API_KEY | CI平台API访问密钥(私有项目必填) | 无 | 平台生成的访问令牌 |
LOG_LEVEL | 日志输出级别 | info | debug, info, warn, error |
PROMETHEUS_EXPORTER | 是否启用Prometheus指标导出 | false | true, false |
EXPORT_FORMAT | 数据文件导出格式 | csv | csv, json |
默认存储路径:${DATA_STORAGE_PATH}/metrics/[yyyyMMdd].${EXPORT_FORMAT}
示例(CSV格式):
timestamp,job_id,status,duration_seconds,resource_cpu_usage,resource_memory_mb 20231026T***,build-123,success,125,0.8,450 20231026T***,test-456,failed,89,0.6,320
启动时映射端口(如 -p 8080:8080),通过以下端点获取数据:
GET /api/v1/metrics:获取最近24小时汇总指标(JSON)GET /api/v1/export?start=20231001&end=20231031:指定日期范围导出数据启用后自动暴露指标接口:http://<container-ip>:9090/metrics,包含指标如:
cicd_build_success_count{job="backend"} 156cicd_build_duration_seconds_avg{job="frontend"}=87.3权限配置:
chmod 775 /host/cicd-stats)API密钥安全:
性能调优:
COLLECTION_INTERVAL=10-30COLLECTION_INTERVAL=300-900 以减少资源消耗数据清理:
MAX_DATA_RETENTION_DAYS 环境变量调整(如 MAX_DATA_RETENTION_DAYS=30)manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务