add cpu_scale rules

This commit is contained in:
Jörg Thalheim 2016-04-22 14:03:16 +00:00
parent 849710db8e
commit e2cf4d213a
2 changed files with 57 additions and 0 deletions

12
cpu_scale Executable file
View File

@ -0,0 +1,12 @@
#!/usr/bin/env bash
s6-svc -t /run/s6/services/kapacitor-scale
s6-svc -t /run/s6/services/kapacitor
sleep 2
set -eux
kapacitor define \
-name cpu_scale \
-type stream \
-tick /data/cpu_scale.tick \
-dbrp metrics.default
kapacitor reload cpu_scale

45
cpu_scale.tick Normal file
View File

@ -0,0 +1,45 @@
var cpu_percentile = stream
|from()
.measurement('docker_cpu')
.where(lambda: "cont_image" =~ /sharelatex-web/ AND "cpu" == 'cpu-total')
|window()
.period(10s)
.every(1s)
|percentile('usage_percent', 95.0)
|log()
var scale_out = cpu_percentile
@scale()
.simulate(FALSE)
.debug(TRUE)
.id('1s33') // web service
.when('percentile > 90')
.by('current + 2')
.min_instances(1)
.max_instances(6)
.cooldown('10s')
var scale_in = cpu_percentile
@scale()
.simulate(FALSE)
.debug(TRUE)
.id('1s33') // web service
.when('percentile < 30')
.by('current - 2')
.min_instances(1)
.max_instances(6)
.cooldown('10s')
scale_out
|influxDBOut()
.database('metrics')
.measurement('autoscaling')
.flushInterval(1d)
.buffer(1)
scale_in
|influxDBOut()
.database('metrics')
.measurement('autoscaling')
.flushInterval(1d)
.buffer(1)