github-actions-exporter for prometheus
Container image : https://hub.docker.com/repository/docker/spendeskplatform/github-actions-exporter
If you want to monitor a public repository, you must put the public_repo option in the repo scope of your github token.
| Name | Flag | Env vars | Default | Description | |—|—|—|—|—| | Github Token | github_token, gt | GITHUB_TOKEN | - | Personnal Access Token | | Github Refresh | github_refresh, gr | GITHUB_REFRESH | 30 | Refresh time Github Actions status in sec | | Github Organizations | github_orgas, go | GITHUB_ORGAS | - | List all organizations you want get informations. Format <orga1>,<orga2>,<orga3> (like test1,test2) | | Github Repos | github_repos, grs | GITHUB_REPOS | - | List all repositories you want get informations. Format <orga>/<repo>,<orga>/<repo2>,<orga>/<repo3> (like test/test) | | Exporter port | port, p | PORT | 9999 | Exporter port | | Github Api URL | github_api_url, url | GITHUB_API_URL | api.github.com | Github API URL (primarily for Github Enterprise usage) |
Gauge type
Result possibility
| ID | Description | 
|---|---|
| 0 | Failure | 
| 1 | Success | 
| 2 | Skipped | 
| 3 | In Progress | 
Fields
| Name | Description | 
|---|---|
| event | Event type like push/pull_request/… | 
| head_branch | Branch name | 
| head_sha | Commit ID | 
| node_id | Node ID (github actions) (mandatory ??) | 
| repo | Repository like <org>/<repo> | 
| run_number | Build id for the repo (incremental id => 1/2/3/4/…) | 
| workflow_id | Workflow ID | 
| workflow | Workflow Name | 
| status | Workflow status (completed/in_progress) | 
Gauge type
Result possibility
| Gauge | Description | 
|---|---|
| milliseconds | Number of milliseconds that a specific workflow run took time to complete. | 
Fields
| Name | Description | 
|---|---|
| event | Event type like push/pull_request/… | 
| head_branch | Branch name | 
| head_sha | Commit ID | 
| node_id | Node ID (github actions) (mandatory ??) | 
| repo | Repository like <org>/<repo> | 
| run_number | Build id for the repo (incremental id => 1/2/3/4/…) | 
| workflow_id | Workflow ID | 
| workflow | Workflow Name | 
| status | Workflow status (completed/in_progress) | 
:warning: This is a duplicate of the
github_workflow_run_statusmetric that will soon be deprecated, do not use anymore.
Gauge type (If you have self hosted runner)
Result possibility
| ID | Description | 
|---|---|
| 0 | Offline | 
| 1 | Online | 
Fields
| Name | Description | 
|---|---|
| id | Runner id (incremental id) | 
| name | Runner name | 
| os | Operating system (linux/macos/windows) | 
| repo | Repository like <org>/<repo> | 
| status | Runner status (online/offline) | 
Gauge type (If you have self hosted runner for an organization)
Result possibility
| ID | Description | 
|---|---|
| 0 | Offline | 
| 1 | Online | 
Fields
| Name | Description | 
|---|---|
| id | Runner id (incremental id) | 
| name | Runner name | 
| os | Operating system (linux/macos/windows) | 
| orga | Organization name | 
| status | Runner status (online/offline) | 
Gauge type (If you have private repositories that use GitHub-hosted runners)
Result possibility
| Gauge | Description | 
|---|---|
| seconds | Number of billable seconds used by a specific workflow during the current billing cycle. | 
Fields
| Name | Description | 
|---|---|
| id | Workflow id (incremental id) | 
| node_id | Node ID (github actions) | 
| name | workflow name | 
| os | Operating system (linux/macos/windows) | 
| repo | Repository like <org>/<repo> | 
| status | Workflow status | 
Example:
# HELP github_workflow_usage Number of billable seconds used by a specific workflow during the current billing cycle. Any job re-runs are also included in the usage. Only apply to workflows in private repositories that use GitHub-hosted runners.
# TYPE github_workflow_usage gauge
github_workflow_usage_seconds{id="2862037",name="Create Release",node_id="MDg6V29ya2Zsb3cyODYyMDM3",repo="xxx/xxx",state="active",os="UBUNTU"} 706.609
Scopes needed configuration for the Github token
repo
  - repo:status
  - repo_deployment
  - public_repo
admin:org
  - write:org
  - read:org