cachet-monitor can monitor a list of services. Therefore it requires to setup all services in `./data/config.json`. __The id of each service has to match the cachet component id you want to update!__ Each service needs the following attributes (additionally to `id` and `type`):
Optionally you can add the following options to each service, or change the default values globally:
*`retry` - number how often the check should be retried if the service is offline (default value `0`)
*`waitUntilRetry` - number of seconds the retry should be delayed (default value `5`)
*`performanceTimeout` - time in seconds in which the request has to be completed, otherwise the status will be `SLOW` (Cachet `Performance Issues`) (default value `1`)
*`requestTimeout` - time in seconds in which the request has to be completed, otherwise the status will be offline (default value `30`)
*`offlineTimeUntilMajor` - time in seconds a service has to be offline until it turns from partial to major outage (default value `300`)
You can specify the interval (`cron`) your services should be checked. You can use the cron syntax from [`node-cron`](https://www.npmjs.com/package/node-cron). Finally you need to provide the information to your cachet instance (`api` and `token`).
To change the default values globally you can set the in the `defaults` object.
You can use the docker image [`samuelph/cachet-monitor`](https://hub.docker.com/r/samuelph/cachet-monitor) and mount a volume to `/monitor/data` to persist cache and config: