Commit 773b373d authored by Erick Hitter's avatar Erick Hitter


parent bd5eca7c
Pipeline #176 passed with stages
in 7 minutes and 2 seconds
# GitLab Runner Droplet Monitor [![pipeline status](](
Monitor Digital Ocean for stale droplets created by GitLab Runner
\ No newline at end of file
Monitor Digital Ocean for stale droplets created by GitLab Runner
## Configuration
"log-dest": "os.Stdout",
"api-key": "",
"threshold": 5400,
"delete-stale": true
* `log-dest`: set to a path to write to a log file, otherwise `os.Stdout`
* `api-key`: Digital Ocean Personal Access Token
* `threshold`: time, in seconds, after which to consider a runner stale
* `delete-stale`: whether to delete stale runners, in addition to reporting them
##### A note about `threshold`
This value needs to be greater than the job timeout specified in your GitLab Runner configuration, otherwise a runner may erroneously be considered stale.
## Installation
1. Download the appropriate binary from [tagged releases](, or build the binary yourself.
1. Copy `config-sample.json` to an appropriate location and update the default values as needed.
1. Create a cron task to periodically run the monitor.
## Usage
./glrdomon -config config.json
* `-config`: specify path to config file, otherwise assumes `./config.json` relative to the binary
......@@ -33,8 +33,7 @@ var (
logger *log.Logger
logDest string
apiKey string
apiKey string
threshold int
deleteStale bool
......@@ -62,11 +61,11 @@ func init() {
logDest = cfg.LogDest
apiKey = cfg.APIKey
threshold = cfg.Threshold
deleteStale = cfg.DeleteStale
logDest = cfg.LogDest
logger.Printf("Starting GitLab Runner monitoring with config %s", configPath)
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment