trivago / Scalad
Licence: apache-2.0
Horizontal Job Autoscaler for Nomad
Stars: ✭ 64
Programming Languages
go
31211 projects - #10 most used programming language
Env variables:
-
PORT = "80"
: Port on which the application is going to be listening. -
NOMAD_HOST = "http://nomad.service.consul:4646"
: Nomad host endpoint. -
NOMAD_REGION = "global"
: Nomad Region. -
VAULT_TOKEN = "ljkasdflkjafd"
: Token for vault with permission to access every secret needed for all the scale jobs. -
USE_SLACK = "true"
: Flag to enable the use of slack as a system message application. -
HTTP_USER = "user"
: User needed for basic auth for endpoints to scale up or down manually. -
HTTP_PASS = "password"
: Password needed for basic auth for endpoints to scale up or down manually -
METRICS_ENDPOINT = "http://prometheus.yourorg.com/api/v1/query?query="
: Endpoint from where to get the metrics which are going to be used to triger the scale events.
Inside Job file (At taskGroup lvl):
meta {
scaler = "true" Activate the scaler
min_query = "sum(rate(nomad_client_allocs_cpu_total_ticks{exported_job='scaler-test'}[1m]))by(exported_job) < bool 1" Query that gives the Min threshold for scaling down
max_query = "sum(rate(nomad_client_allocs_cpu_total_ticks{exported_job='scaler-test'}[1m]))by(exported_job) > bool 2" Query that gives the Max threshold for scaling up
query_fire_time = "2m" Time the query need to be true before triggering the saling event
scale_cooldown_down = "20s" Time in cooldown for a scale dow event
scale_cooldown_up = "25s" Time in cooldown for a scale up event
scale_count_down = "1" Amount of containers that are going to be removed on a scale down event
scale_count_up = "2" Amount of containers that are going to be added on a scale up event
scale_max = "16" Maximun amount of containers
scale_min = "1" Minimun amount amount of containers
}
Note that the project description data, including the texts, logos, images, and/or trademarks,
for each open source project belongs to its rightful owner.
If you wish to add or remove any projects, please contact us at [email protected].