Categorygithub.com/mkrakowitzer/githubrunner_exporter
modulepackage
0.0.0-20230729092408-0c07dd4e34e7
Repository: https://github.com/mkrakowitzer/githubrunner_exporter.git
Documentation: pkg.go.dev

# README

A prometheus exporter for github runner metrics

Go Report Card

Parameters

You can set the configuration options at runtime, as environment variables or yaml configuration file.

Environment variables

ParamDescription
GITHUB_INTERVALInterval to query the github API
GITHUB_ORGOrganisation name
GITHUB_TOKENGitHub Personal Access Token

Runtime

To see all available configuration flags:

./githubrunner_exporter --interval 15 --token XXX_PERSONAL_ACCESS_TOKEN_XXX --org myorgname

YAML configuration file

$HOME/.githubrunner_exporter.yaml

---
interval: 15
org: camelotls
token: XXX_PERSONAL_ACCESS_TOKEN_XXX

The exporter makes use of etags when quering the API. When data has not changed GitHub returns a 304 response does not count against your Rate Limit See https://docs.github.com/en/rest/overview/resources-in-the-rest-api#conditional-requests.

Metrics

NameDescription
github_runner_busyThe runner has an active job running.
github_runner_statusThe runner is online/offline.
github_ratelimit_limitThe total number of allowed API calls for your user/token
github_ratelimit_remainingRemaining allowed API calls
github_ratelimit_usedTotal number of calls made
github_ratelimitWhen Rate limit will reset (Every hour). Epoch Time

github_runner_status

ValueDescription
1online
0offline

github_runner_busy

ValueDescription
1busy
0offline
# HELP github_ratelimit Time until rate limit resets (epoch)
# TYPE github_ratelimit gauge
github_ratelimit 1.610879916e+09
# HELP github_ratelimit_limit Total number of calls allowed
# TYPE github_ratelimit_limit gauge
github_ratelimit_limit 5000
# HELP github_ratelimit_remaining Number of calls remaining
# TYPE github_ratelimit_remaining gauge
github_ratelimit_remaining 4994
# HELP github_ratelimit_used Number of used calls of your rate limit
# TYPE github_ratelimit_used gauge
github_ratelimit_used 6
# HELP github_runner_busy runner busy
# TYPE github_runner_busy gauge
github_runner_busy{id="888",name="aws-runner-01",os="linux"} 1
github_runner_busy{id="889",name="aws-runner-02",os="linux"} 1
# HELP github_runner_status runner status
# TYPE github_runner_status gauge
github_runner_status{id="888",name="aws-runner-01",os="linux"} 1
github_runner_status{id="889",name="aws-runner-02",os="linux"} 1

Installation

Docker

You can run the container with the following commands

docker login ghcr.io
docker pull ghcr.io/mkrakowitzer/githubrunner_exporter
docker run --env GITHUB_INTERVAL=15 --env GITHUB_ORG=orgname --env GITHUB_TOKEN=XXX_TOKEN_XXX \
    -d -p 9090 --name deleteme ghcr.io/mkrakowitzer/githubrunner_exporter

Alert rules

Development building and running

Prerequisites:

Building:

git clone [email protected]:mkrakowitzer/githubrunner_exporter.git
cd githubrunner_exporter
go build -o githubrunner_exporter
./githubrunner_exporter <flags>

To see all available configuration flags:

./githubrunner_exporter -h

Running tests

make test

# Packages

No description provided by the author
Copyright © 2020 Merritt Krakowitzer <[email protected]> Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
No description provided by the author