https://github.com/cardinal-cryptography/github-actions-runners-exporter
Calls GitHub API for total count of Actions' runners and exports them to be scrapped by Prometheus
https://github.com/cardinal-cryptography/github-actions-runners-exporter
Last synced: 6 months ago
JSON representation
Calls GitHub API for total count of Actions' runners and exports them to be scrapped by Prometheus
- Host: GitHub
- URL: https://github.com/cardinal-cryptography/github-actions-runners-exporter
- Owner: Cardinal-Cryptography
- Created: 2023-07-14T12:14:19.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2024-11-15T21:47:15.000Z (8 months ago)
- Last Synced: 2024-11-15T22:31:26.532Z (8 months ago)
- Language: Go
- Size: 18.6 KB
- Stars: 0
- Watchers: 2
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# github-actions-runners-exporter
Exports number of GitHub Actions' runners. Calls GitHub API every X seconds to
get the value.## Building
Run `go build -o github-actions-runners-exporter` to compile the binary.### Building docker image
To build the docker image, use the following command.docker build -t github-actions-runners-exporter .
## Running
Check below help message for `run` command:Usage: github-actions-runners-exporter run [FLAGS]
Runs the daemon, requires GITHUB_TOKEN environment variable
Required flags:
-o, --organization GitHub Organization owner of the runners
-p, --port Port to expose /metrics endpoint on
-s, --sleep Seconds between each request to GitHub API### Example usage
Set `GITHUB_TOKEN` environment variable with github token. The token needs to
have read-only access to **self-hosted runners** within the
**organizational permissions** (when using fine-grained token).Run the program in the background with the following command:
./github-actions-runners-exporter run -o my-github-org-name -s 30 -p 8081
Open the `/metrics` endpoint to get the prometheus metrics that would include
github actions' runners total count:% curl -sSL http://127.0.0.1:8081/metrics
# HELP github_actions_runners_total_count Number of running GitHub Actions' runners.
# TYPE github_actions_runners_total_count gauge
github_actions_runners_total_count 1
# HELP github_actions_runners_total_count_online Number of running GitHub Actions' runners with 'online' status.
# TYPE github_actions_runners_total_count_online gauge
github_actions_runners_total_count_online 0
# HELP go_gc_duration_seconds A summary of the pause duration of garbage collection cycles.
# TYPE go_gc_duration_seconds summary
go_gc_duration_seconds{quantile="0"} 0
...
# TYPE go_threads gauge
go_threads 5
# HELP promhttp_metric_handler_requests_in_flight Current number of scrapes being served.
# TYPE promhttp_metric_handler_requests_in_flight gauge
promhttp_metric_handler_requests_in_flight 1
# HELP promhttp_metric_handler_requests_total Total number of scrapes by HTTP status code.
# TYPE promhttp_metric_handler_requests_total counter
promhttp_metric_handler_requests_total{code="200"} 0
promhttp_metric_handler_requests_total{code="500"} 0
promhttp_metric_handler_requests_total{code="503"} 0#### Running in a docker container
Remember to export the `GITHUB_TOKEN` environment variable.
docker run -e GITHUB_TOKEN github-actions-runners-exporter run -o Cardinal-Cryptography -p 8081 -s 60