:warning: 该仓库正在迁移到 githubexporter 组织的 githubexporter/github-exporter :warning:
变更时间表:
- 2023年5月22日 - 所有当前镜像可在新的 Docker Hub 组织 https://hub.docker.com/r/githubexporter/github-exporter 获得
- 2023年5月30日 - GitHub 仓库将迁移至 https://github.com/githubexporter/github-exporter
- 2023年5月30日 - 任何新镜像将只推送到
githubexporter
Docker Hub 仓库 - 2023年8月21日 - 所有现有镜像将从
infinityworks/github-exporter
Docker Hub 仓库中移除 - 2023年8月30日 -
infinityworks/github-exporter
Docker Hub 仓库将被弃用
Prometheus GitHub 导出器
通过 GitHub API 将您的仓库的基本指标暴露给 Prometheus 兼容的端点。
配置
该导出器设置为从环境变量接收输入。所有变量都是可选的:
ORGS
如果提供,导出器将枚举该组织的所有仓库。格式为 "org1, org2"。REPOS
如果提供,您希望监控的仓库,格式为 "user/repo1, user/repo2"。可以跨不同的 GitHub 用户/组织。USERS
如果提供,导出器将枚举这些用户的所有仓库。格式为 "user1, user2"。GITHUB_TOKEN
如果提供,允许用户提供 GitHub 认证令牌,使 API 可以更频繁地查询。可选,但推荐。GITHUB_TOKEN_FILE
如果提供(而不是GITHUB_TOKEN
),允许用户提供包含 GitHub 认证令牌的文件路径,使 API 可以更频繁地查询。可选,但推荐。GITHUB_APP
如果为 true,以 GitHub 应用身份向 API 认证。GITHUB_APP_ID
GitHub 应用的 APP ID。GITHUB_APP_INSTALLATION_ID
GitHub 应用的安装 ID。GITHUB_APP_KEY_PATH
GitHub 私钥的路径。GITHUB_RATE_LIMIT
GitHub 应用的速率限制(默认为 15,000)。如果导出器发现值低于此变量,将为应用生成新令牌。API_URL
GitHub API URL,通常无需更改。默认为https://api.github.com
LISTEN_PORT
您希望容器运行的端口,Dockerfile 默认为9171
METRICS_PATH
您希望使用的指标 URL 路径,默认为/metrics
LOG_LEVEL
导出器运行的日志级别,默认为debug
安装和部署
从 Docker Hub 手动运行:
docker run -d --restart=always -p 9171:9171 -e REPOS="infinityworks/ranch-eye, infinityworks/prom-conf" githubexporter/github-exporter
从 Docker Hub 手动运行(使用 GitHub 应用):
docker run -d --restart=always -p 9171:9171 --read-only -v ./key.pem:/key.pem -e GITHUB_APP=true -e GITHUB_APP_ID= -e GITHUB_APP_INSTALLATION_ID= -e GITHUB_APP_KEY_PATH=/key.pem <镜像名称>
构建 Docker 镜像:
docker build -t <镜像名称> .
Docker compose
github-exporter:
tty: true
stdin_open: true
expose:
- 9171
ports:
- 9171:9171
image: githubexporter/github-exporter:latest
environment:
- REPOS=<您想监控的仓库>
- GITHUB_TOKEN=<您的 GitHub API 令牌>
Docker compose(GitHub 应用)
github-exporter-github-app:
tty: true
stdin_open: true
expose:
- 9171
ports:
- 9171:9171
build: .
environment:
- LOG_LEVEL=debug
- LISTEN_PORT=9171
- GITHUB_APP=true
- GITHUB_APP_ID=
- GITHUB_APP_INSTALLATION_ID=
- GITHUB_APP_KEY_PATH=/key.pem
restart: unless-stopped
volumes:
- "./key.pem:/key.pem:ro"
指标
默认情况下,指标将在 9171 端口上可用。
这些指标的示例可以在本仓库根目录的 METRICS.md
文件中找到。
测试
test
目录中有一组黑盒行为测试,用于验证指标端点。
运行方式如下:
make test
版本发布流程
一旦新的拉取请求被合并到 master
分支,应在本地执行以下脚本。该脚本将在 Docker Hub 中触发新的镜像构建,新镜像的标签为 release-<版本号>
。版本号取自 VERSION
文件,必须遵循语义化版本规则。更多信息请参见 semver.org。
在运行以下命令之前,请确保 VERSION
文件中的数字已增加到所需的版本:
./release-version.sh