kalgurn / github-rate-limits-prometheus-exporter

GitHub Rate Limits Prometheus exporter. Works with both App and PAT credentials
MIT License
14 stars 8 forks source link
github-rate-limit go prometheus prometheus-exporter

Vulnerabilities Technical Debt Security Rating Artifact Hub

Github Rate Limit Prometheus Exporter

A prometheus exporter which scrapes GitHub API for the rate limits used by PAT/GitHub App.

Helm Chart with values and deployment can be found here

For the exporter to run you need to supply either a GitHub Token or a set of a GitHub App credentials, alongside with a type of authentication to use(pat/app)

You can use the environment variable GITHUB_LOG_METRIC_COLLECTION (boolean) to control if rate limit metrics are also logged to the console when they're collected by Prometheus. As the functionality is backed by Golang strconv.ParseBool, it accepts 1, t, T, TRUE, true, True, 0, f, F, FALSE, false, False. Any other value or lack thereof will default to enabling logs.

The metrics can then be represented on a grafana dashboard

Grafana panel example

Docker

PAT

docker run -d \
    -e GITHUB_AUTH_TYPE=PAT \
    -e GITHUB_ACCOUNT_NAME=name_of_my_app
    -e GITHUB_TOKEN=my_token \
    -p 2112:2112 \
    ghcr.io/kalgurn/grl-exporter:latest

GitHub APP

docker run -d \
    -e GITHUB_AUTH_TYPE=APP \
    -e GITHUB_APP_ID=my_app_id \
    -e GITHUB_INSTALLATION_ID=my_app_installation_id \
    -e GITHUB_ACCOUNT_NAME=name_of_my_app
    -e GITHUB_PRIVATE_KEY_PATH=/tmp
    -v $PWD/path_to/key.pem:/tmp/key.pem
    -p 2112:2112 \
    ghcr.io/kalgurn/grl-exporter:latest