55 lines
1.0 KiB
Markdown
55 lines
1.0 KiB
Markdown
## Usage
|
|
|
|
### Configuration
|
|
|
|
kapacitor.toml:
|
|
|
|
```
|
|
[udf]
|
|
[udf.functions]
|
|
[udf.functions.scale]
|
|
socket = "/tmp/kapacitor-scale.sock"
|
|
timeout = "10s"
|
|
```
|
|
|
|
then start kapacitor-scale like this:
|
|
|
|
```
|
|
$ kapacitor-scale -
|
|
```
|
|
|
|
### Example
|
|
|
|
```
|
|
stream...
|
|
.scale()
|
|
.id('rancherServiceId')
|
|
.when('value > 10')
|
|
.by('current + 1')
|
|
.min_instances(2)
|
|
.max_instances(10)
|
|
.cooldown('1m')
|
|
```
|
|
|
|
#### Options
|
|
|
|
- id: Id of the rancher service to scale
|
|
- when: expression, should evaluate to true
|
|
(see https://github.com/pk-rawat/gostr)
|
|
- by: expression, should evaluate to a number
|
|
(see https://github.com/pk-rawat/gostr)
|
|
- max\_instances: maximum instances to scale out
|
|
- max\_instances: minimum instances to scale in
|
|
- cooldown: timeout to wait until next scaling action
|
|
|
|
## Tests
|
|
|
|
$ go test ./handler
|
|
|
|
## TODO
|
|
|
|
- start cooldown timer, when service was actually scaled up
|
|
- do not freak out, when rancher service is not available
|
|
- (free up unneeded services, when removed from rancher)
|
|
- procname contains rancher url with credentials! (change argv)
|