diff --git a/README.md b/README.md index 37af5bc919c8e254e01022c3cab8a9c247b0c236..88e7f3b5996933a58542610a3cc48d39394a81f0 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,38 @@ # GitLab Runner Droplet Monitor [](https://git.ethitter.com/debian/gitlab-runner-do-monitor/commits/master) -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 + +```json +{ + "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](https://git.ethitter.com/debian/gitlab-runner-do-monitor/tags), 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 + +```bash +./glrdomon -config config.json +``` + +* `-config`: specify path to config file, otherwise assumes `./config.json` relative to the binary diff --git a/glrdomon.go b/glrdomon.go index 5348a46107dbc231ac20bcb5431ac5be8d8cfe38..173a2cd512a86d68fff841062ff977741c841562 100644 --- a/glrdomon.go +++ b/glrdomon.go @@ -33,8 +33,7 @@ var ( logger *log.Logger logDest string - apiKey string - + apiKey string threshold int deleteStale bool @@ -62,11 +61,11 @@ func init() { usage() } - logDest = cfg.LogDest apiKey = cfg.APIKey threshold = cfg.Threshold deleteStale = cfg.DeleteStale + logDest = cfg.LogDest setUpLogger() logger.Printf("Starting GitLab Runner monitoring with config %s", configPath)