kapacitor-scale/README.md

1.0 KiB

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)