Skip to content

Observability for your GitHub user/org metrics

License

Notifications You must be signed in to change notification settings

alexellis/github-exporter

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

42 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Prometheus GitHub Exporter

Exposes basic metrics for your repositories from the GitHub API, to a Prometheus compatible endpoint.

Configuration

This exporter is setup to take input from environment variables:

Required

  • ORGS If supplied, the exporter will enumerate all repositories for that organization. Expected in the format "org1, org2". Can be ommited if using REPOS and not required
  • REPOS If supplied, The images you wish to monitor, expected in the format "user/repo1, user/repo2". Can be across different Github users/orgs. Can be ommited if using ORGS and not required

Optional

  • GITHUB_TOKEN If supplied, enables the user to supply a github authentication token that allows the API to be queried more often. Optional, but recommended.
  • GITHUB_TOKEN_FILE If supplied instead of GITHUB_TOKEN, enables the user to supply a path to a file containing a github authentication token that allows the API to be queried more often. Optional, but recommended.
  • API_URL Github API URL, shouldn't need to change this. Defaults to https://api.github.com
  • LISTEN_PORT The port you wish to run the container on, the Dockerfile defaults this to 9171
  • METRICS_PATH the metrics URL path you wish to use, defaults to /metrics
  • LOG_LEVEL The level of logging the exporter will run with, defaults to debug

Install and deploy

Run manually from Docker Hub:

docker run -d --restart=always -p 9171:9171 -e REPOS="infinityworks/ranch-eye, infinityworks/prom-conf" infinityworks/github-exporter

Build a docker image:

docker build -t <image-name> .
docker run -d --restart=always -p 9171:9171 -e REPOS="infinityworks/ranch-eye, infinityworks/prom-conf" <image-name>

Docker compose

github-exporter:
    tty: true
    stdin_open: true
    expose:
      - 9171
    ports:
      - 9171:9171
    image: infinityworks/github-exporter:latest
    environment:
      - REPOS=<REPOS you want to monitor>
      - GITHUB_TOKEN=<your github api token>
    

Metrics

Metrics will be made available on port 9171 by default An example of these metrics can be found in the METRICS.md markdown file in the root of this repository

Metadata

Sponsor this project

 

Packages

No packages published

Languages

  • Go 96.2%
  • Dockerfile 3.8%